Arduino-compatible STM32L471 Open Hardware Board

Document created by leighton.luke on Oct 13, 2017
Version 1Show Document
  • View in full screen mode

About this project

A low-cost Arduino/Due-compatible board using an 80mhz STM32L471 MCU

 

PCB board picture 

 

Project info

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 

License :

The Team :

 

Luke Kenneth Casson Leighton

Main designer

http://lkcl.net http://rhombus-tech.net 

westfw

Reviews, design assistance

 

 

Things used in this project

Hardware components :

STM32L4711Main Processor
STM32F0701USB-to-UART and Boot control

Hand tools and fabrication machines :

Soldering iron, hot-air gun

Software Tools :

 * libopencm3

 * GitHub - GrumpyOldPizza/arduino-STM32L4 

 

Story

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

 

Online Forums

 

Attachments

    Outcomes