A student club turned Meta's Neural Band into an 8-channel, 2048Hz EMG recorder

A student club turned Meta's Neural Band into an 8-channel, 2048Hz EMG recorder

The wristband that ships with Meta Ray-Ban Display, and that Meta has only ever priced together with the glasses, hands over its raw electrode samples to anything that can prove it owns the band, and a student club has published a tool that does exactly that. RawMeta "turns a Meta Neural Band into an 8-channel, 2048 Hz research EMG device on a Mac", its README says, streaming "the band's raw ADC samples (not gestures)" to disk or to a live analysis stream.

Three people wearing smart glasses in a dark room, one of them making a pinch gesture with a band on her wrist

A pinch gesture with a band on the wrist. RawMeta ignores the gestures and takes the electrode samples underneath them. Image: Mixed News media library

The project was "built for the Triton Neurotech club at UCSD", is published under an MIT licence, and credits two earlier MIT-licensed community projects for the protocol knowledge. The numbers it prints are specific: 2048Hz, delivered as 16 samples per Bluetooth batch at 128 batches a second, 16-bit, with each count worth about 0.2008 microvolts and the conversion formula printed in full. Latency from the band to the analysis stream is given as about 60ms.

The signal levels are there too. A resting forearm sits at roughly two to 10 microvolts RMS after a 20 to 450Hz filter, and "a strong fist hits hundreds of µV to a few mV on the flexor-side channels".

The link is encrypted and bound to one host

Getting at any of this is not a matter of pairing. "The band only streams to a host that proves it is the band's owner," the README says, and the stack it documents runs from a GATT service through a Bluetooth L2CAP channel into an encrypted layer the project calls AirShield: P-256 key exchange, HKDF-SHA256, AES-256-CBC with a chained initialisation vector, and an eight-byte HMAC on each message. Enrolment is a one-off ceremony against a Meta account, after which "no internet or Meta account is needed" and every session is a local signed handshake.

Ownership moves with a key file rather than being shared. Copying it to a second Mac "moves ownership to the new key, and the old Mac stops working". The warning attached to all of it is blunter: "Never pair the band with the Meta AI phone app," because firmware arrives that way and an update can break the whole thing. The club tested one firmware build and says a second parameter set is implemented but "untested on hardware here".

The loss figures are measured, and deliberately unflattering

Across nine recording sessions the project counted 292,530 batches and 383 missing, which is 0.13% overall, with six of the nine showing no loss at all. The worst was a 4.6-minute session on someone else's arm with the band's position unknown, which lost 0.988%. Freezing the recording process for a full second every 10 seconds caused no loss either, which rules out the Mac being the bottleneck.

The counting method explains why its numbers run high. The band numbers only the batches it sends, so its sequence numbers never skip when something is dropped, and RawMeta measures loss from the band's microsecond timestamps instead. Its numbers "can be higher (and are more honest) than tools that count sequence gaps". Recordings export to NumPy archives, CSV and EDF+, which the project describes as bit-exact with the band's data and readable in EDFbrowser, MNE and EEGLAB.

One club's tool, not an adopted standard

Nothing here is a Meta project, and nothing here has a user base. The repository and the second copy of it that the README's own clone line points at both show zero stars, and neither is marked a fork, so the measurements above are one club's work on one or two bands. It is not the first unofficial project to go at the band directly, after a project that drove Rokid glasses with the Neural Band and Meta's handwriting model on October 7.

What makes this one unusual is that it publishes its own error bars. The firmware it was tested against is named, the parameter set it has not tested on hardware is named, and the session that went worst is in the table with the rest.

Leave a Comment

Your email address will not be published. Required fields are marked *