STM32F446 vs STM32F405

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
Posts: 1
Joined: Thu Feb 27, 2020 11:31 pm

STM32F446 vs STM32F405

Post by korrigan » Thu Feb 27, 2020 11:38 pm

Greetings to the pyboard forum.

I have tried to create my own copy of the pyboard and have had limited success.

It comes up in DFU mode and I'm able to program it, apparently with success, using dfuDemo.

However when I take it out of DFU mode it doesn't show up as a USB storage device. It doesn't show up at all in Device Manager.

It acts as if nothing is running. User switch (PB3-SW-X17) comes up low rather than the high you see on the piboard. No light from LED's either. Reset button has no noticeable effect.

I noticed I'd accidentally purchased the STM32F446 rather than the STM32F405. This seems like a possible cause of my problem but I don't know just where to look in the data sheet to be sure. Both parts look very similar and have very similar pinouts.

Any guidance or insight is appreciated.


User avatar
Posts: 1440
Joined: Tue Aug 08, 2017 1:57 am
Location: Sydney, Australia

Re: STM32F446 vs STM32F405

Post by jimmo » Fri Feb 28, 2020 7:48 am

Did you create your own custom board definition and linker script for this chip? Or are you trying to flash pyboard firmware to it?

Posts: 140
Joined: Wed Jun 25, 2014 10:07 am

Re: STM32F446 vs STM32F405

Post by chrismas9 » Sat Feb 29, 2020 12:22 pm

PB11 is not available on the STM32F466. The pin requires a bypass cap for the internal core voltage regulator. It may not run reliability without this cap. You will need to start with the NUCLEO_F446 port and edit mpconfigport.h to suit your pin allocations. Make sure the PLL values match your crystal. The F446 has less flash and RAM than the F405 so the stack which starts at top of RAM will be allocated to empty space. The flash filesystem config is also different. Due to the smaller RAM the sector cache is reduced to 16k and the filesystem is smaller. Tha ADC Vbat divider is different. All these differences are taken care of in the NUCLEO_F446 port. Or change back to the F405. The F446 will never work with the Pyboard port. The Pyblite port may work as the F411 and F446 are more alike. There are pinout differences but REPL over USB will probably work if the crystal frequency matches Pyblite.

Post Reply