Skip to content

Synced from upstream — do not edit this file directly

This page is generated from CARSSCenter/OpenNerve-Windows-App at Getting-Started.md as of commit 641159f. To change it, edit the file upstream and re-run tools/sync_docs.py. Use the "Edit this page" link above to go straight to the upstream source.

User Guide – OpenNerve Gen2 Development Board

This guide describes how to use the OpenNerve Gen2 PCBA as a benchtop development board, powered by USB-C connector, and controlled via BLE using the OpenNerve Windows App.

How to power the OpenNerve Dev Board

Power can be delivered to the OpenNerve Dev Board over USB-C, avoiding the need for a battery and bypassing the magnetic switch. To power the board by USB-C, you must first attach a jumper between VCHG_RAIL and the outside pin of VBAT2R (see picture below). Then, carefully insert USB-C.

VCHG update

OpenNerve Windows App Overview

You can run the windows app by either opening the solution file (ONrecorder.sln) in Visual Studios and clicking the green arrow at the top or by running directly from the ONrecorded.exe file. If you are using the App for the first time you will need to clone the code from the repository, open it in Visual Studios, then press the green arrow to compile before the .exe file is generated. Code for the Windows App can be found here: https://github.com/CARSSCenter/OpenNerve-Windows-App

On startup, the App will open to a selection screen listing all OpenNerve devices within BLE range. Each device will be identified by its Bluetooth UUID. Select a device and press connect to start the handshake process.

Scanning Screen

Once connected, the control screen will appear. The App and the OpenNerve board will undergo a handshake to authenticate, which may take several seconds. Once authenticated, the "Connected" message will appear and you will be able to record measurements, edit parameters, start and stop stimulation.

Controller Measuring

Sensing

OpenNerve has four differential amplifier analog front ends (AFEs) for recording biosignals. Two are exposed as header pins: ECG HR is designed to measure cardiac signals, and EMG1 is designed to measure muscle activity. Two others are only accessibly from holes in the board: ECG RR, which is designed to detect respiration and a second EMG AFE (EMG2). Depending on your specific model, the EMG AFEs may be optimized for neural signals (ENG) instead. The approximate filter coefficients and amplification for each AFE are below:

AFE Specification ECG HR ECG RR ENG EMG
High-pass filter, Hz 0.5 0.09 7.97 0.4
Low-pass filter, Hz 83.8 0.73 1,750 665
Amplitude min LSB, ±µV 2.8 2.8 0.37 1.4
Amplitude max at 14bit, ±mV 24 24 3 48
Gain for ADC Vref=±3V 125 117 1,005 250
Sampling rate, Hz 256 256 6,400 2560

There is also an I2C on the OpenNerve board that can be used to communicate with digital sensors. Currently, the only sensor supported is an accelerometer-based motion sensing lead (https://github.com/CARSSCenter/OpenNerve-Standard-Leads/tree/main/AMS%20Lead%20PCBA).

To record signals from one of the sensors, select the desired sensor using the radio buttons at the top of the Windows app. Start Measuring will display measurement data in the viewing window. To save this data, select the Save Data check button. Data will be saved in a .csv file to the desktop, with a filename defined by the user.

Measuring

Note: signal dropout may occur if there is poor BLE signal connection between the board and the computer. If the signal freezes, try stopping measurement, bringing the board closer to the computer, and restarting.

Stimulation

The App allows a user to set stimulation parameters and start or stop stimulation. The left side of the controls define parameters for square wave stimulation. Square waves may be applied between any two combinations of Channels 1, 2, 3, or 4. Press Load Params to read the current stimulation settings off of the OpenNerve board * Note: this will take several seconds.

To change a parameter, change the value in the text box and then press Set. * Note: parameters cannot be changed during stimulation. You may adjust parameters when stimulation is ongoing, but you will need to press Stop Stimulation and then Start Stimulation for the changes to take effect. * It is often useful to press Load after changing a setting to make sure that the OpenNerve board received it correctly.

To start stimulation, press Start Stimulation. It will take 2-3 seconds for stimulation to start. Once started, the button will turn red and say Stop Stimulation. To stop stimulation, press the button again. Stimulation should stop within 1 second.

Parameter explanation (square wave): * Cathode – the first electrode under test * Anode – the second electrode under test * Amp – current amplitude in milliAmps * Width – pulse width in microseconds * Freq – frequency in Hz * Ramp – the time in which current will ramp from zero to the target amplitude. Set to 0 for testing. * Train On – the time in seconds at which stimulation will continue. Set to any number for testing * Train Off – the time in seconds at which stimulation will pause between train cycles. Set to zero for testing

The right side contains a check box saying use sine wave. Checking this box puts the device in sine wave mode. In this mode, channels 1 and 2 provide square wave stimulation and channels 3 and 4 provide sine wave stimulation. * Note: in the current software version (as of May 2026), if Use Sine Wave is checked then channels 1 and 2 will output a square wave and channels 3 and 4 will output a sine wave no matter what channels are selected.

Parameter explanation (sine wave): * Amp (P-P): peak to peak amplitude of the sine wave. For example, setting this to “4” will set the sine wave to vary from +2 mA to -2 mA. * Freq: sine wave frequency, from 1 to 10 Hz * On time: how long to turn the sine wave on * Off time: off-interval for sine wave. Set to 0 for continuous output

Sine Parameters

Impedance

The “get impedance” button will return the impedance magnitude between the two channels selected in the stimulation side using a series 500us pulse width test pulse. The approximate impedance range that can be measured is 100 Ohms to 5kOhms. See the “Impedance Measurement Strategy” on GitHub for details of how impedance measurement works.

Developer Options

There is a Dev Options check box at the bottom of the form that may display options for development, or features that have not yet been tested. It will also display "Download Logs" and "Clear Logs" buttons. The Download Logs button downloads all logs recorded internally in the IPG and saves them to a file in the same folder as ONrecorded.exe. The Clear Logs button erases all logs on the IPG.

Dev options