<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ESP32 Field Notes</title><description>Hands-on ESP32 and embedded engineering notes: real bugs, real fixes, and the reasoning behind hardware and firmware decisions.</description><link>https://note.daojianmeng.top/</link><item><title>Choosing a Battery for a Small ESP32 Robot: Why Boost Converters, 18650s and Series 1S Packs All Lost</title><link>https://note.daojianmeng.top/blog/choosing-2s-lipo-pack-small-esp32-robot/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/choosing-2s-lipo-pack-small-esp32-robot/</guid><description>Four N20 motors can stall at over 3 A combined, and a consumer LiPo cell with a 2 A protection board cannot deliver it. The budget, the four rejected options, and the 2S high-discharge pack that won.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DRV8833 vs MX1508 for N20 Motors on a 2S Pack: Why the Cheap One Stays on the Shelf</title><link>https://note.daojianmeng.top/blog/drv8833-vs-mx1508-n20-motors/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/drv8833-vs-mx1508-n20-motors/</guid><description>Two common dual H-bridge drivers compared for a small 7.4 V robot. The DRV8833 has real protection and rarely dies; the MX1508 sits too close to its voltage ceiling to trust with regenerative braking.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ESP-IDF on Windows: Five Build Failures That Are Not Your Code</title><link>https://note.daojianmeng.top/blog/esp-idf-windows-build-gotchas/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp-idf-windows-build-gotchas/</guid><description>Non-ASCII paths, file(GLOB) not seeing new sources, the wrong Python, Git Bash vs PowerShell, and a build directory that cannot be moved. Each one wasted an afternoon; here is the two-line diagnosis for each.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>&quot;Failed to create socket&quot; on ESP32: You Have Run Out of LWIP Sockets</title><link>https://note.daojianmeng.top/blog/esp32-failed-to-create-socket-lwip-max-sockets/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp32-failed-to-create-socket-lwip-max-sockets/</guid><description>A voice assistant that went silent after a firmware update turned out to be an exhausted LWIP socket pool. How to recognise it, why the symptom misleads, and the one Kconfig value to change.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why Your ESP32 OTA Update Silently Reboots: Run It in Its Own Task</title><link>https://note.daojianmeng.top/blog/esp32-ota-silent-reset-task-watchdog/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp32-ota-silent-reset-task-watchdog/</guid><description>An OTA download that resets the board with no panic and no log line is almost always the task watchdog. The cure is a dedicated FreeRTOS task, not a bigger timeout.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>ESP32-P4 + C6 Wi-Fi: When esp_wifi_set_ps() Does Nothing and Your First Packet Takes 1 Second</title><link>https://note.daojianmeng.top/blog/esp32-p4-c6-wifi-power-save-udp-latency/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp32-p4-c6-wifi-power-save-udp-latency/</guid><description>On the ESP32-P4-WIFI6 the radio lives on a separate C6 chip over SDIO, and the P4 cannot switch off its power saving. Here is how to get 10 ms UDP latency anyway.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>ESP32-P4 GPIOs Stuck at 1.2 V: The Internal LDO Power Domain Trap</title><link>https://note.daojianmeng.top/blog/esp32-p4-gpio-stuck-at-1v2-ldo-power-domain/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp32-p4-gpio-stuck-at-1v2-ldo-power-domain/</guid><description>Four unrelated-looking motor and encoder bugs on an ESP32-P4 board turned out to be one missing line: GPIO45-54 sit on a power domain fed by the chip internal LDO, and nobody had turned it on.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Why I Replaced MQTT with Direct IPv6 UDP for Robot Joystick Control</title><link>https://note.daojianmeng.top/blog/esp32-robot-control-mqtt-to-ipv6-udp/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/esp32-robot-control-mqtt-to-ipv6-udp/</guid><description>Cloud MQTT relay jitter kept tripping a 300 ms link-loss watchdog and made the motors stutter. A direct UDP channel over IPv6, discovered via the MQTT heartbeat, fixed it. Design notes and packet format.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Mecanum Wheel Control on ESP32: Keep All Motion Logic in the Firmware</title><link>https://note.daojianmeng.top/blog/mecanum-wheel-mixing-esp32-firmware/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/mecanum-wheel-mixing-esp32-firmware/</guid><description>The app sends intent (strafe, drive, rotate); the ESP32 does the wheel mixing, gear limits, dead-band compensation and fail-safe. Why that split is right, and the numbers behind it.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Your &quot;MPU6050&quot; Module Is Probably an MPU6500: WHO_AM_I, AD0, and a Self-Healing I²C Driver</title><link>https://note.daojianmeng.top/blog/mpu6050-is-actually-mpu6500-who-am-i-ad0/</link><guid isPermaLink="true">https://note.daojianmeng.top/blog/mpu6050-is-actually-mpu6500-who-am-i-ad0/</guid><description>A cheap IMU board labelled MPU6050 returned WHO_AM_I = 0x70, and a floating AD0 pin made it disappear from the bus entirely. How to write a driver that copes with both, plus the streaming design that gets 44 Hz attitude over UDP.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>