What does the ‘boot’ button do when the BCF is being used with Zephyr?
It’s available in the dts as button0/sw0, so can be used as a user button, and it’s used by the bootloader code to trigger a firmware update on boot, however it’s also doing something else …
When the bcf is running, pressing the button toggles the ‘MB2’ and ‘MB1’ LEDs ('though just what these LEDs mean is a complete mystery). The device also appears to freeze when the button is held down. But more importantly, USB communication via the zephyr console (uart0) is blocked on power up until the boot button is pressed.
This is a real problem in my application - these devices communicate with another piece of equipment over USB and as they are out the field and inaccessible, going round pressing the boot button after a power outage is just not possible. Interestingly, this only happens after power up - resetting the BCF does not cause a problem.
The boot button is connected to the CC1352P7 and the MSP430F5503. I’m guessing the mode change that allows the uart to work probably happens in the MSP430F5503 microcode. I’m wondering about reconfiguring the CC1352P7 pin in my setup code to be an output, pulling the line low to effect this mode switch, then reconfiguring the pin back to being an input (a more blunt approach would be to just wire a fet connected to a spare gpio across the switch).
Can anybody shed any light on just what this button is doing? (and what the ‘MB1’ ‘MB2’ and ‘USB’ LEDs indicate), and whether my idea would work? or perhaps there’s a better way.