Skip to the content
PCBKitNew board
2 layers185 × 60 mmPI keys, the printed circuit board in 3D

ULC - Pico universal light controller with Rasperry Pico

Size
185 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
30
Pads
132
Tracks, vias
270, 5
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
1 Oct 2023
Updated
1 Apr 2026

Overview

PI keys is an open-source printed circuit board by MonkeyCodeMen, from the MonkeyCodeMen/ULC-Pico-C-Code repository on GitHub, published under the MIT licence. It is a 2-layer board of 185 × 60 mm with 33 parts on 30 nets, routed with 270 tracks and 5 vias.

It is built around the PESD5V0L1BA,115-ES. Its parts include 16 switches, 8 resistors, 2 diodes, 2 connectors and 1 capacitor. It belongs with the lEDs and displays boards and the RP2040 boards of this library.

Main components

1

README

README.md

ULC Pico (Universal Light Controller on Raspberry Pico)

All started with the purchasing of Raspberry Pico RP2040 in 2023.

a fascinating dual core processor for less than 5€ (gosh do you know what we have paied for Z80 or 68K when I started with µController) .. congratulation to the raspberry foundation good job

The Arduino IDE beacomes to small for this number files so I changed to Visual Studio Code with PlatformIO .. fascinating all for free .. and the integration of RP2040 from maxgerhardt outstanding .. Thanks a lot

I tried several other things like:

  • Rapberry Pico Debuger
  • Unity test
  • embedded dual core arcitecture With debugging
  • LED stripes, RGB LED Stripes, WS2812B LED stripes, WS2812B LED Matrix
  • SD card
  • Advent calender
  • Real Time Clock
  • SPI Display
  • I2C Slave (Arduino Nano)
  • I2C keyboard
  • GIF animations of WS2812B Matrix
  • advent calendar with gifs Layout Layout

.. I think I show you a picture of the current state: system architecture

I just want to explore how it works and it lead to this .. but it will not be the end, it just reached a state where I decided to make it public to give something back to the community, in the hope it may be usefull for somebody. And don’t forget: always stay curious and persistent. The best way to learn is through mistakes. But only those who try something new and unfamiliar can make mistakes to learn from. Every day without learning something is a lost day.

So, search behind every tree and under very stone for the three-headed monkey, and if you need a boat, just ask for Stan.

The project keeps growing and growing .. I needed a PCB .. I found KiCad : @KiCad Team .. a professional layout tool for free .. great work ...

Layout

there were now a lot of components so I needed a hosuing .. you will not belief there is a free M-CAD tool : freecad

housing

I build all in wood an milled it on my MP CNC (a nice free project for CNC machine please look for it) And this is the final result:

final implementation

and what can I do ?

mainly it control several types of LED (a lot of them)

one example a advent calendar for nurds: final implementation

some more details: final implementation final implementation final implementation


Table of Contents


System architecture

system architecture


Software architecture

software architecture

I staied with the Arduino loop concept and designed the most classes in this manner. This is not suitable for hard real time rqeuirement, but it is easy and with the performance of the two cores of the RP2040 it is amazing what is possible.

But from my experience I use during one loop run a fixed time (now). I freeze this time at the begin of the loop and pass it than to every module that is been called in this loop.

In addition to that I have a favor for the rough concept of state-machine with init run etc...

For more details please refer the comment of the individual classes.

ToDo description to :

  • multi core problems - MUTEX handling

Required Libraries

Below is a list of the libraries or frameworks required for the project to run. Make sure to install them before proceeding.

Many thanks to all the amazing developers of these libraries. Based on this foundation, it is possible to create larger projects like this one with a moderate amount of time. This enables significantly more functionality than would have been achievable by a single person alone.

All Lib's will be installed by PlatformIO based on ini file .. perfect .. @PlatforIO team: outstanding job, i know several professional tools from automobile industry that can not do this !!!!

from Arduino:

  • Arduino base
  • wire
  • spi
  • SD

RP2040 Toolchain

https://github.com/maxgerhardt/platform-raspberrypi.git

form adafruit: Adafruit BusIO @ ^1.16.2

  • RTClib @ ^2.1.4
  • Adafruit NeoMatrix @ ^1.3.3

