---
# System prepended metadata

title: Why again a new Microcontroller?

---

# Why again a new Microcontroller?

# Where are the main differences?
* STM32F3/F4
* RaspberryPico (RP2040)
* ArduinoUno (ATMega328P)
* ArduinoATMega
* ArduinoMicro/Nano
* ATtiny


## Table of Comparison

| Attributes               | RP2040                                      | STM32-F3                                                     | STM32L1                                                      | ESP8266                                                      | ArduinoMicro/ Nano                   |
| ------------------------ | ------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------ |
| Core                     | ARM Cortex M0+                              | ARM Cortex M4                                                | ARM Cortex M3                                                | Tensilica LX106                                              | ATmega328P                           |
| Coprocessor              | -                                           | -                                                            | -                                                            | X                                                            | X                                    |
| Core - max Speed         | 133 MHz                                     | 170 MHz                                                      | 32MHz                                                        | 80 MHz (up to 160 MHz)                                       | 16 MHz                               |
| Core - Memory SRAM/Flash | 264KB                                       | 40 KB /128 to 256 KB                                         | 32 KB - 512 KB                                               | 160 KB (36 KB available to user)                             | 32 KB (2 KB used for Bootloader)     |
| **uC Components**        |                                             |                                                              |                                                              |                                                              |                                      |
| ADC                      | x4 12-bit                                   | 4 x 12-Bit ADCs (5 Msps)                                     | 12-Bit                                                       | 10 bit                                                       |                                      |
| DAC                      | -                                           | 2 x DAC                                                      | 2x 12-Bit                                                    | X                                                            |                                      |
| PWM                      | up to 16                                    | 31 - 33                                                      | 4                                                            | 4                                                            |                                      |
| Timer                    |                                             | Advanced control 2(16 bit) / General purpose 5 (16 bit) 1 (32 bit) / Basic 2 (16 bit) | "11x timers: 1x 32-bit, 6x 16-bit with up to 4 IC/OC/PWM channels, 2x 16-bit basic timers, 2x watchdog timers (independent and window)" | N/A                                                          |                                      |
| Interrupts               | 26                                          | NVIC - 66 maskable interrupt - 16 priority levels            | 56 maskable interrupt - 16 priority levels                   | 16                                                           |                                      |
| GPIO                     | "30 (eig 26 siehe Quelle ""jeffgeerling"")" | 8 Groups - Normal I/Os 20 - 5-volt tolerant I/Os 17 - Speed max. 36 MHz | 51-115                                                       | 17                                                           | 22 (6 of which are PWM)              |
| **Consumption**          |                                             |                                                              |                                                              |                                                              |                                      |
| Power overall            | "92.8 mA, 0.33 W"                           | 21.8 mA (bei 24 MHz                                          | Peripherals enabled)                                         | 230 µA/MHz Run mode/11 µA Low-power run mode/1.15 µA standby mode + RTC | 70 mA (nur empfangen von WiFi Daten) |
| Power hibernation        | "2 mA, 6 mW"                                | 2.8 mA (bei 24 MHz                                           | Peripherals disabled)                                        | "1mA, 16MHz, Peripherals disabled"                           | 20 µA                                |
| **Communication**        |                                             |                                                              |                                                              |                                                              |                                      |
| SPI                      | 2 (OSPI)                                    | "2 (3) SPI (18 Mbits/s)- half/full duplex I2S interface, 4 to 16 - programmable bit frames" | 8                                                            | 2                                                            |                                      |
| I2C                      | 2                                           | "2 x I2C, standard (ut. 100 KHz), fast (ut. 400 KHz), fast mode + (ut. 1 MHz)" | 2                                                            | 1                                                            |                                      |
| USART                    | 2                                           | 3 USART (9 Mbits/s)                                          | 3                                                            | X                                                            |                                      |
| UART                     | 2                                           | 2 UART                                                       | 2                                                            | 2                                                            |                                      |


# Toolchain and SDK on the fly

## Comparison to ArduinoIDE
+ CLI support
+ Features
+ Chip Support
+ Abstraction Layer support
+ CI proof
# Differences MicroPython and C/C++
* Performance/Power Consumption
* Type savety
* Avainable features


