Electromyography (EMG) is defined as the discipline related to the detection, analysis and use of the electrical signal that is generated at a muscle’s contraction. On many occasions, generating a database that allows a comprehensive study of measurements is complicated due to the lack of automation of this type of system. The implementation of this type of system in low-cost portable devices is the key to making its use on a large scale feasible.

Picture of the hardware used for control, acquisition and communications. The respective nicknames of these devices are: Heimdall (left), BioACQ (centre) and Cerberus (right).

This work contains the entire development process of an automated 4-channel EMG signal acquisition system. The developed application is based on an ARM Cortex M4 platform internally developed by the B105 Electronic Systems Lab, which suposed a challenge since it is an economic platform with limited resources. Other device used were the signal acquisition board with its amplified probes and the communications module capable of transmitting data in the 434, 868 and 2,400 MHz radio bands.

Diagram of the complete system. The different devices running the developed applications can be seen with the communication interfaces between them.

The application created for this project is divided into modules. The main ones are: the FSM control, the configuration component, the acquisition system and the communications complex. Partitioning the development helps to improve the quality of the code, reduces the time to detect errors and keeps the program simple. One key aspect of the final system is the use of a wireless link for augmented usability and galvanic protection. Additionally, a graphical user interface is stablished which offers live data representation. All the code regarding the application is available via the following link:

Diagram of the finite state machine in charge of controlling the slave module. The transitions are controled via the incoming commands from the control interface.

The project also contains a section of analysis including performance information about the final solution. The resulting performance analytics show a portable system capable of running on batteries with room for improvement via software optimizations. Furthermore, every developed module is independently evaluated using an exclusively matured testing program. The purpose of this segment is to eliminate all bugs introduced in the code and strengthen the robustness of the system.

Picture showing the main graphical user interface. The panel shown is the configuration one, containing the multiple modifiable parameters of the acquisition system.