Skip to content
Neural InterfaceCMIT · v0.3.0High — Core Service

eNI — Neural Interface Platform

Configurable Channels · Hardware-Defined Sample Rates · Neural Research

An in-development neural signal acquisition and processing platform for EEG, EMG, ECoG, LFP, and spike-train research. Channel count and sample rate depend on the acquisition hardware and configuration; performance limits remain research targets until measured on a named setup.

For a shorter introduction to eNI, see the eNI overview. This page is the engineering detail.

Configurable
Channel Map
Hardware
Sample-Rate Limit
Research
Spike-Sorting Pipeline
Front End
ADC Resolution

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 = BOARD_EEG_CHANNELS,
    .emg_channels = BOARD_EMG_CHANNELS,
    .eeg_fs       = BOARD_EEG_SAMPLE_RATE,
    .emg_fs       = BOARD_EMG_SAMPLE_RATE,
    .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 design uses HMAC-SHA256 integrity and AES-256 encryption; medical use would require system-level validation and regulatory approval.

// 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

Illustrative research configuration for evaluating ECoG motor-intent decoding with an assistive controller.

// Illustrative research pipeline: ECoG → eNI → EIPC → eAI
#include <eni/eni.h>
#include <eai/model.h>
#include <eipc/eipc.h>

void bci_pipeline_init(void) {
    eni_config_t cfg = {
        .modality     = ENI_MOD_ECOG,
        .eeg_channels = BOARD_ECOG_CHANNELS,
        .eeg_fs       = BOARD_ECOG_SAMPLE_RATE,
    };
    eni_t eni = eni_open(&cfg);
    eni_filter_bandpass(eni, 70.0f, 200.0f);

    eai_model_t decoder = eai_model_load("research_decoder.eai",
                                         EAI_BACKEND_NPU);
    eni_stream_to_eai(eni, decoder, research_output_port);
}

Features

The shape of eNI at a glance.

Configurable Channel Maps

Configure EEG, EMG, ECoG, LFP, and spike-train inputs within the limits of the attached acquisition hardware.

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.

Hardware-Pipelined Signal Path

Filtering and spike sorting run in the FPGA/DSP pipeline ahead of the CPU, so the electrode-to-EIPC path carries no software filtering overhead.

Isolation Design Target

The hardware design targets IEC 60601-1 patient-isolation requirements; certification and physical validation are pending.

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. See how the pieces fit together in the EmbeddedOS ecosystem overview.

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 — configuration-specific neural recordings

Open source on GitHub

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

⌥ embeddedos-org/eNI
Neural Interface Platform
CMITv0.3.0
Open the embeddedos-org/eNI repository on GitHub ↗

Every EmbeddedOS repository, with install commands, is listed on the downloads page.

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

Channels and Sample RateConfiguration-specific; limited by the acquisition front end
ADC ResolutionAcquisition-front-end dependent
Input NoiseHardware benchmark pending
CMRRHardware benchmark pending
Processing PathHardware DSP/FPGA pipeline (filtering + spike sorting) ahead of the EIPC handoff
SafetyDesign target: IEC 60601-1 patient isolation; validation pending
InterfaceSPI / LVDS to host processor; EIPC to eAI
LicenseMIT (software); hardware schematics under CERN-OHL-S