<?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 a 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>A practical record of connecting to the CAN bus, capturing traffic, distinguishing noise from useful signals and working out what the car is saying.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Network namespaces, port conflicts and the first wrong assumption</title><link>https://mups.co.zw/blog/zenhost-network-namespaces/</link><guid isPermaLink="true">https://mups.co.zw/blog/zenhost-network-namespaces/</guid><description>A ZenHost engineering post about assuming applications could simply own the ports they requested, and what happened once multiple tenants entered the picture.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Reading a 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>Using an ESP32 and MAX485 module to bring battery state, usage and alarms into Home Assistant.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item></channel></rss>