Skip to content

Latest commit

 

History

260 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPG Lite Arduino Firmware

Neuro PlayGround (NPG) Lite is an open-source neuroscience development board by Upside Down Labs that lets you read, process, and act on bio-potential signals like EEG, EMG, and EOG. This repository contains several standalone examples for the NPG Lite hardware.

What This Repo Contains

Each folder is a self-contained Arduino sketch targeting a specific application. Sketches range from raw signal streaming over serial to full Brain-Computer Interface (BCI) pipelines that control external devices wirelessly via Bluetooth Low Energy (BLE), infrared (IR), or Wi-Fi.


Firmware Sketches

Example Code
Default program to show Visual, Auditory, and Haptic feedback on NPG NPG-Default.ino
Calculate FFT & Band Power of single channel EEG and print on Serial Serial-FFT.ino
Bluetooth Low Energy (BLE) server to notify client with real-time NPG data BLE-Server.ino
BLE client to take notification from server and trigger GPIO BLE-Client.ino
BLE server to notify client based on EEG band (beta) power triggers BLE-BCI-Server-Toggle.ino
InfraRed (IR) receiver code to identify LG AC remote button commands IR-LG-Receive.ino
IR signal send example code to control LG AC to toggle ON/OFF using user button IR-LG-Send.ino
Brain Computer Interface (BCI) to toggle LG AC ON/OFF using EEG band (beta) power BCI-IR-Send.ino
BLE client that receives notifications from the server and triggers GPIO to control the car BLE-BCI-Car.ino
BCI remote (server) to drive the BLE car using EEG band (beta) power and EMG (envelope) data BLE-BCI-Car-Remote.ino
Brain Computer Interface example sketch for Double blink and focus detection. BCI-Blink-Serial.ino
Brain Computer Interface to control a menu of options using Double blink and focus detection for ALS patients. BCI-Blink-BLE.ino
MPU6050 sketch to stream 3-axis accelerometer data and send 4 keystrokes to play video games on laptop. Gyro-Motion-Detection.ino
Detects double and triple blinks from EOG signals using high‑pass and notch IIR filters with envelope detection. Blinky-Keys-Serial.ino
Implements a BLE HID keyboard that sends right‑arrow on double blinks and left‑arrow on triple blinks to control slides in a presentation. Blinky-Keys-BLE.ino
Implements a BLE gamepad that reads EEG and EMG signals to control games on Windows, using focus and muscle contractions. BCI-BLE-Gamepad.ino

Standardized NeoPixel LED Layout

All BLE-enabled or peripheral-using sketches follow a shared 6-LED NeoPixel convention so the board behaves predictably across firmware variants.

NPG Lite LED Layout

LED Standard Role Colors
LED 1 BLE / Wi-Fi connection status GREEN = connected · RED = disconnected · BLUE = actively streaming data
LED 2 General purpose Sketch-specific
LED 3 General purpose Sketch-specific
LED 4 I²C peripheral status GREEN = device found · RED = device missing
LED 5 General purpose Sketch-specific
LED 6 Battery level GREEN > 70 % · ORANGE 20–70 % · RED < 20 %

Sketches that follow this convention: BLE-BCI-Car-Remote · BCI-BLE-Gamepad · Blinky-Keys-BLE · NPG-Mouse-BMI270 · NPG-Mouse-MPU6050 · Wheelchair-Sim

Sketches that do not use this convention:

Sketch Reason
Serial-FFT · BLE-Server · BLE-Client · BLE-BCI-Car · Blinky-Keys-Serial · Relay-Client · 1CH-HCI-BCI-Serial Not needed
BCI-Blink-BLE · BCI-Blink-Serial · BCI-IR-Send · BCI-Relay-Server · BLE-BCI-Server-Toggle · Gyro-Motion-Detection · NPG-TELLO-Drone All LED occupied and

For more information


About

Neuro Play Ground (NPG) Lite firmware repository

Resources

Stars

35 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages