Skip to content
Neural InterfaceC / VHDLMIT · v0.1.0High — Core Service

eNI — Neural Interface Platform

1,024 Channels · 30 kHz EEG · Spike Sorting · BCI Ready

A high-density neural signal acquisition and processing platform. Acquires EEG, EMG, ECoG, LFP, and spike trains from up to 1,024 channels simultaneously, applies real-time hardware-accelerated filtering and spike sorting, and delivers structured data to eAI for on-device BCI decoding.

1,024
Simultaneous Channels
30 kHz
EEG Sample Rate
100 kHz
EMG Sample Rate
< 1 ms
End-to-End Latency

How It Works

Step-by-step flow — from initialization to output.

1

Configure the Acquisition Pipeline

Select the signal modality (EEG, EMG, ECoG, LFP, spikes) and configure the channel map, sample rate, and hardware filter parameters. eNI supports mixed-modality acquisition — EEG and EMG simultaneously on different channel groups.

eni_config_t cfg = {
    .modality    = ENI_MOD_EEG | ENI_MOD_EMG,
    .eeg_channels = 256,
    .emg_channels = 64,
    .eeg_fs       = 30000,  // 30 kHz
    .emg_fs       = 100000, // 100 kHz
    .ref          = ENI_REF_AVERAGE,
};
eni_t eni = eni_open(&cfg);
2

Apply Hardware Filters

eNI's FPGA/DSP pipeline applies notch filters (50/60 Hz), bandpass filters, and common-average referencing in hardware — before the data reaches the CPU. This removes the most expensive processing from the software stack.

// Configure hardware filter chain
eni_filter_notch(eni, ENI_NOTCH_60HZ);
eni_filter_bandpass(eni, 0.5f, 300.0f);  // 0.5–300 Hz for EEG
eni_filter_car(eni, ENI_CAR_GLOBAL);     // Common-average reference
3

Run Spike Sorting

For extracellular recordings, eNI's hardware spike sorter detects action potentials, extracts waveform features, and clusters them into single-unit activity — all in real time, without CPU involvement.

// Enable hardware spike sorter
eni_spike_config_t sc = {
    .threshold_uv = -50.0f,   // -50 µV threshold
    .window_ms    = 1.5f,     // 1.5 ms waveform window
    .n_clusters   = 4,        // Up to 4 units per channel
};
eni_spike_enable(eni, &sc);
4

Stream Data to eAI via EIPC

eNI packages filtered signals and spike events into EIPC messages and sends them to the eAI inference task. The EIPC transport adds HMAC-SHA256 integrity and AES-256 encryption — critical for medical-grade data.

// eNI streams to eAI via EIPC
void eni_stream_task(void *arg) {
    for (;;) {
        eni_frame_t frame;
        eni_read(eni, &frame, ENI_WAIT_FOREVER);
        eipc_send(eai_port, &frame, sizeof(frame));
    }
}
5

Decode Intent with eAI

eAI receives the neural data frame, runs the BCI decoder model, and outputs the decoded motor intent or gesture class. The result is sent via EIPC to the actuator (robotic arm, cursor, stimulator).

// eAI BCI decoder (receives from eNI via EIPC)
void eai_bci_task(void *arg) {
    for (;;) {
        eni_frame_t frame;
        eipc_recv(eni_port, &frame, EOS_WAIT_FOREVER);
        eai_tensor_t out = eai_infer_sync(bci_model, frame.eeg);
        int intent = eai_argmax(out);
        eipc_send(arm_port, &intent, sizeof(intent));
    }
}

Usage Examples

Real-world scenarios showing eNI in action.

Motor BCI Prosthetic

Decoding 64-channel ECoG signals to control a robotic arm with < 10 ms end-to-end latency.

// Motor BCI pipeline: ECoG → eNI → EIPC → eAI → arm
#include <eni/eni.h>
#include <eai/model.h>
#include <eipc/eipc.h>

void bci_pipeline_init(void) {
    // Configure eNI for 64-channel ECoG
    eni_config_t cfg = {
        .modality    = ENI_MOD_ECOG,
        .eeg_channels = 64,
        .eeg_fs       = 30000,
    };
    eni_t eni = eni_open(&cfg);
    eni_filter_bandpass(eni, 70.0f, 200.0f); // High-gamma band

    // Load motor decoder
    eai_model_t decoder = eai_model_load("motor_decoder_v3.eai",
                                         EAI_BACKEND_NPU);

    // Stream: eNI → eAI → robotic arm
    eni_stream_to_eai(eni, decoder, arm_actuator_port);
}

Features

The shape of eNI at a glance.

1,024 Simultaneous Channels

Acquire EEG, EMG, ECoG, LFP, and spike trains from up to 1,024 channels at once.

Hardware Spike Sorter

FPGA-based spike detection, waveform extraction, and clustering — no CPU cycles consumed.

Mixed-Modality Acquisition

EEG and EMG simultaneously on different channel groups with independent sample rates.

Hardware Filter Chain

Notch (50/60 Hz), bandpass, and common-average referencing applied in hardware before CPU.

< 1 ms End-to-End Latency

From electrode to EIPC message in under 1 millisecond — critical for closed-loop BCI.

Medical-Grade Isolation

Patient isolation per IEC 60601-1. Galvanic isolation on all electrode inputs.

Impedance Measurement

Built-in electrode impedance measurement for signal quality monitoring.

Configurable Reference

Global common-average, local bipolar, or custom reference montage.

Role in the EoS Ecosystem

Why eNI matters — and what breaks without it.

eNI is the sensory nervous system of the EoS ecosystem. It bridges the biological world — neurons, muscles, brains — with the digital world of EoS. Without eNI, EoS cannot acquire the high-density biosignals needed for BCI prosthetics, seizure detection, cognitive load monitoring, or neural-controlled interfaces. eNI is the only component in the EoS stack that operates at the boundary between biology and silicon, making it indispensable for the entire eHealth365 and BCI product line.

Depends On

EoS Kernel — eNI acquisition runs as a high-priority ISR with DMA HAL access
EIPC — transports neural data frames to eAI with integrity and encryption
Hardware ADC / FPGA — 24-bit ADC front-end and FPGA spike sorter

Enables / Powers

eAI — receives eNI data for BCI decoding, seizure detection, gesture recognition
eHealth365 HEALTH-BAND Neuro — sEMG + TENS wristband uses eNI acquisition
eAI Edge Stack — the full eNI → EIPC → eAI pipeline for BCI applications
Research tools — 1,024-channel recordings for neuroscience research

Open source on GitHub

MIT licensed and developed in the open. Issues, discussions, and pull requests welcome.

⌥ embeddedos-org/eNI
Neural Interface Platform
C / VHDLMITv0.1.0
Open ↗

In the EoS stack

eNI is highlighted in the layer below.

App layer
UI / browser layer
Data layer
AI runtime
Neural interface
IPC fabric
EoS kernel + HAL
eos-platform profile
eBootloader
Build / IDE / Sim

Technical Specifications

Max Channels1,024 simultaneous (EEG + EMG + ECoG mixed)
EEG Sample RateUp to 30 kHz per channel
EMG Sample RateUp to 100 kHz per channel
ADC Resolution24-bit
Input Noise< 1 µVrms (0.5–300 Hz bandwidth)
CMRR> 120 dB
Latency< 1 ms electrode to EIPC message
SafetyIEC 60601-1 patient isolation; galvanic isolation on all inputs
InterfaceSPI / LVDS to host processor; EIPC to eAI
LicenseMIT (software); hardware schematics under CERN-OHL-S