What wearing it is actually like
- The headband measures a few simple things about your brain rhythms and how much you are moving, four seconds at a time.
- Software compares those measures against your own quiet baseline from earlier in the day. Not a universal threshold, and not anyone else’s.
- If the pattern stays away from your baseline long enough, the wristband gives one short buzz that nobody else can see, and never more than one every two minutes.
Afterwards you note what was going on around you. The buzz is only a prompt. The journal is the part you keep.
The engineering detail starts below.
The useful window may come before the words do
Sensory overwhelm can build before someone can explain what is happening. NeuroCalm is my attempt to make that earlier window visible: not by claiming to read a person’s mind, but by comparing current wearable signals against that person’s own quiet baseline.
The testable question is concrete: can a soft wrist cue, delivered only when a conservative personal-baseline detector fires, help the wearer notice a shift early enough to choose a regulation strategy?
Not the meditation headband you have seen advertised
Consumer EEG headbands that talk you through a breathing exercise already exist, and this is not one of them. Those are built for a quiet room and a session you chose to start. NeuroCalm is built for a school day you cannot pause.
- Your baseline, not a universal number. Nothing here decides what “overloaded” looks like in general. The system learns what your own signals look like when you are fine, and reacts only to movement away from that.
- A cue nobody else can see. A short buzz on the wrist, not a light or a sound. Nothing about it announces your state to a room.
- The journal outlives the cue. The lasting thing is your own record of context and what helped, which you can read back weeks later. The buzz is just what prompts you to write it.
- Caregiver check-ins are opt-in. Off by default, and they carry no signal data. A check-in means “how are you doing,” not an alert and not a monitoring feed.
What the device keeps, and what it never sends
- Raw EEG is not written to the session journal. What gets stored is a summary of the signal and your own notes about context.
- Session logs are plain local files. Nothing is uploaded, and there is no account to create.
- Caregiver check-ins stay off unless deliberately switched on, and they never include raw signal data.
- The wristband has a physical off switch, so stopping the device never depends on an app or a menu.
A device worn through a school day is in a position to record other people. Not collecting that in the first place is easier than promising to protect it.
What exists in the prototype repo now
- Signal stream: synthetic EEG/body-signal stream works now; Muse 2 or Muse S/Athena through BrainFlow is the planned live sensing path.
- Feature extraction: 4-second windows produce alpha, theta, beta, motion, alpha/theta ratio, and signal-quality summaries. Raw EEG is not written to the session journal by default.
- Detector: an overload-risk cue score is computed against a personal baseline, then filtered through smoothing, dwell, hysteresis, and a refractory period so one noisy window cannot trigger the wrist.
- Output: ESP32 wristband with a DRV2605L haptic driver and small vibration motor. Live vibration is opt-in; dry-run logging stays the default.
- Review: a session-review command summarizes usable signal, cue decisions, delivered nudges, withheld catch trials, journal tags, and next-step flags.
The cue is gated, calibrated, and deliberately hard to annoy
Each 4-second feature window is scored against the wearer’s baseline:
score = 0.33 * alpha_drop
+ 0.32 * theta_rise
+ 0.18 * beta_rise
+ 0.17 * motion_rise
The weights are a starting hypothesis, not a result. They are written down so real sessions can disagree with them. Four guardrails stand between the score and the wrist:
- Smoothing: the score is averaged over time so it does not jump because of one noisy window.
- Dwell: the score has to stay high across consecutive windows before a cue is eligible.
- Hysteresis: after a cue, the score must fall below a release threshold before the system can re-arm.
- Refractory period: by default, the device can cue at most once every two minutes.
The threshold is calibrated from a quiet session against a false-nudge budget. That matters because a hand-picked threshold is not comparable across people, headbands, or school days.
The first wearable version is a headband plus a wristband
- Sensing: Muse 2 or Muse S/Athena as the EEG headband, read through BrainFlow.
- Controller: ESP32 board for the haptic wristband.
- Haptics: DRV2605L motor driver plus a small vibration motor.
- Safety: soft wrist strap, smooth enclosure, battery protection, strain relief, and a physical off switch.
- Not in v0: electrical stimulation, adhesive electrodes for school wear, loud buzzers, or anything that publicly exposes the wearer’s state.
The wristband speaks simple serial commands
The current ESP32 sketch listens for three cue patterns: soft, ground, and pause. This is the actual control idea in the repo: the Python loop decides when a cue is eligible, and the wristband only plays a named haptic pattern.
if (command == "soft") {
playEffect(47);
} else if (command == "ground") {
playEffect(52);
delay(120);
playEffect(52);
} else if (command == "pause") {
playEffect(1);
} else {
Serial.println("unknown:" + command);
}
The next steps are staged on purpose
- Phase 0, synthetic loop: working. A 90-second synthetic smoke test created a JSONL session, logged 22 usable windows out of 22, delivered 1 dry-run nudge, and flagged the session as too short for claims.
- Phase 1, wristband bench test: connect the ESP32 wristband over USB and send
python -m neurocalm.cli cue --port COM5 --pattern soft. Pass only if the cue is gentle, stoppable, and not startling. - Phase 2, Muse sanity check: run an eyes-open/eyes-closed alpha check. Pass requires median closed/open alpha ratio at least 1.40, median AUC at least 0.75, and at least 3 of 4 pairs moving in the right direction.
- Phase 2b, calibration: record a quiet session and choose a threshold from a stated false-nudge budget, such as 2 unwanted cues per hour.
- Phase 3+, shadow before school: home shadow mode comes before haptic mode; school shadow mode comes before school nudge mode; caregiver notices stay off unless everyone agrees what they mean.
What NeuroCalm can infer, and what it cannot
The theory model has four layers: environment, latent state, cue decision, and user interpretation. NeuroCalm can record broad context tags, summarize wearable features, and make a cue decision. It cannot directly read distress, autism, anxiety, or sensory overload.
This boundary matters because EEG findings in autism and sensory processing are real but heterogeneous. Sensory processing differences have neurophysiological support across EEG, MEG, and fMRI work (Marco et al., 2011), but resting-state EEG findings vary across studies (Neo et al., 2023). Alpha activity has also been linked to sensory behaviors in autistic adults, which supports measuring it while also warning against simple one-band claims (Murray et al., 2025).
The limits are part of the design
NeuroCalm is a prototype, not a medical device. It does not diagnose, treat, prevent, or cure anything. The current claim is feasibility: whether personalized physiology plus a quiet cue and a reviewable journal can support earlier self-awareness. If the signal is too noisy, the cue is intrusive, or the journal is not useful, that is not failure to hide. It is exactly what the prototype is supposed to find out.
Get in touch
I’m especially glad to hear from people who build assistive technology, work in autism support or special education, design EEG or wearable haptics, or can tell me what would make NeuroCalm unwelcome in a classroom.
perioztekinneuroscience@gmail.com