Week06 Group Assignmnet - Compare Various Microcontrollers

micro:bit

The micro:bit is an easily programmable Single Board Computer (SBC) that contains an application processor with a variety of on-chip peripherals. Detailed information can be found at the hardware introduction page.

Basic specs of the micro:bit hardware are:

ATmega328p

The ATmega328p is a high performance, low power AVR® 8-bit microcontroller, it is used as the core of the widely used Arduino Uno development borad. Some basic specs are listed below, more information can be found on the Microchip product page and its datasheet.

Pinout reference of ATmega328p DIP package from an alternative Arduino Core Minicore

Program ATmega328p

The Arduino Uno comes with the USB serial interface that can be use to upload program from the computer. But the ATmega328p chip itself doesn't have that, and it needs a programmer to upload the program to the board.

Since the Arduino Uno uses the ATmega328p as its microcontroller, the Arduino IDE and its library can be used to write ATmega328p compatible code. The only difference is that the Arduino Uno has a 16MHz external crystall oscillator connected to the chip and the chip is running at a different speed if we only use the 8MHz internal oscillator of the ATmega328p itself.

According to the documentation from Arduino, we can load a diffrent board configuration for the ATmega328p to write code for the ATmega328p without the external oscillator, and we can use another Arduino Uno to act as the programmer to upload code to the chip, as some of us tried on week04 and this week's personal assignment.

Arduino Uno

Arduino Uno

RP2040

The RP2040 is a microcontroller is designed by Raspberry Pi, product page and datasheet.

Basic specs:

Seeed Xiao RP2040

The RP2040 microcontroller can also be programmed by the Arduino platform. We are using the Seeed Studio Xiao RP2040 as the develpment board for RP2040, and Seeed Studio has official documentation for programm the Xiao RP2040 via Arduino IDE.

Follow the instruction and installed the Arduino core for RP2040 to Arduino IDE, we can write code for the RP2040 microcontroller using the same set of API to control the board.

Pinout for Xiao RP2040

As the product page stated, the Xiao RP2040 has the following specs:

Due to its small formfactor, the Xiao RP2040 doesn't expose all the peripheral capabilities of the RP2040, and an error in the documentation led to some confusion when we were testing the board.

Seeed Studio Xiao RP2040 Schematic

ESP32

ESP32 Datasheet

The development board we have for the ESP32 chip is similiar to the official ESP32-DevKitC dev board from Espressif but with a USB Type-C connector. It has a ESP32-WROOM-32 at its core.