|
|
|
mysteriously smashed window Thursday, January 8 2026
This morning it occurred to me that, though I've had a system in my ESP8266 Remote Control system to slave copy configuration values from defaults in the master's sketch to EEPROM on the slave (where master configuration values are also kept), I don't actually have any system for changing the values stored in the EEPROM. I do have a way to change the master's configuration dynamically and then store it in the EEPROM, and there was a way to change the copies of these values used to determine behavior at runtime, there was no way to change what was in the EEPROM. This meant the slave would always start up in the same state. So today I quickly built a system to change the slave's EEPROM configuration values. Since two of those values are configuration strings that affect how the slave parses serial data, this meant I was going to have to have a way to change pipe-delimited strings using the command system. I didn't think about it at the time, but that command system also separates values with pipes ("|"), so when I was trying to save configuration strings using the new functionality, they kept being truncated at the first pipe. Initially I assumed this was just a microcontroller gremlin related to something like heap corruption. But when I asked ChatGPT, it didn't think so. And it gave me the debugging hints I needed realize that the configuration strings I was passing to the function that runs commands was seeing the pipes in the configuration string and interpreting them in the context of separated the parts of a command. So I ended up changing the delimiter I use to separate the semantic pieces of a parser to a semicolon. This means that my parser cannot look for either pipes or semicolons when trying to find a feature in a serial stream, though I doubt this will be much of a problem.
Later I tried hooking up my ItsyBitsy M0 board with its new slave firmware to see if it would act as a slave. But it soon turned out the ItsyBitsy was not running any firmware. I could flash firmware to it, but it would never run, not even to print "hello" in the serial console. This sent me into a back-and-forth with ChatGPT that quickly spiraled into a large language model doom loop. Ultimately I fixed it with my own ingenuity by installing a new bootloader downloaded from Adafruit.com.
But even with the slave firmware running, the ItsyBitsy refused to act as a slave, never responding to either the onRequest or onReceive interrupt handlers. I tried all sorts of things, including a minimal-viable slave script that ChatGPT was sure would work. But nothing worked.
So I gave up on the ItsyBitsy and tried making a Rasberry Pi Pico into a slave instead. I was able to get a modified version of my slave firmware to compile on it, but again, it refused to be a slave. I don't know what is special about an Atmega328, but it is the only device I'ver ever managed to get to work as an I2C slave.
At some point today I went to the mailbox to get the mail, and on the way back, I happened to approach our cars from the back as I walked in our driveway from Dug Hill Road. What I saw was alarming and surprising. The back window of our Chevy Bolt had been smashed in, and all that remained of it was a meshwork of tiny cubes around a hole. When had that happened? How had it happened. I went to get Gretchen to ask if she remembered backing into anything, and she said absolutely not. We figured the window must've been smashed yesterday while the car was parked on Tinker Street outside the Golden Notebook, where Gretchen (and Neville) were working. Gretchen hadn't remembered it being unusually cold in the car on the drive home. But it must've been smashed by that point because a large piece of the window along the bottom had broken off and fallen away and it was not in our driveway. Gretchen called the people working at the bookstore today to ask if there was any glass detritus where she'd parked. The person on the other end of the phone went out to look and found some broken bits of a car that looked to be made of plastic, which sounded wrong to me.
In any case, it's just one of those annoyances one deals with in life. I called ArrowGlass (the company that replaced that same window the last time it was broken — after I backed into a mailbox) and then proceeded to clean up all the glass I could from the back of the car. I removed all the grocery bags and tools so that when the ArrowGlass guy comes tomorrow, the additional glass that comes loose can easily be vacuumed up. I then put a sheet of plastic over the gaping hole as a modest effort to keep the winter weather out of the car. Fortunately, we were having a relatively balmy January day and tomorrow would be more of the same.
Today Gretchen spent a chunk of the afternoon making that recipe of marinaded tofu with baked tomatoes and chickpeas that she'd found in the New York Times and made not that many days ago. Our friends Ray & Nancy would be coming over for a dinner date that had originally been planned for some weeks ago back in December (but which we'd had to cancel after both of us got sick). I hadn't loved that meal, but Gretchen must've thought it was something special.
While Gretchen was off at pilates, I followed Gretchen's direction about when to put what in the oven.
Ray and Nancy arrived a little before 7:00pm and we sat around in front of the fire drinking wine, eating crackers with dip, and talking about various things like Ray's nephews and their bitchy Swedish mother. Ray also told us in detail how a new manager at the restaurant where he works is sewing chaos with his weak social skills.
Ray and Nancy stayed with us for nearly five hours, that is, until nearly midnight. By the end there, the others were talking about how much they'd all loved Marty Supreme, that Jewish Christmas movie I hadn't really understood (or, more accurately, tried to understand). So I was feeling a bit alienated and bored.
After Ray and Nancy left, I retreated into the laboratory to drink by myself until I passed out from diphenhydramine.
For linking purposes this article's URL is: http://asecular.com/blog.php?260108 feedback previous | next |