Pyboard entering DFU on power on

The official pyboard running MicroPython.
This is the reference design and main target board for MicroPython.
You can buy one at the store.
Target audience: Users with a pyboard.
Post Reply
sv1990
Posts: 2
Joined: Fri Mar 09, 2018 3:04 am

Pyboard entering DFU on power on

Post by sv1990 » Fri Mar 09, 2018 3:21 am

Hi,

I am facing a very strange issue with my pyboard. The board enters into DFU mode whenever I power on/hard reset, and boots normally only after pressing the reset button.

This started a couple of days back, when I accidentally connected a Li-Po in reverse polarity to Vin. This fried the 3.3V LDO on my pyboard, so I had to replace it. I removed the stock 3.3V LDO and installed a new one (specifically LT1085CT-3.3), across the Vin, 3.3V and GND pins near pin X22.

After the rework, quite strangely my pyboard enters DFU mode everytime I power it on. Everything else seems to be working fine, and I can get the pyboard to boot into python by pressing the reset button. However, the board strangely keeps booting to DFU whenever I power it on/hard reset it. Initially I suspected I may have shorted the 3.3V to DFU while reworking the board, however this does not seem to be the case (my multimeter reads ~10megaohm between DFU and 3.3V in power off state).

I am using my pyboard in a box where the reset is not easily accessible, so this behavior is very annoying.

I also tried reflashing the firmware, but the issue persists. The issue also persists if I power Vin or 3.3V externally with a DC supply.

Did I possibly fry something in the ST when I originally connected the Li-Po, causing this behavior :-( ?

I'll possibly wire up a power on reset circuit, if this is a hardware issue, but want to make sure there is no solution in the SW space.

Any pointers debugging this would be greatly appreciated!

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Pyboard entering DFU on power on

Post by pythoncoder » Sat Mar 10, 2018 7:49 am

sv1990 wrote:
Fri Mar 09, 2018 3:21 am
...Did I possibly fry something in the ST when I originally connected the Li-Po, causing this behavior :-( ?...
I think this is highly likely. I'm surprised it survived a reverse-polarity supply in any kind of working order.

More to the point, as far as I'm aware nobody has reported this behaviour before, and your board worked OK until the event. So it's pretty safe to assume cause and effect.

That said, on the V1.1 Pybord BOOT0-P1 is connected to Gnd via 100KΩ (R15) so you should be able to detect this with your meter. If the resistor has become disconnected that would explain the symptom. Also, if BOOT0-P1 has become low impedance due to damage you might be able to inhibit DFU mode by linking it to Gnd. Initially I'd try a direct link to prove or disprove the point, but you might get away with a smaller resistor. But this is perhaps clutching at straws.

Sorry :(
Peter Hinch
Index to my micropython libraries.

sv1990
Posts: 2
Joined: Fri Mar 09, 2018 3:04 am

Re: Pyboard entering DFU on power on

Post by sv1990 » Sat Mar 10, 2018 8:44 pm

[quote=pythoncoder post_id=26079 time=1520668162 user_id=265]

That said, on the V1.1 Pybord BOOT0-P1 is connected to Gnd via 100KΩ (R15) so you should be able to detect this with your meter. If the resistor has become disconnected that would explain the symptom. Also, if BOOT0-P1 has become low impedance due to damage you might be able to inhibit DFU mode by linking it to Gnd.

[/quote]

Thank you! Looks like the pulldown R15 on DFU pin had opened. As a result the DFU pin was in an undefined state (1.1V) on power on, causing the board to boot into DFU. I was able to replace the R15, and the board works perfectly fine now :D :D

Appreciate the help. I have just recently started playing with Micropython, but this already seems like a great community!

Post Reply