- 1 Introduction
- 2 Features At A Glance
- 3 Usage Scenarios
- 4 Header Definition
- 5 Setup environment
- 6 Demo example
- 7 Set up C/C++ Environment
- 8 Resources
- 9 Support
RGB Full-Color Multi-Features Digital Clock For Raspberry Pi Pico, 64×32 RGB Matrix, Accurate RTC
Features At A Glance
This is a RGB LED matrix digital clock designed for Raspberry Pi Pico. It incorporates high precision RTC chip DS3231, photosensor, buzzer, IR receiver, and buttons, features multiple functions including accurate electronic clock, temperature display, auto brightness adjustment, alarm, and button config. The important part is, rich open source codes and development tutorials are also provided to help you fast get started with Raspberry Pi Pico and make your own original electronic clock.
- Standard Raspberry Pi Pico header, supports Raspberry Pi Pico series
- Using P3 fine-pitch RGB LED matrix panel, with 2048 individual RGB LEDs, 64×32 pixels, 3mm pitch, allows displaying text, colorful image, or animation
- Onboard high precision RTC chip DS3231, with backup battery holder (battery included), maintains accurate timekeeping when main power is off
- Real-Time Clock Counts Seconds, Minutes, Hours, Date of the Month, Month, Day of the Week, and Year with Leap-Year Compensation Valid Up to 2100
- Optional format : 24-hour OR 12-hour with an AM/PM indicator
- 2x programable alarm clock
- Digital temperature sensor output: ±3°C accuracy
- Embedded photosensor for auto brightness adjustment due to the ambient light, power saving and eye care
- Embedded buzzer for alarm or hourly ring, etc.
- IR receiver, combined with the IR remote controller, supports IR wireless control
- 5x buttons for configuration, reset, and code programming
- Quality acrylic back panel and dimmer panel, better looking, more comfortable displaying
- Comes with development resources and manual (Raspberry Pi Pico C/C++ and MicroPython examples)
Pico connection pins
|Pins used by RGB LED Matrix (HUB75 interface)|
|R1||GP02||R higher bit data|
|G1||GP03||G higher bit data|
|B1||GP04||B higher bit data|
|R2||GP05||R lower bit data|
|G2||GP08||G lower bit data|
|B2||GP09||B lower bit data|
|A||GP10||A line selection|
|B||GP16||B line selection|
|C||GP18||C line selection|
|D||GP20||D line selection|
|E||GP22||E line selection|
|Pins used by other resources of the board|
|K0||GP15||KEY0 button, the MENU menu of the digital clock, can also be customized|
|K1||GP19||KEY1 button, + / Down button of digital clock, can also be customized|
|K2||GP21||KEY2 button,-/ UP button of digital clock, can also be customized|
|RUN||RUN||RESET button, can be used for Pico reset|
|BOOTSET||BOOTSET||BOOT button, can be used for Pico burning program (long press BOOT, then press RESET to enter the firmware download mode)|
|SDA||GP06||I2C data pin, used to control DS3231 RTC clock chip|
|SCL||GP07||I2C clock pin, used to control DS3231 RTC clock chip|
|BUZZ||GP27||Buzzer control pin|
|AIN||GP26||Photoresistor control pin|
|IRM||GP28||Infrared receiving control pin|
See detailed hardware design of the circuit diagram.
You can refer to Raspberry Pi's guide: https://www.raspberrypi.org/documentation/pico/getting-started
Or check the guide#Set up C/C++ Environment
- Pico-RGB-Matrix-P3-64x32 (this product)
- Raspberry Pi Pico (must be purchased separately, if not, it is recommended to buy a version with soldered headers, which is convenient for direct insertion and use)
- Micro USB cable (must be purchased separately)
Hardware connection steps
- Align the pin header which is marked in red and then connect the RGB LED Matrix panel to the driver board.
- Cut the adapter cable (about 10cm) by plier
- Connect the cable which is cut in the last step to the RGB LED Matrix and the driver board
- Connect your Pico board to the Matrix device, please take care of the direction.
- Assemble the Acrylic backplane and fix it with magnetic screws
- If you need to program Pico and debug, you can skip this step first, and operate it when it is ready to use
- Optional: If you feel that the RGB LED Matrix is too bright, you can stick the black Acrylic font panel on the Matrix.
Multi-Features Digital Clock
- This example is developed based on the C++ SDK. In order to quickly demonstrate the effects and functions of the example.
- Download the demo codes from the Resources and unzip to get the uf2 file.
- You can refer to the #Set up C/C++ Environment to build and program the C codes.
- Press and hold the BOTSEL button of your Pico, and connect it to the host PC. A portable disk RPI-RP2 will be recognized
- Copy the uf2 file to the Pico (RPI-RP2) and it will reconnect automatically.
- After the burning is completed, the running effect of the example is shown in the figure below:
- Time display screen:
- Display date, day of the week, hour, minute, lunar calendar and temperature
- Function setting menu
- Date setting
- time setting
- BEEP setting (buzzer setting)
- Auto brightness
- Language setting (under development)
- The display can display a variety of fruits or other small BMP icons
- Automatically scroll icons at regular intervals, and randomly display the results of the scrolling
- CircuitPython is a fork of MicroPython， For specific usage, please refer to the RGB-Matrix related CircuitPython tutorial
- Pico must first install CircuitPython，and then copy the corresponding CircuitPythond code to the recognized U disk to complete the download.
Infrared transceiver test
This example is developed based on MicroPython, the program is downloaded , the example effects and functions are as follows:：
- The infrared serial code generated by the corresponding button of the infrared remote control can be recognized
Set up C/C++ Environment
You can program the Pico with Raspberry Pi or Windows PC.
You can directly refer to the Offical manual of Raspberry Pi.
- Please make sure that you use the Newest Raspberry Pi OS and the Pi 4 is recommended.
- Open the terminal of the Raspberry Pi
- Run the following commands to get the SDK
cd ~/ mkdir pico cd pico git clone -b master https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init
- Install the ToolChain
sudo apt update sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential
- [Optional] If you want to update the SDK, you can run the following commands:
cd ~/pico/pico-sdk git pull git submodule update
Here we use the pico-examples of Raspberry Pi for examples
- Download the examples
cd ~/pico git clone -b master https://github.com/raspberrypi/pico-examples.git
- Create build directory for Blink example
cd ~/pico/pico-examples mkdir build cd build
- Set the PICO_SDK_PATH
- Note that the path of the SDK maybe different according to the directory you saved
- If you follow this guide step by step, the relative path of the SDK should be ../../pico-sdk and the absolute path should be ~/pico/pico-sdk
- If you change the path of the sdk, please use the correct path
- Build the example
cmake .. make -j4
- After building, a .uf2 file and a .elf file are generated
- Press and hold the BOOTSEL button of the pico and connect it to Raspberry Pi by USB cable
- A portable disk RPI-RP2 is recognized, copy the .uf2 file to the RPi-RP2
- Pico will reboot and run the codes.