NECKQUEST offline demo Watch video →
Live muscle-state recognition

The signal below is synthesized in your browser so you can see the recognition logic without the physical sensor. The device computes a rolling RMS of the left-trapezius EMG; when it crosses your personal threshold the state flips from relaxed to tense. Use the buttons to drive the muscle, or let it auto-cycle.

RELAXED Left trapezius at rest — good posture
confidence
LEFT TRAP · GPIO10live EMG · threshold 0.220
RMS0.000
ClassRELAX
Confidence
PAST SESSIONS (sample)
Jun 27 · 14:54 · 92% Jun 27 · 12:01 · 83% Jun 27 · 11:10 · 96% Jun 27 · 09:28 · 100% Jun 27 · 07:36 · 100%

In the real product these chips are saved calibration datasets; each one trained the SVM classifier (StandardScaler → RBF SVC) on your own rest/tense recordings.

Holter playback — recognized tension over time

A synthetic workday recording reconstructed from the device's on-flash Holter log. Each record is classified against the threshold and shaded red (tense) or green (relaxed). Drag the threshold to watch the rest/tense split recompute — exactly how the real /holter page rebuilds its timeline.

0.220
Time tense
0%
Time relaxed
0%
Threshold
0.220
rest vs tense
Records
600
10 Hz log
GPIO10 · RMSshaded by recognized state
tense — above threshold (no rest gap) relaxed — below threshold (muscular rest)

The clinical signal NeckQuest tracks is the absence of green rest gaps: long unbroken red stretches are the sustained low-level activity associated with neck/shoulder pain in occupational-EMG research.

The EMG workflow

Four steps turn raw muscle electricity into a personal tension map.

1 · Collect
One surface-EMG patch on the left upper trapezius feeds the ESP32-S3 ADC at 500 Hz. The firmware centres, rectifies and takes a rolling RMS (200 ms window) → a clean 0–1 envelope.
2 · Calibrate & train
You record two labelled states — rest (head tilted left, shoulder dropped) and tense (shrug + head turn). The server extracts a 7-D feature vector (RMS, MAV, WL, ZC, SSC, MDF, MNF) and trains an SVM. If accuracy is too low the calibration is discarded and you retry.
3 · Recognize live
The trained model (or a simple RMS threshold) labels every incoming window relaxed or tense in real time — the Live Classify tab above.
4 · Record all day (Holter)
The device logs a full workday to its own flash (delta-compressed). Later the Holter tab reconstructs the session and shades every record, revealing where the muscle never got a rest gap.

This is a prevention / training / wellbeing tool — not a medical device. See the project README for the full research basis and honest-scope notes.