About this project :
A low-cost Arduino/Due-compatible board using an 80mhz STM32L471 MCU
Type : description on how I built my application / description of component or application usage
Progress : my project is complete / I still have work to do
Difficulty : Easy / Intermediate / Advanced
The Team :
Luke Kenneth Casson Leighton
|Reviews, design assistance|
Things used in this project
Hardware components :
|STM32F070||1||USB-to-UART and Boot control|
Hand tools and fabrication machines :
Software Tools :
The extremely successful Arduino Mega 2560 r3 can be bought in the Shenzhen markets in the Futian District for around USD $5. By contrast the much better Arduino Due is $15 and is far less common. Atmel's policy appears to be to maintain uniform world-wide pricing, which fails completely to take into account the realities of China pricing, supply and demand, and it has an immediate consequence of stopping the Due from being popular. The STM32L471 however, like many ST MCUs, has comparable features yet is available (but only in Shenzhen) for half the price of the ATSAM3XE. It therefore makes sense to make an Arduino-compatible board using this excellent processor.
Pin-compatibility with the major published functions of both the Mega 2560 r3 and the Due can and has been achieved, with a few to spare to connect to an on-board MicroSD card in SPI mode, and the SPI and UART of the L471 up to a 20-pin STM32F070 for boot, firmware reprogramming and communication purposes.
Initially a CH340G was chosen for USB-UART connectivity, as it is extremely low-cost and is part of the reason why Arduino Mega 2560 clones are so amazingly low-cost. A buffer-inverter IC was added to connect RTS to BOOT0 and DTR to RESET. However thanks to westfw's help and encouragement on the arduino.cc community forum, several MCUs were analysed and found to be similar pricing but not sufficiently attractive to warrant replacing the CH340G. The 20-pin STM32F070 was accidentally believed to be crystal-less (there is no 20-pin variant of the STM32F072) and was put in its place, because the SPI interface could be used for high-speed data transfers in place of UART. UART connectivity was also kept for initial simplicity, as well as firmware flashing (the STM32L471 does not have SPI-based boot loading).
Schematics and circuit diagrams
- Fully open development: GPLv3+ licensed board designs, datasheets and schematics at http://hands.com/~lkcl/stl47o
- arduino.cc forum: Creating a low-cost pin-compatible Arduino/Due board using an STM32L471 - Page 2
- stm32duino forum: Is anyone interested in helping to make an Arduino Due which uses [edited: a 100-pin STM32L471] - Page 7 - Arduino for S…