This document presents a comparative analysis of the development workflows of Seeed XIAO ESP32-C3 and Raspberry Pi Pico created by Fabacademy Students of the Hisar IdeaLab Fablab students. It explores technical specifications, performance, resource utilization, and development processes, providing visual representations where applicable.
The Seeed XIAO ESP32-C3 is a compact, powerful, and Wi-Fi-enabled microcontroller based on the ESP32-C3 chip.
The Raspberry Pi Pico is a powerful microcontroller board based on the RP2040 chip, designed for high-performance embedded applications.
Feature | Seeed XIAO ESP32-C3 | Raspberry Pi Pico |
---|---|---|
Processor | ESP32-C3 (RISC-V) | RP2040 (ARM Cortex-M0+) |
Architecture | 32-bit RISC-V | 32-bit ARM |
Clock Speed | 160MHz | 133MHz |
RAM | 400KB | 264KB |
Flash Storage | 4MB | 2MB |
GPIO Pins | 11 | 26 |
Communication | I2C, SPI, UART, Wi-Fi, BLE | I2C, SPI, UART |
Power Consumption | ~80mA (Wi-Fi active) | ~100mA |
Price | ~$6-$10 | ~$4-$10 |
Install Thonny:
Set Up Thonny for Pico:
Tools
> Options
.MicroPython (Raspberry Pi Pico)
.Creating a New Script
.py
extension.Uploading the Code
Run
to execute the script directly on the Pico.Example Code: Led On&Off
from time import sleep from picozero import pico_led while True: pico_led.on() sleep(0.1) pico_led.off() sleep(0.1)
Using the REPL (Read-Eval-Print Loop)
Using Print Statements for Debugging
print()
statements in the script to observe values.Flashing a New Firmware
.uf2
file.BOOTSEL
button and connect the Pico via USB..uf2
file onto the Pico storage.Install Arduino IDE:
Download and install the latest Arduino IDE from arduino.cc.
Open Arduino IDE and go to Preferences
.
Add the ESP32 Board Manager URL to the Additional Board Manager URLs
field:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Install ESP32 Board Definitions:
Go to Tools
> Board
> Boards Manager
.
Search for ESP32 and install the ESP32 package.
Select Seeed XIAO ESP32-C3 as the board.
Creating a New Sketch
Open a new Arduino sketch.
Write the program using standard Arduino functions.
Example: Blinking an LED.
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }
Uploading Code to Seeed XIAO ESP32-C3
Connect the Seeed XIAO ESP32-C3 via USB.
Select the correct board and port from Tools
.
Click Upload to flash the code to the microcontroller.
Using the Serial Monitor
Open the Serial Monitor from Tools
> Serial Monitor
.
Set the baud rate to 115200
.
Use Serial.print()
statements for debugging:
void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello, ESP32!"); delay(1000); }
Troubleshooting Upload Issues
Ensure the correct port and board are selected.
Try pressing the boot button while clicking Upload.
If the upload fails, install the CP210x USB to UART driver.
Download and install VS Code from official site.
Install Python 3.x.x from python.org if not already installed.
Install the MicroPython firmware for Raspberry Pi Pico from Raspberry Pi's official site.
Open VS Code and navigate to Extensions
(Ctrl+Shift+X
).
Search for Raspberry Pi Pico extension (official) and install it.
Restart VS Code after installation.
Download the latest MicroPython uf2
firmware.
Connect the Pico via USB while holding the BOOTSEL
button.
Drag and drop the .uf2
file onto the mounted Pico drive.
Once done, the Pico will reboot with MicroPython enabled.
Project Generator: Easily create and configure new projects with built-in support for I2C, SPI, and PIO.
Quick Project Setup: Initiate new Pico projects directly from the Explorer view when no workspace is open.
MicroPython Support: Create and develop MicroPython-based Pico projects with built-in support from the extension.
Automatic CMake Configuration: Configures CMake automatically when loading a project.
Version Switching: Allows easy switching between different versions of the Pico SDK.
No Manual Setup Required: Handles environment variables, toolchains, SDK, and tool management.
Includes an Uninstaller: Easily remove the extension along with installed SDKs.
One-Click Compilation and Debugging: Automatically configures OpenOCD, Ninja, and CMake for a streamlined build process.
Offline Documentation: Access Pico SDK documentation within the editor, even when offline.
One-Click Compilation: Compile projects directly from the VS Code status bar.
Integrated Debugging: Debug programs using GDB with full VS Code integration.
Name your Project: On the basic settings section name your project
Chose Python Version: Either system default, from system extensions or a custom version you manually upload
Chose Directory: Chose a directory for your project to reside in- in user directory by default on mac-
Press start and you are good to go .):
from time import sleep from picozero import pico_led pico_led.on() sleep(1) pico_led.off()