I made a breakout board for the STM32F405RGT from ST.
I really like the STM32 family of ARM microcontrollers. This breakout board is a narrow design that fits perfectly on a breadboard. Every pin is accessible. It has USB, a reset button, and a bootload button. The chip itself has a permanent USB bootloader that is activated by the bootload button. This means that no equipment is required to program this microcontroller, no expensive debugger, nothing at all except a USB cable.
If you are interested in the design, click here to download the EAGLE files (version 20131027) including part list. If you have received a PCB from me, please check your version number. Other versions are on the bottom of this page.
I will assume you know how to compile a program for STM32F4 already. You should have either a *.hex or *.bin file.
First, read ST’s application note AN2606. Inside, it describes how the bootloader works and how it’s activated. Basically upon reset (or power up), the bootload button is sampled, and if it is pressed, it will enter the bootloader mode. If it is not pressed, then the code that the user previously programmed will run.
ST’s application note AN3156 describes the protocol used in the USB DFU bootloader. You don’t need to read this but it’s interesting.
You need to download a tool called DfuSE Demo (UM0412 and STSW-STM32080), written by ST. This tool will let you program a *.dfu file into the microcontroller, if it is in USB DFU bootloader mode.
To generate a *.dfu file, there’s a “DFU File Manager” program that is included with “Dfuse Demo”.
- compile your code into *.hex or *.bin
- convert your *.hex or *.bin to *.dfu using DFU File Manager
- activate the bootloader by holding down the bootload button, then resetting or powering on the microcontroller
- run the Dfuse Demo tool to flash the *.dfu file into the microcontroller
Power Source Jumper
Other stuff I want to mention
You can probably put the .NET Micro Framework on it, it uses the same microcontroller as the Netduino Plus 2. I can put the default Netduino Plus 2 firmware (both the bootloader and CLR) on it and it will work. The networking and SD card slots are missing, but the internals of the .NET Micro Framework is so intertwined that it is not worth the effort to remove those bits of code.
If you have a ST Link or any other SWD debugger, it will work with the breakout board. Then you wouldn’t need the bootloader anymore. The bootloader is permanent so don’t worry about losing the bootloader.
I have a page on my own wiki to help you get started with STM32: STM32 Starter Guide
You might be visiting this page because you’ve obtained some of my spare PCBs. Please pay attention to the version number printed on the PCB.
Version 20121012 is the first ever revision, the files are here (version 20121012, EAGLE schematic, PCB, and part list). It has a minor flaw: Q1, R7, and R3 are not required, in fact, if you installed those three components, it will make the bootloader not work in some situations.
If you are completely new to ARM microcontrollers but still asked me for a PCB, don’t hesitate to ask me for help!