A real-time hardware/software platform for wearable robotics development based on the BeagleBone platform.
openWearable is an open-source project designed to provide a complete hardware and software solution for developing wearable robotic systems, with a focus on real-time control. The platform utilizes the TI BeagleBone Black's Programmable Real-time Units (PRUs) to achieve deterministic high-speed control loops alongside a full Linux environment.
Current applications include:
- Upper limb soft exosuits
- Powered ankle-foot prostheses
- Haptic feedback systems
- EMG/IMU sensing and processing
- BeagleBone Black or BeagleBone Blue
- Compatible sensors (see hardware directory)
- Actuators (PAMs, motors, etc.)
- Recommended OS: Debian Linux 12.x (Bookworm) or later
- Kernel: 5.10.168-ti-r72
- PRU Code Generation Tools
-
Clone the repository:
git clone https://github.com/jonreal/openWearable.git cd openWearable -
Build the library first:
cd library && make -
Build an application:
cd ../apps/template && make -
Run the application:
./bin/template
The device tree configures BeagleBone hardware resources for openWearable. Follow these steps:
-
Clone the BeagleBoard-DeviceTrees repository:
git clone https://github.com/beagleboard/BeagleBoard-DeviceTrees.git ~/BeagleBoard-DeviceTrees -
Create a symbolic link to your device tree file:
For BeagleBone Black:
cd device-tree ln -s $PWD/am335x-boneblack-openWearable.dts ~/BeagleBoard-DeviceTrees/src/arm/For BeagleBone Blue:
cd device-tree ln -s $PWD/am335x-boneblue-openWearable.dts ~/BeagleBoard-DeviceTrees/src/arm/ -
Compile and install the device tree:
cd ~/BeagleBoard-DeviceTrees make install_arm -
The compiled device tree files will be installed to
/boot/dtbs/<kernel>/(e.g.,/boot/dtbs/5.10.168-ti-r72/) -
Edit
/boot/uEnv.txtto enable the overlay:sudo nano /boot/uEnv.txtAdd or modify the following line:
dtb=am335x-boneblack-openWearable.dtb # For BeagleBone Black # OR dtb=am335x-boneblue-openWearable.dtb # For BeagleBone Blue -
Reboot the BeagleBone:
sudo reboot
To connect to the BeagleBone to Wi-Fi, follow these steps:
iwctl
[iwctl]# station wlan0 scan
[iwctl]# station wlan0 get-networks
[iwctl]# station wlan0 connect <SSID>
apps/- Application examples and templatestemplate/- Starting point for new applications- Various application examples (see below)
library/- Core librariesinclude/- Header filessrc/- CPU-side source filespru_src/- PRU-specific source files
device-tree/- Hardware configurationhardware/- PCB designs and hardware documentationgui/- Visualization toolsutils/- Utility programsscripts/- Helper scripts
Each application consists of these core files:
state.h- Memory structure definitionsformat.c- Logging format definitionscpuloop.c- Application CPU logicuiloop.c- User interface logicpruloop.c- PRU-specific logic
To create a new application, copy the template directory:
cd apps
cp -r template my_new_app
cd my_new_app
- First build the library:
cd library && make - Then build the app:
cd apps/[app-name] && make
-
Build System Reorganization (March 2025)
- Implemented libowpru.a for sharing PRU driver code
- Each app links against this shared library
-
DMA for Data Transfer (March 2025)
- Added DMA support for logging with performance monitoring
- Use
-dflag to disable DMA for benchmarking
-
Binary Logging (In Progress)
- Converting text-based logs to binary format
- Improving performance by reducing formatting overhead
- pamtest: Test pneumatic artificial muscles (PAMs)
- haptic-tracking: Haptic feedback control system
- buttontest: Simple I/O demonstration
- imutest: Test IMU sensors and data processing
- reflex: Demonstrate reflex control algorithms
- Realmuto J, Sanger TD. "Assisting Forearm Function in Children With Movement Disorders via A Soft Wearable Robot With Equilibrium-Point Control." Frontiers in Robotics and AI, 2022; 9:877041. doi:10.3389/frobt.2022.877041.
- Repository branch: equilibrium-point-study
- Realmuto, J. "Towards Personalized Powered Ankle-Foot Prostheses." Dissertation, 2018.
- Repository branch: poweredAnkle
- Sie A, Realmuto J, Rombokas E. "A Lower Limb Prosthesis Haptic Feedback System for Stair Descent." ASME Design of Medical Devices Conference, 2017. doi:10.1115/DMD2017-3409.
- Repository branch: hapticFeedback