By using this website, you accept the use of cookies. We use them to optimize functionality and convenience of the site.
accepted
Elemyo | 12 May 2025

Overview of the Multisensor wireless EMG system
MYOstack v2.0

A set of EMG sensors for wireless recording of muscle activity. Software for visualization of myographic signals
Multisensor wireless EMG system MYOstack v2.0
DESCRIPTION
The MYOstack is an open platform that will allow you to create a variety of configurations: a smart bracelet for controlling computer gestures, making a smart muscle activity monitor for sports, tracking physical activity during the day, learning how to control a robotic arm, and much more.

EMG modules have a special curved surface, which ensures good contact of the sensor with the skin surface during active muscle work. A compact Wi-Fi transmitter based on the ESP32C3 module allows recording the signal of each module with 1 kHz frequency. The transmitter and receiver can be easily reprogrammed for your task from the Arduino IDE.
Wireless system with EMG sensors for registration muscle activity
Fig. 1: the MYOstack v2.0.
IT IS INCLUDED IN THE KIT
MYOstack v2.0 has 3 types of configuration, differing only in the number of EMG sensors.
Each set contains::
  • 4, 6 or 9 pcs. EMG modules (depending on your choice)
  • wires for connecting modules: 1 wire per module + 2 additional wires 1 m long
  • adapter, with 10 connectors for connecting modules
  • compact Wi-Fi transmitter based on the ESP32C3 module
  • Wi-Fi receiver
Wireless EMG system set for muscle activity analysis and research
Fig. 2: System contains and configuration options for MYOstack v2.0.
CONNECTION
The transmitter have 10 connectors and modules have 2 connectors. To connect the module to the transmitter, just connect them with a wire using any connector on the module and the transmitter. To connect several modules to the transmitter, you can connect the modules to each other. If you need to position the modules at spaced out points on the body, you can use the long wires and the included adapter. The modules can be connected in any order and sequence. When turned on, the blue LED on the modules and transmitter will light up.

The wire connectors are made in such a way that the modules are connected in an unambiguous way, the possibility of polarity reversal is excluded.

The transmitter is powered via USB-C input. To supply power, you must use an external power bank with an output voltage of 5 V (when choosing and using a power bank, follow the generally accepted rules of electrical safety. Charging the power bank while using the system is prohibited).

The receiver is connected to a computer via a USB-C cable.

You can attach the sensors to the body using an adhesive plaster or a bandage.

The transmitter and receiver are factory-installed and ready for use right away.

The modules are numbered (if necessary, the numbers can be peeled off). The module number corresponds to the signal number in the MYOstack GUI program.

To adjust the gain, a linear trimming resistor is installed on each module. The resistor is initially set to zero (gain is 1 000 V / V). To increase the gain, turn the resistor clockwise. The maximum swing angle is 1200. At the maximum swing angle, the gain is 10 000 V / V.

NOTE: The transmitter heats up during operation. The higher the transfer rate, the more intense the heating.

INSTALLING THE SOFTWARE
EMG software
MYOstack sensors comes with user-friendly software for visualization and processing EMG signals - MYOstack_GUI program, a free, cross-platform, open source Python based GUI for real-time visualization, analysis, and processing of EMG signals.

Supported operating systems: Windows, Linux, macOS.
The program is distributed free of charge under a MIT license.

Functional:

  • Real-time display of signals from 1 to 9 sensors. Possibility of scaling and flipping the signal graph.
  • Show of the frequency spectrum of the signal (analysis window - 1 second, smoothing factor 0.85).
  • Setting a notch filter at 50/60 Hz, as well as a band pass filter with a given bandwidth.
  • Plotting a signal envelope with an adjustable smoothing factor.
  • Recording a signal to *.bin and *.txt file.
  • Playback of the recorded signal.
Installing on Windows (15 min)
1. Install the "Python 3.12": Download the "Windows installer" on the official Python website: www.python.org/downloads/release/python-3129/ (file located at the bottom of the page) and run it. Then check «Add Python 3.12 to PATH» and click «Install Now».

