Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   wanting an I2C bootloader
Monday, January 19 2026
Today was Gretchen's actual birthday, and she spent much of it working a shift at the bookstore, which was fine, since she likes that job. Love your job and you never work a day of your life!
Meanwhile I was bogged down in a ChatGPT-guided software pursuit. The other day I'd jokingly asked ChatGPT if there were any bootloaders for Arduino that could reflash the firmware over I2C. I asked because if this turned out to be possible, it would mean I would be able to upgrade the firmware on my I2C slaves from anywhere on the internet, which would be amazing. The I2C slaves are particularly difficult to upgrade, since this can usually only be done by physically removing them from their circuits or via USB. And when they're hooked up to USB, that changes their voltage from 3.3 to 5 while the USB is attached, meaning all 3.3 volt equipment (except for ESP8266s, which are 5-volt-safe) must be detached. If the slaves could instead be flashed over I2C, I could upgrade the slaves at the cabin from a Chromebook in our living room or from a boat in the Caribbean. ChatGPT responded to my question by saying that indeed there were I2C bootloaders, and it recommended one called Twiboot. I couldn't find the original, but I found a fork of it that I forked as well. My intention was to make some changes to it so that the entire reflashing process could be done via I2C, that is, not requiring a physical wire to reset. This was all possible, ChatGPT assured me, but I had no idea how much hell I was about to go through.
I had ChatGPT do all the modifications necessary to my slave software, some of my master software, and also Twiboot itself. Little details had to be put in place to signal various states, and then my master had to know how to read a flash image off a web server, break it into chunks, and blast it at the slave while its I2C bootloader was running. ChatGPT had great confidence, but got several details wrong along the way that quickly turned the whole project into a mess, and it gradually became clear that I was really going to have to understand this code in detail if I wanted it to work; ChatGPT just wasn't smart enough for a complex project like this. It couldn't even manage to get basic facts about Atmega328s straight, such as the size of their flash pages, a number that has to be known when you are writing a bootloader. (It kept going back and forth between 64 bytes and 129 bytes, being confused at times because the documentation was counting them as words, not bytes.) It also did that thing where it kept suggesting possible problems that I'd clearly just demonstrated not to be possible. I spent much of the day this way, and it was psychologically exhausting.

I tried taking Charlotte for walks in the late morning and early evening, but both times she balked because of some combination of it being so cold and me not being Gretchen. Gretchen later came home from work and she and I managed to take Charlotte on a walk up the Farm Road and back. It was nearly 5:30pm and the twilight was growing murky at the time, but, due to the reflected skylight bouncing off the snow, we didn't need a flashlight. Then our friend Lisa P. came by to pick up Gretchen to take her out to dinner at Ollie's in High Falls.


For linking purposes this article's URL is:
http://asecular.com/blog.php?260119

feedback
previous | next