Group Assignment — Week 4: Embedded Programming
Tasks
- Demonstrate and compare the toolchains and development workflows for available embedded architectures.
- Document your work to the group work page and reflect on your individual page what you learned.
Link to ChatGPT1. Arduino IDE (Beginner–Intermediate)
Best for: quick prototyping, simple projects, education
Toolchain Components:
- Arduino IDE
- Seeed board package (adds XIAO RP2040 support)
- USB bootloader (built into the board)
Workflow:
- Install Arduino IDE
- Add Seeed RP2040 board support (Boards Manager URL)
- Select XIAO RP2040 board
- Write code using Arduino-style C/C++ (setup() / loop())
- Plug in board and press boot button if needed
- Upload via USB
Pros:
- Easiest setup
- Huge library ecosystem
- Fast iteration
Cons:
- Less control over hardware
- Slight overhead vs native SDK
2. MicroPython (Beginner–Creative Coding)
Best for: interactive projects, teaching, rapid experimentation
Toolchain Components:
- MicroPython firmware
- Thonny IDE or similar editor
Workflow:
- Flash MicroPython UF2 file (drag-and-drop after boot mode)
- Open Thonny and connect to board
- Write Python scripts (main.py)
- Run code instantly or save to board
Pros:
- Very fast iteration
- Beginner-friendly syntax
- Great for creative tools (sensors, LEDs, etc.)
Cons:
- Slower execution
- Limited libraries compared to C/C++
3. C/C++ SDK (Pico SDK) (Advanced)
Best for: performance, custom firmware, embedded systems
Toolchain Components:
- Raspberry Pi Pico SDK
- CMake build system
- GCC (ARM toolchain)
- Optional IDE: Visual Studio Code
Workflow:
- Install ARM GCC toolchain
- Clone Pico SDK
- Write C/C++ code using hardware libraries
- Configure project with CMake
- Build to generate .uf2 file
- Drag-and-drop onto device in bootloader mode
Pros:
- Maximum control and speed
- Access to dual cores, PIO, DMA
- Professional embedded workflow
Cons:
- Complex setup
- Steeper learning curve
4. CircuitPython (Alternative to MicroPython)
Best for: creative coding and hardware libraries
Toolchain Components:
- CircuitPython
- Text editor (no full IDE required)
Workflow:
- Flash CircuitPython UF2
- Board appears as USB drive
- Edit code.py directly
- Device auto-runs code
Pros:
- Plug-and-play
- Strong hardware library support
- No compile step
Cons:
- Slightly less performant
- Less flexible than full SDK
Choosing the Right Toolchain
- Fast and simple: Arduino IDE
- Creative coding: MicroPython
- Max performance: Pico SDK
- Plug-and-play: CircuitPython