Review of STMicroelectronics STM32F0DISCOVERY for STM32F0 Cortex M0 MCU

Table of contents

RoadTest: STMicroelectronics STM32F0DISCOVERY for STM32F0 Cortex M0 MCU

Author: Lupo

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Mbed LPC11U24, Arduino Uno.

What were the biggest problems encountered?: Compile Arduino's firmware examples.

Detailed Review:





The STM32F0DISCOVERY is a low-cost and easy-to-use development kit to quickly evaluate and start development with an STM32 F0 series microcontroller. It is sold in a simple plastic package: there is no material to give protection against electrostatic discharge, no accessories like usb cable or user manual but only a prototype board to help you during applications development:






Before installing and using the product, ST requires that users accept the Evaluation Product License Agreement from website.


All the information related to this development kit are available through the web site (the link is printed on the paper inside the package):


Main site:



Design support :



Data Brief:



User manual:












Project examples (including Arduino porting code):



21 firmware examples:



Application note:



To help user during development, the Discovery is provided by some useful things as follow:



Push buttons


● B1 USER: User push button connected to the I/O PA0 of the STM32F051R8T6.


● B2 RESET: Push button used to RESET the STM32F051R8T6.




● LD1 PWR: Red LED indicates that the board is powered.


● LD2 COM: Tricolor LED (COM) advises on the communication status as follows:


– Slow blinking Red LED/Off: At power on before USB initialization


– Fast blinking Red LED/Off: After the first correct communication between PC and


STLINK/V2 (enumeration)


– Red LED On: When initialization between PC and ST-LINK/V2 is successfully




– Green LED On: After successful target communication initialization


– Blinking Red/Green LED: During communication with target


– Red LED On: Communication finished and OK


– Orange LED On: Communication failure


● User LD3: Green user LED connected to the I/O PC9 of the STM32F051R8T6.


● User LD4: Blue user LED connected to the I/O PC8 of the STM32F051R8T6.




P2 (Idd)


Jumper JP2, labeled Idd, allows the consumption of STM32F051R8T6 to be measured by


removing the jumper and connecting an ammeter.


● Jumper on: STM32F051R8T6 is powered (default).


● Jumper off: an ammeter must be connected to measure the STM32F051R8T6 current,


(if there is no ammeter, the STM32F051R8T6 is not powered)




Power supply and power selection


The power supply is provided either by the host PC through the USB cable, or by an external


5V power supply.


The D1 and D2 diodes protect the 5V and 3V pins from external power supplies:


● 5V and 3V can be used as output power supplies when another application board is


connected to pins P1 and P2.


In this case, the 5V and 3V pins deliver a 5V or 3V power supply and power


consumption must be lower than 100 mA.


● 5V can also be used as input power supplies e.g. when the USB connector is not


connected to the PC.









The board is bigger than Arduino(almost 1/3 bigger) and than MBED (more than 3 times):











The big dimensions cannot let you easily use a normal breadboard (you need two of them).


If you are used to Arduino's or better to MBED's IDE, the first thing you'll notice with this development kit is that there is no dedicated IDE:

STM32F0DISCOVERY board includes an ST-LINK/V2 embedded debug tool interface that is supported by the following software toolchains:


● IAR™ Embedded Workbench for ARM (EWARM) available from

● RealView Microcontroller Development Kit (MDK-ARM) toolchain available from

● Atollic TrueSTUDIO® STM32 available from

● Altium™ TASKING VX-toolset for ARM® Cortex-M available from


To review the Discovery I have tried EWARM and TrueSTUDIO which are both available in evaluation version as well. I prefer EWARM which is, in my opinion, better, more complete and more friendly to use with F0 than TrueSTUDIO.


The board is provided with a simple preloaded firmware: LED 3 blinks; everytime you push B1, LED 4 is ON for a second and LED 3 change blinking frequency. At the third pression of  B1, the LED 3 is OFF. The cycle start again from the beginning when you push B1 again:






ST provide a zip file with 21 firmware examples to test F0 capabilities. Let' s see the DAC example: the code generate a sine waveform and an escalator waveform selectable by B1 and available on pin PA4:








ST provides also examples to use the board with Arduino's shields:


-BeeBluetooth Bees Shield V2.12 (

-MIDI shield (

-NFC shield V0.9b (


and provides the firmware to test the libraries which port the Arduino's code to Discovery. Here the example code provided for ADC conversion:



void loop()

{uint16_t i = 0;

char L_readChar;

  Serial.begin(115200); //Open com on uart 0-1 pins

      delay(2000); //Wait for 2 sec

     G_ADCValue = analogRead(A2);

     G_ReadVal = (float)(POWER_SUPPLY * G_ADCValue) / 4095;

      sprintf(G_SendBuff,"%f Volt",G_ReadVal);

     Serial.print("ADC read: ");



     if(i>10) i=0;

     while(Serial.available()) {

       L_readChar =;













Discovery is a very cheap development board which has no comparable competitors in terms of such price/performance ratio. The board is very big (e.g. MBED use a Cortex M0 microprocessor using less than 1/3 pcb space but it costs almost 8 times) and there is no dedicated IDE which is an important feature for beginners. There are Arduino's libraries available but they are not ready to use as the ST team would like us to believe: before compiling it is required to set some parameters and to adjust some settings which could be not a simple task for beginners (anyway the code seems to work as required).  I think the main reasons why Discovery is so cheap is the use of a big pcb which reduce the cost of designing as well as the use of a not customized IDE. In my opinion this development kit is a good alternatives to the ones already available at least for skilled guys, which can have a good product at a very low price. 




PRO: very cheap.




CONS: no dedicated IDE availble. Not easy to use for beginners.