|
|
|
garbled parse data debugged Wednesday, May 13 2026
Over the course of the day, my obsession with getting the serial parser working on the ESP8266 made me try dozens of changes to the ESP8266 firmware I was running on the SolArk Copilot at the Adirondack cabin. This caused me to reflash that firmware dozens of times, something that used to seem risky but now seemed routine. None of these flashes failed, and I was able to maintain contact with the remote device through it all. I also tried numerous settings, one of which did actually seem to lock up the ESP8266 and make it unresponsive. But within fifteen minutes or so, the attached Atmega328 I2C slave noticed it wasn't being petted and triggered a hardware reboot (something I confirmed with my reset info command), causing it to become responsive again. It felt very much like communicating with a distant space probe, right down to the polling-based latency (similar in a way to a delay caused by the speed of light). And, as with real space probes, I had systems on top of systems to keep it all as reliable as possible.
At 2:00pm, I walked across the Farm Road and through the forest to our neighbor A's house to finally get serious about a job she'd hire me to do to fix the hydronic radiator in her upstairs bathroom. When I arrived, she was unloading her vehicle while talking on her phone, the kind of multitasking that is beyond me but common among most of the women I know. She was, though, momentarily surprised when she looked over and saw me standing there with my bucket of tools and such. We decided to immediately check out the basement (she's Canadian, so she used the term "cellar"). It's a dirt-floor-cum-spiders sort of space, though it has enough headroom for me to walk around without having to duck much. I quickly found the valve to close to keep water from the household plumbing from being added into the hydronic system. But the only drains I found for hyrdronic water were general ones, and I needed to keep one zone active: the one using boiler water to heat household hot water, as (unlike in our house) that was the only way to heat such water. This also means A has to keep her boiler running all through the summer, the very absurdity that caused me to build our solar hot water system over twenty years ago. We talked about that and about a very bulky system for removing methane gas from well water. "There must be fossil fuels down there," I said. "Yeah, drill baby drill!" she chuckled. For some reason the lights weren't working in the basement, but I had a flashlight. After figuring out what valves to close, I drained a couple gallons of water and then went to the upstairs bathroom to remove the leaking radiator. That took a little trial-and-error, as it was unclear what exactly was attached to what and even where exactly the joints between turnable objects ran. But eventually I'd removed the radiator (my draining of water from below had caused it to be empty) and I was done for the time being.
Back at the house, the dogs were both gone, which was a bit of a puzzle. Where had they gone? Why? But then maybe twenty minutes later I saw Neville and Charlotte returning via the Woodshed Path. Evidently when I'd snuck off to A's place, they'd assumed I'd gone for a walk on the Woodshed Path and headed out that way. But I'd always assumed they used their noses for this, and if they did that, they'd quickly sense I hadn't gone that way. An extremely light rain was falling, so perhaps that was screwing with their information.
I immediately took Charlotte for a more proper walk down the Gullies Trail, and this time Neville didn't come.
Eventually I made my typical Wednesday night spaghetti dinner, this time with tofu as the protein and a side of asparagus cooked in sauerkraut juice.
This evening after a nice hot bath, I returned to debugging my ESP8266 serial parser, as there was no way I could focus on any of the many other things I needed to be doing until I got that behind me. After much detailed logging and examination of those logs, I found why it was that the parsed data was being garbled: it turned out that it was being overwritten because another global count variable for parser objects wasn't being incremented after migrating the code from the I2C slave. Once I had that fixed, the parser behaved reliably without the need for any stupid hacks like delays. (The fact that delay had worked at all suggests it had caused the parser to skip collecting data that would've overwritten known good data. But I wanted that data too, and now I was collecting it correctly and placing in the correct catchment.)
Now that it is so easy to tweak code at the Adirondack cabin from Hurley in the Catskills, I actually feel less of an urgency to go there every weekend. Now I can have something of a "cabin experience" while sitting at my computer in Hurley instead of in the cold of the cabin's basement.
I ended up staying up very late and even began the work of coming to understand how to operate my copy of Kdenlive, the video editing software. To do this, I asked ChatGPT a series of very specific questions. In the past I would've had to read documentation or watch videos before beginning any work, but here I could just describe parts of the UI to obtain necessary terminology and then ask how to achieve any step I hoped to perform that I couldn't immediately figure out how to do.
For linking purposes this article's URL is: http://asecular.com/blog.php?260513 feedback previous | next |