Open source myoelectric neural interface.
Go to file
hut 018694667d .gitignore: add .env 2023-08-25 23:55:15 +02:00
arduino Added AnalogToBLE1.2.ino, for P10 2023-04-06 22:37:59 +02:00
experimental moved R&D directories to "experimental" subdirectory 2021-05-08 02:24:56 +02:00
gnuradio gnuradio: fix comments in code blocks 2023-08-25 23:53:55 +02:00
maintenance write error messages to STDERR instead of STDOUT 2023-04-10 16:05:34 +02:00
python python: update comments 2023-08-25 23:18:02 +02:00
schematics schematics: typo 2023-08-24 15:16:24 +02:00
.gitignore .gitignore: add .env 2023-08-25 23:55:15 +02:00
LICENSE license under GPLv3 2021-05-08 01:17:22 +02:00 Add contributors 2023-06-01 19:12:36 +02:00


License: GPL 3.0 Commit Activity Matrix Chatroom Mastodon

Open source myoelectric neural interface.

Website :: Documentation :: Matrix Chatroom :: FAQ

Photograph of PsyLink Prototype 10


Psylink is intended as a human input device (like a keyboard) that predicts your intention from muscle signals. Using a neural network, trained through a process where you press keys at the exact same time that you make movements with the limb wearing the device, it learns correlations between the muscle signals and intended keys, and can press them for you.

Software used to create/edit/run these files

  • Schematics, PCB Layouts: KiCad 6.0 (some archived ones used 5.1.5)
  • Arduino IDE 1.8.19
    • ArduinoBLE 1.2.1
    • Arduino_LSM9DS1 1.1.0
  • Python 3.8
    • For library versions, see the respective requirements.txt file
  • GnuRadio


This describes prototype 4.

photo of the device

  • Features:
    • Battery-powered
    • Wireless, using Bluetooth Low Energy (BLE)
    • Supports 17 electrodes (8 pairs + 1 ground)
    • Transmits 8 signals at 8-bit resolution, 500Hz sampling rate
    • Linux graphical user interface for:
      • Mapping keyboard key presses to muscle signals
      • Training a neural network to predict key presses from signals
      • Simulating key presses based on neural network predictions
    • GNURadio integration for plotting the raw signals + FFT
  • Hardware overview:
  • Software dependencies:
  • Components:
  • Power ratings
    • Supply Voltage: 4.5-6V
    • Power dissipation:
      • Idle: ~86.9mW (16.9mA x 5.14V)
      • Transmitting at 6-7kB/s: 92.5mW (18.0mA x 5.14V)
  • Weight: ~85g (at 9.81m/s² gravitational acceleration)


Very special thanks to every contributor. You all shaped the direction of this project in your unique way, and we would not be at this point without you!


Copyright (C) 2023 Roman Zimbelmann

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see