There is a newer version of the record available.

Published July 9, 2026 | Version 1.2.0

emgteach: an open-source teaching platform for surface electromyography

  • 1. Department of Physiology (Faculty of Pharmacy), Universidad Complutense de Madrid, Madrid, Spain

Description

emgteach is an open-source Python package that provides a unified PySide6 desktop application for real-time acquisition, offline analysis and maximum voluntary contraction (MVC) normalisation of surface electromyography (sEMG) signals. It is designed for hands-on biopotential acquisition in undergraduate physiology teaching laboratories, and is meant to be set up by instructors with different levels of technical background and used directly by students during a practical session.

The application is hardware-agnostic through a common AcquisitionDevice interface and ships with two interchangeable low-cost backends: BITalino (revolution) over Bluetooth, and an Arduino RedBoard Plus + MyoWare 2.0 over USB serial (open firmware included). A single setting switches between them.

Main features:

  • Three-tab GUI (Acquisition, Analysis, MVC normalisation) wrapping a reusable, Qt-free analytic core.
  • Bilingual interface (English / Spanish) with automatic start-up language detection and an in-app language switch.
  • Two-channel acquisition (e.g. agonist/antagonist) with a stacked two-channel live view.
  • Automatic contraction-onset detection (baseline + k·SD threshold) stored as EDF+ annotations.
  • Muscle-load analysis (Jonsson APDF): static (P10), median (P50) and peak (P90) %MVC levels, both offline and as a live monitor with warning/danger zones.
  • One-click PDF session and MVC/muscle-load reports.
  • Reliable EDF+ output using a buffered-write pattern that avoids a silent file-corruption artefact during continuous streaming.
  • Reproducible synthetic signals for class assignments and hardware-free continuous integration.
  • Assisted selection of significant fragments, with an editable fragment editor (detection parameters and envelope-filter cut-offs) applied to the analysis.
  • Region-of-interest analysis, CSV export of results, and a live signal-quality check during recording.
  • An ECG signal profile alongside EMG, selectable through a profile registry.

emgteach runs on Windows, macOS and Linux with Python 3.10–3.12, is covered by a suite of 216 automated tests, and is released under the GPL-3.0-or-later license. Source code, documentation and issue tracker: https://github.com/aagisto-maker/emgteach

Files

aagisto-maker/emgteach-v1.2.0.zip

Files (287.7 kB)

Name Size Download all
md5:f83aa12d6a2bd9d39deed80ef0a41186
287.7 kB Preview Download

Additional details

Related works