What bootloader should I be using for system firmware 0.6.0?


I am using the bootloader for p1 from https://docs.particle.io/faq/particle-tools/jtag/photon/ , I think the bootloader ver is 0.4.9. Is it the correct one to use for the system firmware 0.6.0? Right now, the P1 go into listening mode at startup each time. Any ideas? I am using ST/LINK swd to program the bins.

The voltage on the SETUP output is 1 Volt. Would this cause the module to keep entering listening mode send its active low? Does this mean the P1 module is no good? Thanks

Did you setup any wifi credentials yet?

Yes, I was able to claim the device and sign on wifi then it enter the listening mode automatically after few sec. Even when I press the reset button it enter listening mode.

@kennethlimcp, the module will work for a few second and change to listening mode automatically.

Unfortunately i don’t have a P1 so let’s call in @bdub

Isn’t the SETUP pin meant to be pulled high externally?

@ScruffR, I hookup the SETUP to a button the same as the “SCHEMATIC - USER I/O” on https://docs.particle.io/datasheets/p1-datasheet/. According to the p1 datasheet, the SETUP does not require a pull up resister. The odd thing is I created three pre-production board, only one have ~1 volt out on the SETUP pin. The other two SETUP see 3.2V on the pin. Would the p1 module see ~1 volt as logic low? Are there ways to test if the P1 is still good? I measure all the voltage going into p1 module as 3.2V.

Looks like we have older bootloaders posted in the Docs, but that shouldn’t matter since the bootloader gets updated via the system firmware if need be. For example, the bootloader in 0.6.1-rc.2 is v11 for Photon/Electron/P1. If you program the P1 with v0.4.9’s bootloader (not sure which version that is off hand, maybe v7), once you run 0.6.1-rc.2 it will update to v11.

SETUP should not be ~1V. You maybe have some leakage current pulling it low. Try adding a stronger external pullup like 1k ohm and see if it changes. Also look with a scope and see if it’s a DC voltage or possibly shorted to a PWM line which may be actively driving it to ~1V on average.

If you are MFG’ing your own P1’s, there should be some expected percentage of fallout due to MFG defects. It might not be worth reworking these boards if you don’t have access to good reworking tools to make the process expedient. If you want to rework the board just to find the root cause and improve the MFG process, I would suggest using a hot air tool to remove the P1 and replace it with a new module after you try the resistor pullup and scope analysis above. Then you can look at the results of replacing the module and try to determine next steps. If the original module is bad, start asking questions about why that could be. Is the SMT reflow profile set too high? Check the datasheet for the suggested profile. Could there be issues with ESD during the MFG’ing process and handling of the PCBAs? And so on and so fourth the questions go. You might not be willing to spend that kind of time with one defect though… maybe wait for 5 of the same type first before digging in.

I forgot to ask, what was the cause of reprogramming the bootloader?

@BDub, I was using the ST-Link CLI to reprogram the user firmware and forgot to put in the address and by default it overwrite the bootloader. But before that the device was acting up and entering the listening mode automatically. Hmm… if the system firmware update the bootloader for you, do we need to reprogram the bootloader in the future even we overwrite it? Is there any link to the update bootloader just in case I overwrite it again?

We order the P1 module from Particle store. After many hour of debugging, I was thinking the MFG might have mishandle the P1 module when they put it on the board. The SETUP pin is not the only pin that is affect. Also,the signals of the LCD is being affected because its creating flicker on the screen. Look like a leakage.

Do I need a external pullup on the SETUP button for production? I base off on the P1 datasheet example and it did not have a pullup on the SETUP button. Is the external pullup for testing purpose only?

lol I wish I have an hot air tool and just take the P1 module off and replace it with a new one. But I will take your advice and wait to see if we get more of this cases in the next patch before spending more time on this one board.

If you erase it, yes you will have to replace it before the system firmware will boot. You can replace it with the files from the link in the first post, or you can use the combine image that contains the bootloader, keys, and system firmware. After re-programming these you will need to do a factory reset (hold SETUP, tap RESET, wait > 10s and release).

You can rely on the internal pull-up typically. I only suggested the 1k pull-up as a way to try to overcome the alleged pull-down leakage that may be causing the ~1V on SETUP. Depending on how much access your user has to the actual SETUP input on the STM32, you may want to add more than just a wire between the button and the P1’s SETUP input to protect against ESD.