My shouting has gone way down since Claude Sonnet 4.6. Here is an example of something that far exceeded my expectations. First, a bit of background.
My Sigyn robot has 3 custom Teensy 4.1-based cards to do real-time management of all of the sensors and controllers on the robot. One of those boards, “board2,” has, as one of its responsibilities, power monitoring. There are 5 power supplies monitored:
- 36-volt, 30 Ah LIPO battery that powers everything.
- 24-volt brick converter to power the brushed motors and some remote devices, like the stepper motors in the gripper and a remote-mounted Pi 5 that does Yolo object recognition.
- 12-volt brick converter. Mostly powers the AMD 7900X PC, but also a few smaller devices, like the Wi-Fi adapter because the on-board Wi-Fi doesn’t manage switching between Wi-Fi extenders as the robot roams the house.
- 5-volt brick converter. Powers the Teensy boards and a lot of small things, like all of the couple of dozen sensors, including the voltage/current power sensors themselves.
- 3.3-volt brick converter. It used to be one of the power supplies for the PC. I’m not sure it’s used anymore since I switched how the PC gets powered.
A few times this last month, as I was developing the behavior tree so that the robot would start in my computer room, travel down the Great Hallway into the kitchen, find a can of soda on the table, and fetch it back to me, I would run the robot untethered from the charger and after a few hours, the robot would just shut off as the battery discharged. When I’m in the zone, I don’t notice the passage of time, the changing of the season, or the need to ingest food, so the robot shutting off always surprised me.
Now that I’m in the process of a massive rewrite of the large code base for Sigyn, part of what I wanted to do was to find out how my battery was performing. Every time I power up the robot, my Teensy boards each create a new log file and write a large amount of data to an SD card so that when things go wrong, I can always pull out the card and see what went wrong. I pulled out the card from board2 and added all of the new log files to my archive on the desktop computer. Oh, and when I create firmware files, I always include the compilation date and time as part of the logged output so I can track the firmware version back to the GitHub check-in for that code. Then I gave this prompt to Claude Sonnet 4.6.
Look at ~/board2Logs/20260224/LOG00162.TXT.
You will find quite a number of log messages for the 36v LIPO battery like this:
[10.248] BATT2:{"idx":0,"V":38.16,"A":0.00,"charge":1,"state":"NORMAL","location":"36VLIPO"}
If you look at them in sequence, you should see that the battery charges up to something around 42 volts and then discharges until the system shuts off due to low battery. I want an analysis of how long it took to go from full charge to full discharge, and an average current draw during that period. Maybe draw a plot of time starting at some milliseconds where the battery was full to when it discharged, with two curves: voltage and current.
I'm trying to determine:
- What is the full charge voltage?
- What is the cutoff voltage?
- What is the average current discharge for this sample log?
I added some refinement to the prompt later and asked a couple of questions. Claude didn’t just do what I asked. It examined the whole repository of log files, creating a greater analysis than I asked for. In the enhanced prompt, I mentioned that I was trying to create better behavior tree nodes for robot safety and I needed to be able to predict when a battery would die so that I could send the robot back to the charger before the battery went dead.
Enough of the background. Here is the markdown file I created when it was done. I asked for the markdown file so I could put it into my set of analysis files I build when I need to characterize various aspects of the robot.
I was impressed.