I needed a cheap STM32F407 development board for my robot lawn mower project.
The ‘407 was chosen over other members of the 4xx due to the # of timers (for motor control, RPM measurement, ultrasonic distance measurement, RC PPM, etc). The F4xx family was chosen over the other STM32 families due to some timer features only available on the Cortex M4 family. Since I needed also a lot of I/O pins to map the different peripherals of the ARM microcontroller, it had to be at least a 100pin version of the chip.
This left pretty much only the STM32 Discovery line of boards. These boards are really nice, and the on-board peripherals can be disabled via solder-bridges, these boards are designed to run at 3V instead of the more common 3.3V.
That is, until I found a vendor on AliExpress selling exactly what I needed: A cheap (~ US$15 shipped), no-frills, 100pin STM32F407 based development board. The board is very similar to the very common STM32F103 based development boards that can be had for as low as $4. I bought mine here:
So far I’ve only found this one vendor for this board and that vendor apparently does not have any documentation (schematics, pinouts, etc.) on this board. Since the board is relatively simple, this is not a big downside, and I will attempt to document on this blog what I find out.
As of now, I’ve only used Texane’s stlink to ensure I can successfully talk to the development board. The programmer is a cheap Chinese clone of the STLink v2:
$ sudo st-util
2015-09-22T00:16:34 INFO src/stlink-usb.c: -- exit_dfu_mode
2015-09-22T00:16:34 INFO src/stlink-common.c: Loading device parameters....
2015-09-22T00:16:34 INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413
2015-09-22T00:16:34 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 16384 bytes
2015-09-22T00:16:34 INFO gdbserver/gdb-server.c: Chip ID is 00000413, Core ID is 2ba01477.
2015-09-22T00:16:34 INFO gdbserver/gdb-server.c: Target voltage is 3249 mV.
2015-09-22T00:16:34 INFO gdbserver/gdb-server.c: Listening at *:4242...
To be continued …