About
Hi, I'm Jie. I build small robots and the electronics that go into them, and this site is where I write down what actually happened along the way.
Most of the material comes from one ongoing project: a four-wheel mecanum combat robot built around the Waveshare ESP32-P4-WIFI6 board, running a heavily modifiedxiaozhi-esp32 firmware, driven over IPv6 UDP from an Android app. Along the way it has touched most of the things an embedded hobbyist runs into: ESP-IDF build quirks, motor drivers, hall encoders, IMUs on a shared I²C bus, OTA updates, Wi-Fi power saving, LWIP limits, battery selection, PCB layout in KiCad, and parametric 3D printing with CadQuery.
What you'll find here
- Bug post-mortems. The symptom as I saw it, the wrong turns, the actual root cause, and the one-line fix. These are the articles I wish had existed when I was searching.
- Design decisions. Why a battery, a driver chip, or a protocol was chosen over the alternatives, with the numbers that settled it.
- Working notes. Pinouts, command snippets, and measurements I keep coming back to.
How I work
Everything here was tested on real hardware unless the article says otherwise. When a number is quoted (latency, RPM, current), it was measured, not estimated. When I got something wrong the first time, the article says so, because the wrong turn is usually the useful part.
Corrections and questions are welcome through the contact page.