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 | 