2. Open the Python IDLE: «Start -> Python 3.12 -> IDLE», or «Start -> search «IDLE»», or in folder C:\Users\%USERNAME%\AppData\Local\Programs\ Python\Python312\Lib\idlelib\idle.py

3. Download MYOstack_GUI folder by link https://github.com/ELEMYO/MYOSTACK-GUI. To download, click on the "Code" menu (green) and select "Download ZIP". Then unzip the folder.

4. Run MYOstack_GUI. In Python IDLE open "MYOstack_GUI.py" file from downloaded folder: File -> Open -><...>->MYOstack_GUI.py. Then click F5, or Run -> Run module. The program will start.

Please Note: At the first start, an Internet connection is required - the program will download and install the missing components (pyserial, pyqtgraph, qtpy5, numpy, scipy modules), this will take some time (5 minutes). Next launches will be quick.
Installing on macOS (15 min)
1. Install the "Python 3.12": Download the "macOS 64-bit universal2 installer" on the official Python website: www.python.org/downloads/release/python-3129/ (file located at the bottom of the page) and run it. Then check «Add Python 3.12 to PATH» and click «Install Now».

2. Open the Python IDLE: «Applications -> Python 3.12 -> IDLE»

3. Download MYOstack_GUI folder by link https://github.com/ELEMYO/MYOSTACK-GUI. To download, click on the "Code" menu (green) and select "Download ZIP". Then unzip the folder.

4. Run MYOstack_GUI. In Python IDLE open "MYOstack_GUI.py" file from downloaded folder: File -> Open -><...>->MYOstack_GUI.py. Then click F5, or Run -> Run module. The program will start.

Please Note: At the first start, an Internet connection is required - the program will download and install the missing components (pyserial, pyqtgraph, qtpy5, numpy, scipy modules), this will take some time (5 minutes). Next launches will be quick.
Installing on Linux (10 min)
1. Install the "Python 3.12". Check if Python is preinstalled https://docs.python.org/3/using/unix.html.
If not installed, install according to instructions: https://docs.python.org/3/using/unix.html.

2. Download MYOstack_GUI folder by link https://github.com/ELEMYO/MYOSTACK-GUI. To download, click on the "Code" menu (green) and select "Download ZIP". Then unzip the folder.

3. Run MYOstack_GUI. In the terminal go to the folder with the MYOstack_GUI.py file and run the command: python3 MYOstack_GUI.py

Please Note: At the first start, an Internet connection is required - the program will download and install the missing components (pyserial, pyqtgraph, qtpy5, numpy, scipy modules), this will take some time (5 minutes). Next launches will be quick.
Receiver and transmitter firmware
Any environment that supports ESP32C3 modules can be used to flash the transmitter and receiver. The original source code is currently only provided for the Arduino IDE..

Transmitter / Receiver firmware process::

1) Install the free Arduino IDE:
https://www.arduino.cc/en/main/software

2) Add ESP32 in Arduino IDE board manager:
  • Open “Boards Manager”. In Arduino IDE 1.8.* go “Tools -> Board -> Boards Manager”. In Arduino IDE 2.*.* just press second icon on the left panel.
  • In Boards Manager search write "esp32" and find "esp32 by Espressif Systems". Choose 3.1.3 version and press install.
3) Connect the receiver/transmitter via USB to the PC (after disconnecting the sensors from the transmitter)

4) Select your controller in the section Tools -> Port

5) Select the type of programmable platform in the section Tools -> Board -> ESP32 Arduino ->XIAO ESP32C3

6) To flash the transmitter, use the sketch at the link (in the code, you must specify the MAC address of the receiver, an instruction about how to find the MAC address is here):

https://github.com/ELEMYO/MYOstack-firmware/blob/main/Transmitter.ino

to flash the receiver, use the sketch at the link:

https://github.com/ELEMYO/MYOstack-firmware/blob/main/Receiver.ino

7) upload the sketch to the board Sketch -> Upload

NOTE: if the receiver/transmitter is not being flashed, it is necessary to press and hold the enable button on the receiver board when starting the flashing.
Last update:
14 SEPTEMBER / 2025
copyright: Elemyo