01

Architecture Overview

The Velo-X signal pipeline runs entirely on-device. No data is transmitted to external servers during normal operation. The processing chain consists of four sequential stages: acquisition, classification, decision, and actuation.

Sensor sampling schedule
SensorRateBufferNotes
EOG (differential)256 Hz4 s rollingBandpass 0.3–40 Hz
PPG (IR + red)64 Hz30 s rollingAmbient subtracted
IMU (accel + gyro)50 Hz8 s rollingLow-power mode
Temp (skin contact)1 Hz60 s rollingContact detection only

Total pipeline latency from REM onset to first possible cue: 8–20 minutes (configurable, default 8 min). Average current draw during active processing: 1.8 mA.

02

LED Intensity & Pulse Configuration

The LED driver operates in constant-current mode with 12-bit PWM resolution. Intensity is specified in cd/m² at the diffuser surface. The sub-threshold target is the intensity at which a cue is reliably processed by the visual cortex during REM without triggering arousal.

Intensity levels
Levelcd/m²Typical useArousal risk
10.02Initial calibrationNegligible
20.04Sensitive usersVery low
30.08DefaultLow
40.14Tolerance plateauModerate
50.22High threshold usersModerate-high
60.40Maximum recommendedHigh
70.80Research / overrideVery high
Pulse timing parameters
ParameterDefaultRangeNotes
Pulse count21 – 6Per cue event
ON duration50 ms20 – 200 msLED active period
OFF duration600 ms300 – 1200 msInter-pulse gap
Cue cooldown8 min4 – 30 minMin. time between cues
Max cues/night61 – 12Safety ceiling
03

REM Detection Pipeline

REM classification uses a 14-feature decision tree evaluated every 2 seconds. On-device accuracy: 91.3% sensitivity, 88.7% specificity at the default threshold of 65.

Feature groups
  • EOG features (6): movement rate, amplitude, saccade burst density, waveform asymmetry, HF content ratio, impedance delta
  • HRV features (5): mean RR interval, RMSSD, LF/HF power ratio, RR trend, autonomic suppression index
  • Motion features (3): micro-movement count, postural stability score, voluntary movement probability
Threshold selection

If cues consistently wake you: raise threshold by 5 points. If few REM windows detected: lower by 3 points. Adjust in single steps with at least 5 nights between changes. Do not go below 50.

04

Adaptive Threshold Algorithm

The adaptive algorithm adjusts cue intensity based on physiological response to previous cues. It operates on a 7-night rolling window and updates once per night after the session ends.

Response classification
ClassCriteriaAction
ArousalHRV drops >15%, motion events >2, waking EOG patternDecrease intensity –1
IntegrationEOG change, no arousal markers, stable HRVMaintain or increase +1
NullNo detectable physiological responseIncrease +1 after 3× null
Tunable parameters
ParameterDefaultRangeEffect
learning_rate0.200.05–0.5EMA weight for new observations
arousal_weight2.01.0–4.0Penalty multiplier for arousal
null_patience31–6Nulls before intensity increase
max_delta_per_night10–3Max intensity steps per session
05

HRV Integration

Heart rate variability serves two functions: sleep depth estimation and post-cue arousal detection. The HRV gate blocks cue issuance when LF/HF exceeds 2.5 — preventing cues during transitional sleep phases even when the EOG classifier reports REM-active.

RMSSD is the primary metric for beat-to-beat variation. A declining RMSSD trend over multiple nights suggests the protocol is adding physiological load. Pause if RMSSD drops more than 10% below your 14-night baseline for three consecutive nights.

06

Motion Artifact Filtering

Motion artifacts contaminate both EOG and PPG signals. The IMU provides a reference channel for artifact subtraction using adaptive LMS filtering.

Motion classification
  • Micro-movements: sub-threshold shifts during active sleep — expected in REM, included in feature set
  • Macro-movements: repositioning, partial arousals — trigger a 45-second blanking window with no cues and flagged classifier output

If motion artifact quality score is consistently below 60: check strap tension, reposition EOG contacts on the orbital bone, run fit diagnostic for 3 consecutive nights.

07

Timing Windows

Three independent window parameters control the temporal envelope for cue issuance:

Window parameters
ParameterDefaultRangePurpose
onset_delay8 min4–30 minMin time from REM onset to first cue
session_start90 min20–180 minEarliest time after sleep onset
session_end60 min0–180 minBuffer before planned wake
Recommended configurations
Use caseonset_delaysession_startNotes
Default8 min90 minMost users, first 30 nights
WBTB supplement4 min20 minAfter re-entry
High-arousal user12 min120 minFragmentation history
Advanced / trained4 min60 minPost-30 nights
08

Advanced Configuration

Advanced configuration is accessible after Night 30. Access via Settings → Developer → Signal Config. All advanced parameters are reset on factory reset.

ParameterDefaultRangeDescription
rem_confidence_threshold6550–85REM classifier cutoff
hrv_gate_lf_hf_max2.51.5–4.0HRV gate threshold
intensity_learning_rate0.200.05–0.5Adaptive EMA weight
arousal_penalty_weight2.01.0–4.0Arousal response weight
max_cues_per_night61–12Safety ceiling
motion_blank_duration_s4520–120Post-movement blank window
09

Troubleshooting Signal Issues

IssueLikely causeFix
High EOG impedanceSkin contact, dry electrodesClean with alcohol, reposition
REM not detectedLow-amplitude EOG or threshold too highLower threshold by 5, check strap
Cues wake youIntensity too high, timing too earlyReduce intensity –2, raise onset_delay
No cues despite REMHRV gate active, timing window blockedCheck LF/HF, verify session_start
A

Full Parameter Index

ParameterDefaultRangeSection
hrv_gate_lf_hf_max2.51.5–4.005
led_intensity_level31–702
max_cues_per_night61–1208
motion_blank_duration_s4520–12006
null_patience31–604
onset_delay_min84–3007
pulse_count21–602
pulse_off_duration_ms600300–120002
rem_confidence_threshold6550–8503
session_start_min9020–18007