<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Melvin Mupondori</title><description>Notes on software, infrastructure, hardware experiments, mistakes and the process of figuring out how systems work.</description><link>https://mups.co.zw/</link><language>en-gb</language><item><title>Listening to an Abandoned BMW E87 with an ESP32 and MCP2551</title><link>https://mups.co.zw/blog/esp32-can-bus-bmw/</link><guid isPermaLink="true">https://mups.co.zw/blog/esp32-can-bus-bmw/</guid><description>Listening at the OBD-II port, finding K-CAN behind the radio, picking the wrong bit rate, and finally getting 400 frames a second out of a car that&apos;s been sitting for who knows how long.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Reading a MUST PV1900 solar inverter over RS485 with an ESP32</title><link>https://mups.co.zw/blog/esp32-rs485-solar-inverter/</link><guid isPermaLink="true">https://mups.co.zw/blog/esp32-rs485-solar-inverter/</guid><description>Wiring an ESP32 into a MUST PV1900 over RS485, and what a warning buried in someone else&apos;s source code taught me about respecting undocumented hardware.</description><pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate></item><item><title>The port collision that changed how ZenHost routes apps</title><link>https://mups.co.zw/blog/zenhost-network-namespaces/</link><guid isPermaLink="true">https://mups.co.zw/blog/zenhost-network-namespaces/</guid><description>How a port collision exposed the wrong hosting abstraction and led ZenHost to isolate apps with Linux network namespaces and Caddy.</description><pubDate>Wed, 18 Jun 2025 00:00:00 GMT</pubDate></item></channel></rss>