## Todos
### 20210224
- [x] Search for datasheets of uC and Cores
### 20210303
- [x] Fill the comparison table
- [ ] Init of template repository for fast and easy deployment

## Teams
### RP2040 - ARM Cortex M0
Borensky, Degold, Ulbel, Aksoy, Wachter
Datasheet: [9]
Amazon Pico: 
### STM32F3 - ARM Cortex M4
Kupert, Haslinger, Dejan, Gessl
### ESP8266 - Tensilica LX106
Felber, Meier, Kolesik, Weiss
Datasheet: [Link](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf)
Amazon Nodmcu: [Link](https://www.amazon.de/-/en/AZDelivery-NodeMCU-ESP8266-ESP-12F-Development/dp/B0754HWZSQ/ref=sr_1_3?dchild=1&keywords=nodemcu&qid=1614438560&sr=8-3)
Nodmcu Tutorial for MicroPython and esptool:[Text](https://null-byte.wonderhowto.com/how-to/get-started-with-micropython-for-esp8266-microcontrollers-0210302/) / [Video](https://www.youtube.com/watch?v=j0hgKkwmSlw)
ESP8266 Micropython binaries: [Link](http://micropython.org/download/esp8266/)

### STM32L1 - ARM Cortex M3
Bruckner, Laback, Lehmann, Matschinegg, Shukhov
### TM4C1294/MSP430 - ARM Cortex M4F
Borko
### MicroPython / C / c++
Frühmann, Meth, Beier, Brugger

### ArduinoMicro/ Nano
Ceornea, Ganguly, Haas, Jindra

## Resources
* [1] https://www.raspberrypi.org/documentation/pico/getting-started/ (zuletzt besucht 02.03.2021)
* [2] https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf (zuletzt besucht 02.03.2021)
* [3]  https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf (zuletzt besucht 02.03.2021)
* [4]  https://www.mikrocontroller.net/articles/ARM_Cortex_Mikrocontroller (zuletzt besucht 02.03.2021)
* [5] https://github.com/raspberrypi/pico-sdk (zuletzt besucht 02.03.2021)
* [6] https://www.elektormagazine.de/news/neu-raspberry-pi-pico-und-der-mikrocontroller-rp2040 (zuletzt besucht 02.03.2021)
* [7] https://socialcompare.com/en/comparison/syt5-embdev-5thoqzuz (zuletzt besucht 02.03.2021)
* [8] https://www.ti.com/microcontrollers-mcus-processors/microcontrollers/arm-based-microcontrollers/products.html#p887=ARM%20Cortex-M4F (zuletzt besucht 02.03.2021)
* [Y] https://hackaday.com/2021/01/20/raspberry-pi-enters-microcontroller-game-with-4-pico/ (zuletzt besucht 02.03.2021)
* [Y] https://www.tomshardware.com/features/raspberry-pi-pico-vs-arduino (zuletzt besucht 02.03.2021)
* [Y] https://www.jeffgeerling.com/blog/2021/raspberry-pi-pico-new-4-microcontroller (zuletzt besucht 02.03.2021)

### Datasheets and Overviews of uC
* [9] "ARM Cortex M0 | RP2040" [online](https://datasheets.raspberrypi.org/rp2040/rp2040-datasheet.pdf) | zuletzt besucht 02.03.2021
* [9.5] "RaspberryPi Pico Data Sheet" [online](https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf) | zuletzt besucht 02.03.2021
* [10] "ARM Cortex M4 | STM32F405xx" [online](https://www.st.com/resource/en/datasheet/dm00037051.pdf) | zuletzt besucht 24.02.2021
* [11] "ARM Cortex M4 | STM32-F303" [online](https://www.st.com/resource/en/datasheet/stm32f303vc.pdf) | zuletzt besucht 24.02.2021
* [12] "ESP8266EX" | ESP8266EX [online](https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf) | zuletzt besucht 03.03.2021
* [13] "ARM Cortex M3 | STM32L1" [online](https://www.st.com/resource/en/datasheet/stm32l162vd.pdf) | zuletzt besucht 03.03.2021
#### Datasheets of Cores

---
**Version** *20210303v3*