solokeys/solo2-cli

Reflashing from bootloader mode without hardware

skorokithakis opened this issue · 6 comments

I have a Solo 2 Hacker edition, as I was thinking of playing around with it, but I'm not in love with the possibility of functionally permanently bricking it (because the special cable is currently twice the price of the Solo).

Will/can there be a special way for the Solo to boot to the bootloader so I can reflash the firmware if it panics? Can I connect some pin to ground during boot, for example? Or is this impossible from the hardware and I'd better not play around too much?

Yes there's PIN0_5 (if I remember the name correctly), but it's not exposed. You can attach a Tag-Connect at the bottom, but that's also not fun. To play around with the platform or develop, I strongly recommend the NXP dev kit (https://www.nxp.com/design/development-boards/lpcxpresso-boards/lpcxpresso55s69-development-board:LPC55S69-EVK), the "hacker" keys aren't suitable as dev environments. The trouble is if your firmware passes the bootloader (e.g. since the bootloader doesn't have any requirements set) but then panics (early on), you can't rely on some "three-finger-grip" or whatever method you implement in software to get back into the bootloader.

The "hacker" keys IMHO would be better named as "unlocked", with the idea that you take a known working firmware, but want to replace the PKI (from ours: https://s2pki.net) for an enterprise or otherwise specialized use case.

Yeah, that's unfortunate :/ If PIN0_5 were exposed as one of the bottom pins, I could ground it to get into bootloader mode, and then it'd be unbrickable (unless I replaced the bootloader), too bad that option doesn't exist... Good point about calling them "unlocked", I was pretty excited to be able to play around with the firmware but I can't justify the board cost for a few hours of messing around.

Thank you for your help!

J-Link EDU Mini + Tag-Connect definitely works (to unbrick by flashing a "good" firmware that lets you hop into ROM bootloader), but it's fiddly as you have to cute the debug cable pins and secure "somehow".

Oh, can I use an ST-Link cable? I can make a quick jig with some pogo pins for the electrical connection, if I don't need to buy a new cable/programmer...

Normally you'd need this cable: https://www.tag-connect.com/product/tc2030-ctx-nl-6-pin-no-legs-cable-with-10-pin-micro-connector-for-cortex-processors (and need to clip down the three longer gray pins).
Also no idea if ST debuggers will work, I do know it took Segger a while to get their driver running, and not sure if https://probe.rs managed yet either.

Hm right, I see. Thank you for your help!