PsyLink

open source
electrode
armband

https://psylink.me
  1. What is PsyLink?
  2. Neural Interfaces
  3. Implementation
  4. Biology Basics
  5. Plans for the Future
  6. Demo

1. What is PsyLink?

A modular open source (GPL3)
non-invasive electromyography project.

Electromyography = Reading electrical
nerve singals, amplified by muscles.

State of the art EMG Armband: MYO (Thalmic Labs)


Source: Timothy Chu et al, 2020
PsyLink comes with:
  • Electrode armband schematics
  • Arduino firmware
  • Signal processing software (Rust)
  • Datasets, well-documented
  • Microcontroller: Arduino Nano 33 BLE (Sense)
  • 16 electrodes, 8 signals, 500MHz, 8 bit, 5V
  • Amplifier: INA128 instrumentational amplifier
  • Rust packages: Slint, Tokio, Burn, Btleplug, Enigo
  • Platforms: Linux, Windows, MacOS
  • Material cost: ~150€

2. Neural Interfaces

immense potential to shape our minds

Sensory Substition: Cochlear Implants


Source: hopkinsmedicine.org, advancedbionics.com

"Easy" entry points into the mind

  • Auditory nerve
  • Retina
  • Primary Visual Cortex
  • Primary Sensory Cortex
  • Primary Motor Cortex
  • Amygdala (fear)
  • Nucleus accumbens (pleasure)

Sensory Homunculus


Source: Wikipedia

Brain Computer Interfaces

  • The knowledge of the world at your synapses
  • "Just" an implanted smartphone?

All you perceive is implemented in the brain

Change the brain events
→ Change everything about your subjective reality

Even things you take for granted

  • Your personality, memories, preferences
  • The concept of a "you"
  • Sense of time passing
  • Sense of being embodied in a human
  • First person perspective
  • Your sensory fields

That's great, right?

  • Create realities from scratch
  • Utopias without suffering
  • The limit is your imagination

What neural interfaces will actually be used for

  • Delivering propaganda
  • Manipulating behavior
  • Creating dependence
  • Unimaginable torture

2.1. Neural Interface Risks

  • Manipulation
  • Privacy invasion
  • Malfunctions
  • IT Security
  • Obsolescence

Maybe the good old brain is not so bad.

Second Sight


Now obsolete, leaving users blind:
Source: https://spectrum.ieee.org/bionic-eye-obsolete

Thalmic Labs' MYO Armband


Source: Timothy Chu et al, 2020

Thalmic Labs' MYO Armband


Metaverse


Source: CNN

3. Implementation

The Process

Phil Kennedy's implant


Source: Wired

4. Biology Basics

Motor Units


Source: pharmacy180.com

Motor unit action potential


Source: neupsykey.com
  • Duration: 1 - 20 ms
  • Amplitude: 0.1 - 2 mV
  • Frequencies: 50-150Hz (up to 0-500Hz)

Surface EMG reading


Source: Rinaldo Mezzarane et al, 2023

Seismic Gradiometry


Source: Takuto Maeda et al, 2016

Source: Jaime Ibáñez et al, 2024

3. Implementation

The Power Module



  • Battery
  • Boost converter (1.2V → 5V)
  • Reference voltage generator (2.5V)

Water Detector


Portable Moodlight


3. Implementation

The Electrode Module



  • Gain: x251
  • Differential amplification
  • 2 Electrodes → 1 Signal

Instrumentation Amplifier: INA128


Source: ti.com

Problems with INA128

  • Expensive (18€ each from German retailer)
  • Min. 4.5V, but Arduino's ADC limit = 3.3V

3. Implementation

The Firmware

Firmware only passes through data

  • Reads the voltage at analog inputs (500Hz)
  • Packages the data using a simple protocol
  • Sends the packages over Bluetooth (20/s)

Firmware only passes through data

"Dumb" firmware means that I can use old devices with new software without modification.

3. Implementation

5. Software

Old, deprecated python UI

PrototypeFund funding!


prototypefund.de

"Slint" frontend

"Slint" frontend

"Tokio" for async

Multithreaded asynchronous execution of

  • Bluetooth module to receive data
  • Plotting module to draw data
  • Slint module to draw window/UI
  • ML module to predict key presses
  • Enigo module to simulate key presses

"burn" machine learning backend

Software Overview

  • Pure Rust 🦀
  • Platform-independent libraries:
    • Slint, Tokio, Burn, Btleplug, Enigo
  • Works on Linux, Windows, Mac
  • Android: compiles and runs, but no Bluetooth
  • Compiled binary, almost no dependencies
  • ~10MB executable size

3. Implementation

6. Data Sets

https://psylink.me -> Source -> Datasets

Open Data Sets

  • Videos/Screenshots of the data recording
  • Description of the data structures
  • Metadata (sample rate, voltage range, ...)
  • Links to the software and firmware
  • Small data samples in plain text format
  • Sample code that opens and processes the dataset

5. Plans for the Future

Garden of low hanging fruits

  • Quality improvements
  • Lower cost (money, assembly time)
  • Applications, e.g. music synthesis
  • [Your Idea Here]

Do you have an idea for a project?

Reach out to me! - info@psylink.me

Problem: Long wires with analog signal

They act as antennae! → Lots of interference

Plan: ADC on electrode module, transfer with I2C.
Would also allow using more electrodes!

Demo

Thank you!

  • https://psylink.me
  • Microcontroller: Arduino Nano 33 BLE (Sense)
  • 16 electrodes, 8 signals, 500MHz, 8 bit, 5V
  • Amplifier: INA128 instrumentational amplifier
  • Rust packages: Slint, Tokio, Burn, Btleplug, Enigo
  • Material cost: ~150€