Hi all! It’s Timo again from the dark dungeon where we’re sweating to bring you the first firmware update.
Since the last update we’ve advanced quite a bit: the nasty bug in release mode in the USB firmware has been fixed (it was a stack overflow, a bug category classic enough to have a Q&A -site named after it) and the firmware update is bricking-proof now… except for one small point in the cycle, which we’ve been trying to plug for more than a week now.
The point where bricking is currently possible is if the USB-cable is yanked (or the connection is lost due to a faulty cable, for example) when updating the USB-processor firmware. This window of time is a couple of seconds, pretty much right at the beginning of the update cycle. We’ve devised a way to prevent this from happening, that is theoretically fool proof, but for reasons we don’t completely understand, it doesn’t quite work. It appears at the moment that there may be a subtle fault in the microcontroller chip we’re using for USB interfacing (which only affects the unbrickability issue).
For now, we’ll continue looking for a workaround to make it completely unbrickable, but if we can’t get that soon, we’ll push on to more exciting features. For reference, we’ve never had this bricking happen by accident, only when we’ve purposefully tried to do it, and the window of time for that to happen is very short.
Update: see the Deep Dive -article for the gory technical details and the workaround we eventually figured out!