Embedded Systems · Robotics · Silicon & Hardware Hacks
I build unconventional embedded systems, micro-robotics, and hardware-software bridges. My work focuses on pushing sub-dollar microcontrollers beyond their documented boundaries—whether that means hand-rolling 1-wire SWIO debuggers, packaging custom Arduino cores for uncooperative RISC-V silicon, salvaging dead consumer electronics into wireless modems, or building micro-quadcopter flight controllers with discrete MOSFET stages.
[ Discarded Consumer Tech ] [ Sub-$0.50 Silicon ]
│ │
▼ ▼
TWS Earbuds ──► 3-FSK Modem Bouffalo BL602 (192MHz RISC-V)
LiPo Cells ──► Micro Drone FC WCH CH32V003 (1-Wire SWIO)
│ │
└───────────┬────────────────────┘
│
▼
[ Deterministic Firmware · Real Bench Probes ]
- ESP32-Digital-Lab — An all-in-one browser-based electronics instrument running on a single original ESP32 (
ESP32-D0WD-V3). Integrates a 1 Hz–5 MHz reciprocal frequency counter (PCNT0), 5 MHz signal generator (LEDC), 2 MS/s 4-channel parallel logic analyzer (I2S DMA), and an oversampled DMM with dual-Schottky input protection into a zero-install, <20KB gzipped WebSockets dashboard. - BL602-Arduino-Core — An end-to-end Arduino-compatible development workflow for Bouffalo Lab BL602 (192 MHz RISC-V RV32IMAFCP with hardware FPU). Preserves native SDK FreeRTOS scheduling, fixes the 2 Mbaud console trap, patches flash loader JEDEC mismatches, and distributes via an automated Arduino Boards Manager package.
- TWS-A2DP-Mode — Expanding the 3-FSK acoustic/electrical modem from the verified 8-bit ATmega328P target to the sub-$0.15 WCH CH32V003 RISC-V microcontroller for ultra-low-cost wireless telemetry.
| Project | Silicon & Architecture | Technical Details & Unconventional Solution |
|---|---|---|
| BL602-Arduino-Core | Bouffalo Lab BL602 (32-bit RISC-V @ 192MHz) |
Built a native-backed Arduino workflow for BL602 silicon. Preserved SDK startup (start.S → bfl_main()) by spawning the Arduino runtime as an isolated FreeRTOS task, resolved the 2 Mbaud UART0 baud trap down to 115200, packaged Xuantie GCC toolchains, and fixed the 003D flash loader JEDEC lookup bug for GigaDevice SPI NOR flash. |
| esp32s3-ch32-programmer | ESP32-S3 (Xtensa Dual-Core) → WCH CH32V003 |
Open-source 1-wire SWIO hardware programmer/debugger for WCH's $0.15 RISC-V MCU. Implemented cycle-accurate SWIO bit-banging and DMI program buffer injection, active driven-high line preloading to eliminate bus float timeouts, 3-stage flash unlock, 64-byte page programming, and byte-for-byte readback verification. Verified on physical hardware driving a DC motor via CP6208. |
| Project | Target Hardware | Technical Details & Unconventional Solution |
|---|---|---|
| TWS-A2DP-Mode | Discarded TWS Earbud → ATmega328P / ESP32 |
Repurposes dead Bluetooth earbuds as wireless data receivers for microcontrollers without native radio hardware. Taps the analog speaker output (SPK1) while isolating differential Bridge-Tied Load (BTL) amplifier stages. Transmits structured packets using Ternary Frequency-Shift Keying (3-FSK @ 700/1100/1700 Hz) demodulated via the Goertzel algorithm on an 8-bit Arduino Uno with 0 heap allocations and <600B SRAM. |
| YKM-FC | ESP32-C3 (160MHz RISC-V) + MPU6050 + 816 Motors |
Micro quadcopter flight controller running compiled-from-source Betaflight (ESP-FC) on an ESP32-C3. Replaced commercial ESC ICs with a ₹60 discrete 4-channel MOSFET stage (SI2306A SOT-23 + SS14 Schottky flyback diodes) driving 816 coreless brushed motors at 20 kHz PWM, powered directly by salvaged TWS 1S LiPo cells on a 40mm × 40mm custom frame. |
| Project | Hardware Stack | Technical Details & Unconventional Solution |
|---|---|---|
| ESP32-Digital-Lab | Original ESP32 (ESP32-D0WD-V3) |
Multi-instrument electronics lab running on a single dual-core ESP32: 1 Hz–5 MHz reciprocal frequency counter (PCNT0), 5 MHz signal generator (LEDC), 2 MS/s 4-channel parallel logic analyzer (I2S DMA), and oversampled DMM with BAT54S dual-Schottky clamping. Offloads UART/I2C/SPI decoding to browser Web Workers and Canvas, served from flash via a zero-install <20KB SPA. |
| mini-vibrobot | Bouffalo BL602 (Ai-WB2) + BLE 5.0 + CP6208 |
Stamp-sized (~20mm × 20mm) micro robot that steers using a single reversible 10mm coin ERM vibration motor—no wheels, servos, or gears. Employs stick-slip friction dynamics on a pentagonal nib contact chassis with the motor tilted at 20–30° to translate centrifugal vibration into horizontal propulsion. Differential steering is achieved via software-timed CW/CCW yaw torque modulation. |
| Project | Platform / Languages | Technical Details & Unconventional Solution |
|---|---|---|
| AereReact | Windows 11 (Pure C · Win32 · OpenGL) |
Minimalist reactive live wallpaper engine written from scratch in pure C. Attaches directly to the Windows shell layer (WorkerW/Progman) using native OpenGL device contexts, with sub-millisecond input polling and zero global hooks. Delivers a 155 KB standalone binary consuming <1% CPU at ~24 FPS without Electron or framework bloat. |
| AereNAS | Android (Kotlin) + Windows (C# .NET 8) |
Turns Android mobile storage into a local wireless WebDAV NAS drive mapped to Windows File Explorer (Z:). Includes background service persistence across screen-off states and automated folder delta synchronization over Wi-Fi without third-party cloud intermediaries. |
Microcontrollers │ ESP32 · ESP32-C3 · ESP32-S3 · BL602 (RV32IMAFCP) · CH32V003 (QingKe RISC-V) · ATmega328P
Peripherals & Buses │ 1-Wire SWIO · I2S Parallel DMA · PCNT Pulse Counter · LEDC High-Speed PWM · ADC Oversampling
Physical Protocols │ 3-FSK Modulation · UART · SPI · I2C · BLE 5.0 · 2.4GHz Wi-Fi (SoftAP / WebSockets)
Firmware & Tooling │ C · C++ · Python · Assembly · FreeRTOS · ESP-IDF · Arduino Core Internals · PlatformIO
Electronics & Bench │ Discrete MOSFET Stages (SI2306A) · H-Bridges (CP6208) · Schottky Clamping (SS14/BAT54S) · BTL Tapping
- Datasheets are starting points, not limits: Silicon vendors document guaranteed baselines. Pushing hardware into non-standard clock trees, 1-wire bit-banging, or parallel DMA sampling reveals what the silicon can actually do.
- Hardware reuse over e-waste: Discarded TWS earbuds, miniature LiPo pouches, and phone vibration motors contain precision transducers and power electronics that outperform bulk hobbyist modules when driven correctly.
- Isolate the real-time domain: Keep high-speed physical signaling and bit-banging in deterministic firmware; offload protocol decoders, user interfaces, and telemetry visualization to client-side runtimes.
- Measure on the bench: Theoretical calculations are useless until validated with logic analyzer captures, current shunt measurements, and physical hardware execution.
Hardware verified on the bench · Clean firmware · No black boxes

