Skip to main content

Week4 - Group Assignment

Task of group assignemnt

Demonstrate and compare the toolchains and development workflows for available embedded architectures

Which microcontroller should I choose?

We asked Deepseek for recommanded Microcontroller.

We need to choose a main chip that has Wi-Fi, a camera, and a display.

We got the following recommanations:

  • ESP32-S3
  • ESP32-CAM
  • Raspberry Pi Pico W
  • Raspberry Pi Zero2 W
  • ESP32-S2
  • ESP-EYE
  • NVIDIA Jetson Nano
  • STM32H747I-DISCO

Some of the Microcontrollers are sold by Seeed Studio, I will find the XIAO series.

Specification of Seeed Studio XIAO series

I asked Deepseek to help me find out all the specfications of Seeed Studio XIAO series, with the following propmt.

Help me list the specs of all the boards in the Seeed Studio XIAO series, including cpu frequency, ram flash size, etc. Present it in table form

Here’s a table summarizing the specifications of the boards in the Seeed Studio XIAO series, including CPU frequency, RAM, flash size, and other key features:

ModelCPUCPU FrequencyRAMFlash SizeWirelessGPIOAnalog InputsUSB InterfaceOther Features
XIAO SAMD21ARM Cortex-M0+ (SAMD21)48 MHz32 KB256 KBNone1411USB-CI2C, SPI, UART, DAC
XIAO nRF52840ARM Cortex-M4 (nRF52840)64 MHz256 KB1 MBBluetooth 5.0146USB-CBLE, NFC, I2C, SPI, UART
XIAO RP2040Dual-core ARM Cortex-M0+ (RP2040)133 MHz264 KB2 MBNone114USB-CPIO, I2C, SPI, UART, PWM
XIAO ESP32C3RISC-V (ESP32-C3)160 MHz400 KB4 MBWi-Fi, BLE 5.0114USB-CWi-Fi, BLE, I2C, SPI, UART
XIAO ESP32S3Xtensa Dual-Core (ESP32-S3)240 MHz512 KB8 MBWi-Fi, BLE 5.0149USB-CWi-Fi, BLE, I2C, SPI, UART, Camera I/F
XIAO BLE SenseARM Cortex-M4 (nRF52840)64 MHz256 KB1 MBBluetooth 5.0146USB-CBLE, NFC, I2C, SPI, UART, IMU, PDM Mic
XIAO BLE Sense (nRF52840)ARM Cortex-M4 (nRF52840)64 MHz256 KB1 MBBluetooth 5.0146USB-CBLE, NFC, I2C, SPI, UART, IMU, PDM Mic
XIAO BLE Sense (ESP32C3)RISC-V (ESP32-C3)160 MHz400 KB4 MBWi-Fi, BLE 5.0114USB-CWi-Fi, BLE, I2C, SPI, UART, IMU, PDM Mic

Notes:

  1. GPIO: The number of general-purpose input/output pins available.
  2. Analog Inputs: The number of analog input pins.
  3. USB Interface: All XIAO boards feature a USB-C connector.
  4. Wireless: Includes Wi-Fi, Bluetooth, or BLE capabilities where applicable.
  5. Other Features: Additional peripherals or interfaces like I2C, SPI, UART, DAC, PIO, etc.

Then, we choose RP2040 & ESP32C3 as our chooses for whole of our Fab Academy journey.

About RP2040

Here's the datasheets and documentations about RP2040 Microcontroller.

The Specifcation:

  • Dual ARM Cortex-M0+ @ 133MHz

  • 264kB on-chip SRAM in six independent banks

  • Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus

  • DMA controller

  • Fully-connected AHB crossbar

  • Interpolator and integer divider peripherals

  • On-chip programmable LDO to generate core voltage

  • 2 on-chip PLLs to generate USB and core clocks

  • 30 GPIO pins, 4 of which can be used as analogue inputs

  • Peripherals

    • 2 UARTs

    • 2 SPI controllers

    • 2 I2C controllers

    • 16 PWM channels

    • USB 1.1 controller and PHY, with host and device support

    • 8 PIO state machines

RP2040 has a dual M0+ processor cores, DMA, internal memory and peripheral blocks connected via AHB/APB bus fabric.

  1. Code may be executed directly from external memory through a dedicated SPI, DSPI or QSPI interface. A small cache improves performance for typical applications.
  2. Debug is available via the SWD interface.
  3. Internal SRAM is arranged in banks which can contain code or data and is accessed via dedicated AHB bus fabric connections, allowing bus masters to access separate bus slaves without being stalled.
  4. DMA bus masters are available to offload repetitive data transfer tasks from the processors.
  5. GPIO pins can be driven directly, or from a variety of dedicated logic functions.
  6. Dedicated hardware for fixed functions such as SPI, I2C, UART.
  7. Flexible configurable PIO controllers can be used to provide a wide variety of IO functions.
  8. A USB controller with embedded PHY can be used to provide FS/LS Host or Device connectivity under software control.
  9. Four ADC inputs which are shared with GPIO pins.
  10. Two PLLs to provide a fixed 48MHz clock for USB or ADC, and a flexible system clock up to 133MHz.
  11. An internal Voltage Regulator to supply the core voltage so the end product only needs supply the IO voltage.

About RISC-V Microcontroller (ESP32-C3)

Here's the datasheets and documentations about ESP32-C3 Microcontroller.

The Specification:

  • Low-power SoC equipped with RISC-V 32-bit single-core processor, up to 160MHz main frequency
  • Supports 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth® 5 (LE)
  • 400KB of SRAM and 384KB ROM, and 4MB of onboard Flash memory
  • Castellated module and onboard ceramic antenna, allows soldering direct to carrier boards
  • Supports flexible clock, module power supply independent setting, and other controls to realize low power consumption in different scenarios
  • Integrated with USB serial port full-speed controller, 15 × GPIO pins allows flexibly configuring pin functions
  • 3 × SPI, 1 × I2C, 2 × UART, 1 × I2S, 2 × ADC, etc.

Comparion

ItemProcessorWireless ConnectivityMemoryInterfacesPWM/Analog PinsOnboard ButtonsOnboard LEDSBattery Charge ChipProgramming Languages
Seeed Studio XIAO ESP32C3ESP32-C3 32-bit RISC-V @160MHzWiFi and Bluetooth 5 (BLE)400KB SRAM, 4MB onboard FlashI2C/UART/SPI11/4Reset/ Boot ButtonCharge LEDBuilt-inArduino/MicroPython
Seeed Studio RP2040RP2040 Dual-core M0+@133MhzN/A264KB SRAM 2MB onboard FlashI2C/UART/SPI11/4Reset/ Boot ButtonFull-color RGB/ 3-in-one LEDN/AArduino/ MicroPython/ CircuitPython

In Processor, ESP32C3 is faster than RP2040. In memory, memory of ESP32C3 is larger than RP2040's. They can be also programmed with Arduino, MicroPython. We will compare the toolchains with Arduino & MicroPython.

Then, we compare the toolchains and development workflows for available embedded architectures.