Page 5 of 5

Re: DFU bootloader has errors on new BlackPill F411

Posted: Mon Mar 13, 2023 10:36 am
by hdleng
In case anyone else is still looking for answers, I can verify that MrHazelnut's solution works. When I saw his suggestion not to use your fingers on the BOOT and RESET buttons, I thought bull***t!. I was WRONG!. Use a couple of pens as MrHazelnut suggested: it works. I don't know whether resistive coupling of fingers with pins or traces is involved. Maybe it's capacitive coupling. I was looking for all the more scientific sounding suggestions first.

Re: DFU bootloader has errors on new BlackPill F411

Posted: Mon Mar 13, 2023 10:49 am
by GonzoG
@hdleng
It's not that simple. In my case, I need to touch GND and reset board.
The problem with entering DFU is caused by floating RX1 pin (PA10). So if using finger touching GND it might be pulled to GND as PA10 is close to BOOT and RST buttons.

Re: DFU bootloader has errors on new BlackPill F411

Posted: Tue Mar 14, 2023 7:42 am
by hdleng
GonzoG

I'm glad that you found a solution that works for you. I tested it, and it does not work for me. I suspect that there may be variability in the mcu's that cause them to respond differently to the various suggested solutions.

Re: DFU bootloader has errors on new BlackPill F411

Posted: Tue Mar 14, 2023 7:50 am
by hdleng
Following up on GonzoG's recommendation, I ran an experiment. I placed a 10K pulldown resistor at A10. I can now use my finger to press the BOOT0 and RST buttons and reliably boot the the DFU bootloader.

Re: DFU bootloader has errors on new BlackPill F411

Posted: Thu Oct 05, 2023 12:18 pm
by wanderlg
Using the new bing chatbot I got this function that magically manages to put the STM32F401 in DFU mode. However, I've already tried doing this in the chatbot again and it can't reproduce the same code, and it even says that the code doesn't work when I show it what it created for me. LOL.
But yes, it works. here it is.

void (*jump_to_bootloader)(void) = (void (*)(void)) (*((uint32_t *) 0x1FFF0004));

just call the jump_to_bootloader() function; and will be in DFU mode.