This is an RP2040:bit Board Based On Raspberry Pi Microcontroller RP2040 but is the same size and pinout as the BBC Micro:bit
Features
On-board W25Q16 16M flash Memory chip
On-board 5×5 LED matrix, each LED can be programmed separately.
On-board two programmable buttons.
You get 2 headers which you can solder on, if you want the pico pinout on the back. Other wise its this Microbit type pinout
Pin | Description |
---|---|
0 | KEYA |
1 | KEYB |
10 | GPIO that is used for the serial clock (SCK) signal of the 3-wire Serial Peripheral Interface (SPI) bus. |
11 | GPIO that is used for the Master Out Slave In (MOSI) signal of the SPI bus. |
12 | GPIO that is used for the Master In Slave Out (MISO) signal of the SPI bus. |
13 | CSn |
17 | These pins are wired to the 3V supply |
18,19 | Implement the clock signal (SCL) and data line (SDA) of the I2C bus communication protocol. With I2C, several devices can be connected on the same bus and send/read messages to and from the CPU. |
29 | ADC3 |
Development
You can use Micropython, Arduino or the C++ SDK. Its an RP2040, so you can use your typical development environment. I tried micropython using Thonny.
from machine import Pin import time led_Col=[2,3,4,5,25,7,8,9,21,22]; Pin(led_Col[0], Pin.OUT) Pin(led_Col[1], Pin.OUT) Pin(led_Col[2], Pin.OUT) Pin(led_Col[3], Pin.OUT) Pin(led_Col[4], Pin.OUT) Pin(led_Col[5], Pin.OUT) Pin(led_Col[6], Pin.OUT) Pin(led_Col[7], Pin.OUT) Pin(led_Col[8], Pin.OUT) Pin(led_Col[9], Pin.OUT) buttonA= Pin(0, Pin.IN, Pin.PULL_UP) buttonB = Pin(1, Pin.IN, Pin.PULL_UP) while 1: for i in range(len(led_Col)): i>5 j=Pin(led_Col[i], Pin.OUT) Pin(led_Col[0], Pin.OUT).low() Pin(led_Col[1], Pin.OUT).low() Pin(led_Col[2], Pin.OUT).low() Pin(led_Col[3], Pin.OUT).low() Pin(led_Col[4], Pin.OUT).low() Pin(led_Col[5], Pin.OUT).high() Pin(led_Col[6], Pin.OUT).high() Pin(led_Col[7], Pin.OUT).high() Pin(led_Col[8], Pin.OUT).high() Pin(led_Col[9], Pin.OUT).high() time.sleep(0.2) j.high() Pin(led_Col[5], Pin.OUT).low() time.sleep(0.2) j.high() Pin(led_Col[6], Pin.OUT).low() time.sleep(0.2) j.high() Pin(led_Col[7], Pin.OUT).low() time.sleep(0.2) j.high() Pin(led_Col[8], Pin.OUT).low() time.sleep(0.2) j.high() Pin(led_Col[9], Pin.OUT).low() time.sleep(0.2) if (buttonA.value()==0): Pin(led_Col[0], Pin.OUT).high() Pin(led_Col[1], Pin.OUT).high() Pin(led_Col[2], Pin.OUT).high() Pin(led_Col[3], Pin.OUT).high() Pin(led_Col[4], Pin.OUT).high() Pin(led_Col[5], Pin.OUT).low() Pin(led_Col[6], Pin.OUT).high() Pin(led_Col[7], Pin.OUT).high() Pin(led_Col[8], Pin.OUT).high() Pin(led_Col[9], Pin.OUT).high() time.sleep(0.5) elif (buttonB.value()==0): Pin(led_Col[0], Pin.OUT).low() Pin(led_Col[1], Pin.OUT).low() Pin(led_Col[2], Pin.OUT).low() Pin(led_Col[3], Pin.OUT).low() Pin(led_Col[4], Pin.OUT).high() Pin(led_Col[5], Pin.OUT).low() Pin(led_Col[6], Pin.OUT).low() Pin(led_Col[7], Pin.OUT).low() Pin(led_Col[8], Pin.OUT).low() Pin(led_Col[9], Pin.OUT).low() time.sleep(0.5)
The LEDs lights up one by one.
When button A is pressed, the first horizontal row of LEDs on the top will light up.
When button B is pressed, the row near button B lights
Pricing
You can get this board for under £7 from Aliexpress
Raspberry Pi Pico RP2040 bit board |
Raspberry Pi Pico RP2040 bit kit |