6. Embedded Programming
This week's assignment was to write a program for a microcontroller development board to interact (with local input &/or output devices) and communicate (with remote wired or wireless devices)
Group assignment
XIAO-RP2040
| Features | RP2040 |
|---|---|
| CPU | Dual-core ARM Cortex-M0+ |
| Clock speed | Up to 133 MHz |
| Bit depth | 32-bit |
| Storage | 264KB of SRAM, and 2MB of on-board Flash memory |
| I/O pins | 30 GPIO pins |
| Power | 1.8V - 5.5V |
| Dimensions | 20x17.5x3.5mm |
| Bluetooth | No |
| WIFI | No |
| How to program | USB mass-storage boot mode, drag-and-drop programming |
| Special Functions | USB 1.1 Host/Device, 8 Programmable I/O (PIO) state machines |
The comparation with other chips is documented in Fab lab Ibero's gorup page: Fab lab Ibero
Programming the XIAO-RP2040 in Arduino
At the top left corner theres an option to change the board and port. There I just selected the XIAO-RP2040 and the usb port to the chip.
Coding
The XIAO has a Neopixel LED incorporated into it, so for my code, I decided to use three buttons to change the colors of the Neopixel Led. In order to code the Neopixel I download the Adafruit NeoPixel library. Sorce code: Code
Testing my code
To test my code and circuit I first used a protoboard, once I confirmed that the circuit worked I soldered the components together and then connected them to my PCB using the pins.