Most gesture-sensing wearables rely on bulky IMUs, power-hungry optical sensors, or awkward electrode bands wrapped around your wrist.
<div class="aice-quick-answer" style="background:#f0f7ff;border-left:4px solid #2563eb;padding:14px
A team of researchers at Northwestern University just took a completely different route with EITWatch—an open-source smartwatch that reads hand gestures through Electrical Impedance Tomography (EIT) using an array of just eight tiny planar electrodes resting flat against the underside of the watch case.
Here is how they built it, the hardware compromises they navigated, and what the real-world ML benchmarks look like.
—
The Hardware Architecture: Planar EIT in a 40mm Chassis
Traditional wrist-worn EIT setups require an electrode band wrapping entirely around the arm to capture cross-sectional impedance changes. EITWatch eliminates the wristband entirely.
Instead, it places eight 2mm-diameter gold-plated stainless steel disc electrodes in a 31mm-diameter ring on the back of a standard 40mm watch case. The entire system is built on a 6-layer custom PCB measuring 60×40 mm, engineered to fit directly into the bottom of the casing.
At the core sits a Seeed Studio XIAO ESP32-S3 module powered by Espressif's ESP32-S3R8 SoC:
- Compute: Dual-core Tensilica LX7 running up to 240 MHz with vector instructions for edge AI acceleration
- Memory: 512 KB SRAM, 8 MB PSRAM, 8 MB SPI flash
- Connectivity & Power: Wi-Fi 4, BLE 5.0, USB-C for programming and power
To drive the bio-impedance sensing, a 20mm PCB extension integrates a dedicated Analog Front End (AFE):
- Signal Generation: An Analog Devices AD5930 direct digital synthesizer outputs a 50 kHz sinusoidal excitation signal.
- Current Drive: An ADA4841 op-amp configured as a voltage-to-current converter delivers a ~1 mA peak-to-peak drive current into the skin.
- Signal Conditioning & Acquisition: An AD8220 instrumentation amplifier pairs with an AD7450 12-bit SPI ADC for high-speed sampling.
- Gain & Routing: An AD5270 digital potentiometer dynamically tunes drive current and sensing gain, while four ADG738 8-channel analog matrix switches route current injection and voltage measurement across the electrode pairs.
—
Solving Planar Sensing: Multi-Depth Scanning
Because all eight electrodes lie on a flat plane rather than encircling the limb, conventional adjacent-pair EIT excitation protocols fail to capture deep tissue variations.
To bypass this, the team designed a multi-depth scanning protocol. The system fixes one electrode as a constant positive terminal and sequentially cycles the remaining seven as ground. Each switch alters the angle and penetration depth of the electrical current field passing through the wrist’s tendons and musculature.
The system captures 35 differential impedance measurements per frame at a 48 Hz refresh rate, providing sufficient temporal resolution to catch fast finger twitches and wrist movements.
—
Real-World ML Performance (And the Reality of Bio-Impedance Drift)
The firmware runs on ESP-IDF v5.2+. For initial testing, raw impedance streams were sent over Wi-Fi to a PC to train and benchmark models across:
- 6 Macro Gestures: Six, Gun, Point, Thumbs Up, Stretch, Fist
- 5 Micro Gestures: Swipe Left, Swipe Right, Pinch, Splay, Wrist Flip
- 1 Baseline: Relaxed state
Here is where the data gets honest:
1. Fresh Session (Same User): The classifier hit 92.5% accuracy on macro gestures and 91.5% on micro gestures.
2. 48 Hours Later (Same User, Re-worn): Accuracy dropped to 73.2% (macro) and 70.4% (micro) due to electrode re-positioning, contact impedance shifts, and skin hydration variance.
3. Cross-User (Zero-Shot): Testing on a new user saw accuracy drop further to 63.1% (macro) and 55.3% (micro).
Anyone building bio-sensing hardware knows this pain: baseline shift and anatomical diversity remain the final boss of wearable gesture interfaces.
—
On-Device Edge ML & Power Profiling
EITWatch doesn't just stream raw data—it can run fully standalone.
The team split tasks across the ESP32-S3's two cores:
- Core 0: Manages continuous data acquisition and AFE switching via SPI at 48 Hz.
- Core 1: Handles signal pre-processing and executes an ExtraTrees decision tree ensemble for real-time gesture inference.
Under full standalone operation (sensing + edge inference), the entire device pulls ~35 mA @ 4.3V. Powered by a standard 300 mAh Li-Po cell, it delivers roughly 8.6 hours of continuous runtime.
—
Fully Open Source
While open-source watches like the MutantW V1 or Sensor Watch Pro tackled hackable timekeeping, none integrated active muscle-impedance gesture sensing into a wearable form factor.
Northwestern researcher Xuanyou Liu and the team have made the entire project open source:
- Hardware: Altium design files, Gerbers, and BOM are licensed under CERN-OHL-P-2.0.
- Firmware: Complete pipeline licensed under Apache-2.0 on GitHub.
For embedded AI engineers and wearable hardware hackers, this is one of the cleanest open-source references for bio-impedance hardware design available today.

