Connectivity
uMyo transmits over a 2.4 GHz radio. How you receive it decides what data you get, what hardware you need, and your latency. There are two radio worlds — direct radio (to a USB base, an Arduino, or an ESP32) and BLE (to a phone that bridges to your PC) — and four practical paths.
Under the hood the firmware emits a raw binary format (over BLE GATT or the base’s serial); a small adapter converts it to the tools’ interchange format, UF1. See Data & Protocol for the wire details — this page is about choosing a path.
At a glance
Section titled “At a glance”| Path | Hardware | Data | Latency | Best for |
|---|---|---|---|---|
| USB base station | UR nRF52 USB receiver | Full — raw EMG + FFT + IMU + quat + mag | ~10 ms | The default; most people buy this |
| Arduino + nRF24 (incl. RF Nano) | Arduino + nRF24 module | Full direct-radio stream | Low | Embedded / DIY |
| ESP32 (BLE) | ESP32 | Compact / derived — not full raw EMG | Low | Lightweight; community, see caveats |
| BLE + phone bridge | Android phone + app | Full — EMG + IMU + magnetometer | ~20 ms | No base station; newest path |
Setting the radio mode
Section titled “Setting the radio mode”Cycle with the button; the LED colour shows the mode: 🟢 green — base / PC-station · 🩷 pink — nRF24 · 🔵 blue — BLE. After the startup sequence a short press blinks 3× in the current mode’s colour.
The three modes differ in the actual radio protocol:
- 🟢 base (green) — a star-network protocol: the UR base station coordinates and schedules all the uMyos, 64-byte packets on channel 21. This is what makes the base reliable and high-capacity.
- 🩷 nRF24 (pink) — a plain broadcast, 32-byte packets on channel 83, receivable by any nRF24 hardware (nRF24 module, RF-Nano, ESP32 + module). No coordination, so bandwidth is shared and the raw stream can gap with several devices.
- 🔵 BLE (blue) — standard BLE GATT to a phone (or BLE advertisement to an ESP32).
The paths
Section titled “The paths”USB base station — recommended, and what most people buy. An nRF52 USB receiver. It takes the direct radio and forwards the full stream — raw EMG (~1150 Hz), the 4 FFT bins, IMU, quaternion, and magnetometer — over USB at 921 600 baud. Lowest latency, best timing.
Multiple units: one base receives all your units at once — the channel time-divides between them. No hard limit; ~6 is comfortable (~10 ms average latency, ~20 ms worst-case at 6 units), a sane ceiling is ~8, the library supports 16, and with the base it reliably scales to ~32.
Arduino + nRF24 (including the RF Nano). Any Arduino with an nRF24 module receives the direct radio via the uMyo_RF24 library. The convenient option is the Arduino RF Nano v3 — a combined Arduino + nRF24 board, no separate module. Good for embedded / DIY. (The raw stream is available here too, but can have interruptions with several devices — the broadcast protocol shares bandwidth without a coordinator.)
ESP32 (BLE) — community path, with caveats. An ESP32 receives uMyo over BLE (advertisement scanning) via the uMyo_BLE library. Two honest limits: (1) bandwidth — full raw EMG is hard to get over ESP32/BLE, so you get compact data (muscle activity, roll/pitch/yaw, 4-bin spectrum), not the full raw stream; (2) the library may lag current firmware (the data encoding changed and it wasn’t fully updated). A real path for lightweight use, not for full-resolution data.
BLE + phone bridge — new (2026). With fw-ble / fw-ble-ota firmware, uMyo streams the full data (EMG + IMU + magnetometer) over BLE to an Android phone running the uMyo app, which forwards to your PC over WiFi. No base station. Needs a phone/central that negotiates a decent MTU (≥53 bytes; cheap CSR8510- / HM-10-class dongles can’t). ~20 ms jitter; no theoretical device cap, the practical one needs testing.
Which should I use?
Section titled “Which should I use?”- Best signal, lowest latency, least fuss → USB base (most people).
- Embedded / Arduino project → Arduino + nRF24 / RF Nano.
- Already have an ESP32, need only light/derived data → ESP32 BLE (mind the caveats).
- No base station, have an Android phone → BLE bridge.