form bodmer:

  • TFT_eSPI @ ^2.5.43

from kitesurfer1404:

  • WS2812FX @ ^1.4.4 A beautiful and extensive library with many animations for intelligent RGB LEDs. Truly professional and exceptionally impressive work. Thank you so much for making something like this available!

bitbank2:

  • AnimatedGIF @ ^2.1.1 a real handy lib to handle GIF's thanks .. It would have cost me several monthes to do somthing that will be for sure not at this level ... Thanks

robtillaart:

  • CRC @ ^1.0.3

bblanchon:

  • ArduinoJson @ ^7.2.1

@all LIB authors .. great job, please keep up this good work


Installation

Prerequisites

  • SW:
  • install Visual Studio Code
  • in Visual Studio install PlatformIO extension
  • HW:
  • Install Kicad
  • Mechanic:
  • Install freeCad

Steps

  1. clone this project from GitHub (you can use Visual Studio Code interface or download it per WEB interface)
    bash
    git clone https://github.com/MonkeyCodeMen/ULC-Pico-C-Code.git

Configuration

ToDo


Unit Test

ToDo


License

The MIT License (MIT)

Copyright (c) 2024 MonkeyCodeMen@GitHub

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

have fun !!

Parts

33
QtyValueFootprintReferences
16SW_Push_DualButton_Switch_THT:SW_PUSH-12mmSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13, SW14, SW15, SW16
310KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5, R6, R7
20RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4
24K7Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2
2Conn_01x04_MaleConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ1, J2
2PESD5V0L1BA,115Power_Protection_User:Nexperia-SOD323-09_04_2018-0-0D1, D2
1100RResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8
1100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1
1A0Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP3
1A1Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP2
1A2Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1
1MCP23017_SPPackage_DIP:DIP-28_W7.62mmU1

Questions

How big is the PI keys PCB?

It measures 185 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PI keys use?

33 parts, built around the PESD5V0L1BA,115-ES. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PI keys KiCad files?

From the MonkeyCodeMen/ULC-Pico-C-Code repository on GitHub, at the commit this page was made from: the board is PCB/PI-keys/PI-keys.kicad_pcb and its schematic PCB/PI-keys/PI-keys.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PI keys design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from MonkeyCodeMen/ULC-Pico-C-Code

1
  • 2 layers195 × 100 mmPico.Light controller, the printed circuit board in 3D

    Pico.Light controller

    MonkeyCodeMen/ULC-Pico-C-Code

    ULC - Pico universal light controller with Rasperry Pico

    117 parts1MIT

Similar boards

  • 2 layers31.5 × 46.3 mmAirspeed SensorBoard, the printed circuit board in 3D

    Airspeed SensorBoard

    pms67/Airspeed_SensorBoard

    Differential pressure sensor breakout board with STM32 (I2C-to-SPI) interface.

    43 parts17MIT
  • 2 layers52 × 18.5 mmMfi, the printed circuit board in 3D

    Mfi

    signalius/MFI_Chip_Rpi_Hat

    Raspberry pi HAT for MFI chips MFI343S00177 and MFI337S3959

    17 parts13
  • 2 layers113.5 × 35 mmPanthera stm32, the printed circuit board in 3D

    Panthera stm32

    passinglink/pcb

    PCB designs for use with Passing Link

    47 parts4MIT
  • 4 layers164 × 164 mmMidi controller, the printed circuit board in 3D

    Midi controller

    petitechose-midi-studio/hardware

    Open-source hardware design files for the MIDI Studio controller.

    138 parts1
  • 2 layers51 × 46 mmRFAmp, the printed circuit board in 3D

    RFAmp

    signalius/RFAmplifier_GALI-84

    RF Amplifier based on GALI-84 powered from USBC

    35 partsGPL-3.0
  • 2 layers65 × 30 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    33 parts1kGPL-3.0
  • 2 layers127 × 96 mmAmiga gfxcard, the printed circuit board in 3D

    Amiga gfxcard

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    33 parts1k
  • 2 layers92.7 × 58.4 mmHacky holidays, the printed circuit board in 3D

    Hacky holidays

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    33 parts915