Skip to the content
PCBKitNew board
2 layers67 × 83 mmLiPad, the printed circuit board in 3D

The LiPad firmware is separated into hardware configuration and keyboard behaviour.

Size
67 × 83 mm
Copper layers
2
Thickness
1.6 mm
Parts
39
Nets
37
Pads
144
Tracks, vias
390, 24
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jul 2026
Updated
18 Jul 2026

Overview

LiPad is an open-source printed circuit board by coolboy17289, from the coolboy17289/LiPad repository on GitHub. It is a 2-layer board of 67 × 83 mm with 39 parts on 37 nets, routed with 390 tracks and 24 vias.

It is built around the SK6812MINI-E. Its parts include 23 diodes, 10 switches and 1 IC. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

LiPad

Features

Hardware

  • Custom-designed PCB
  • Compact macropad layout
  • RP2040-based controller support
  • Mechanical key switches
  • Rotary encoder with push button
  • 14x SK6812 MINI addressable RGB LEDs
  • Custom LED positioning for animations
  • Designed using KiCad

Firmware

LiPad uses:

  • CircuitPython
  • KMK Firmware
  • NeoPixel RGB control

Current firmware features:

  • Programmable key layers
  • Media controls
  • Rotary encoder volume control
  • Encoder button actions
  • RGB lighting effects
  • Idle lighting mode
  • Custom keyboard matrix support

Project Structure

text
LiPad/
├── PCB/
│   ├── KiCad schematic files
│   ├── PCB layout files
│   └── 3D model files
│
├── Code/
│   ├── main.py
│   ├── kb.py
│   ├── code.py
│   └── requirements.txt
│
├── README.md
├── .gitignore
└── .vscode/
    └── settings.json

Firmware

The LiPad firmware is separated into hardware configuration and keyboard behaviour.

code.py

code.py is the CircuitPython startup file.

When the controller powers on, CircuitPython automatically runs this file to start the keyboard firmware.


main.py

main.py contains the main functionality of LiPad.

It controls:

  • Keyboard keymaps
  • Layers
  • Rotary encoder functions
  • Encoder button behaviour
  • RGB lighting effects
  • Idle detection
  • Keyboard events

The main firmware logic is designed to be easy to edit and customise without changing the hardware configuration.


kb.py

kb.py defines the physical hardware of LiPad.

It contains:

  • Matrix row pins
  • Matrix column pins
  • Diode orientation
  • LED configuration
  • LED count
  • LED physical positions

This separation allows the firmware logic to change without needing to rewrite the hardware setup.


Keyboard Layers

LiPad currently includes three layers.

Layer 0 - Main

Default controls:

KeyFunction
Key 1Previous track
Key 2Play/Pause
Key 3Next track

Layer 1 - Utility

Additional shortcuts:

KeyFunction
Key 1Media select
Key 2Calculator
Key 3Windows Run

RGB Lighting

LiPad uses 14 SK6812 MINI addressable RGB LEDs.

The firmware supports multiple lighting modes:

Solid

A breathing effect using the active layer colour.

Rainbow

A moving rainbow animation across the LED layout.

Wave

A wave animation based on the LED positions.

Reactive

A bright reactive lighting mode.

Idle

A low-power animation used when the keyboard has not been used for a period of time.

PCB Design

The PCB for LiPad was designed using KiCad.

The PCB directory contains:

  • Schematic files
  • PCB layout
  • Component footprints
  • 3D model exports
  • Design reports

The design was created with custom placement and routing to support the LiPad layout.

Development

Requirements

Development requires:

  • Linux, Windows, or macOS
  • Python 3
  • Git
  • VS Code recommended
  • CircuitPython compatible controller

Installing Development Tools

Navigate to the firmware folder:

bash
cd Code

Install requirements:

bash
python3 -m pip install -r requirements.txt

Building Firmware

After preparing the CircuitPython controller:

  1. Connect the board through USB
  2. Enter bootloader mode
  3. Copy the firmware files to the CIRCUITPY drive

Required files:

text
CIRCUITPY/
├── code.py
├── main.py
├── kb.py
└── lib/

Future Plans

Possible future improvements:

  • Custom LiPad case
  • OLED display support
  • More programmable layers
  • Configuration software
  • VIA/Vial compatibility
  • Wireless support
  • Improved RGB effects
  • Build documentation
  • Manufacturing files

Contributing

Contributions are welcome.

If you would like to improve LiPad:

  1. Fork the repository
  2. Create a new branch

License

LiPad is an open-source hardware and firmware project.

License information will be added before the first official release.

Author

Created by Lihan Badenhorst

Project: LiPad

Parts

39
QtyValueFootprintReferences
14SK6812MINILED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mmD10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23
9DDiode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
9SW_Push_45degButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
43.2mm_M3MountingHole:MountingHole_3.2mm_M3HOLE1, HOLE2, HOLE3, HOLE4
1LOGOimgs:memeG***
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW10
1XIAO-RP2040-DIPfootprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1

Questions

How big is the LiPad PCB?

It measures 67 × 83 mm and has 2 copper layers, 1.6 mm thick.

What parts does the LiPad use?

39 parts, built around the SK6812MINI-E. 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 LiPad KiCad files?

From the coolboy17289/LiPad repository on GitHub, at the commit this page was made from: the board is PCB/LiPad.kicad_pcb and its schematic PCB/LiPad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the LiPad design in my own project?

Its repository states no licence, so its author keeps all rights: ask coolboy17289 before reusing the design.

Similar boards

  • 4 layers234 × 84 mmMain panel, the printed circuit board in 3D

    Main panel

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    234 parts3kApache-2.0
  • 4 layers180.8 × 300.3 mmDilemma, the printed circuit board in 3D

    Dilemma

    Bastardkb/Dilemma

    The Dilemma is a vertical stagger low-profile keyboard with mods.

    383 parts590
  • 4 layers48 × 32 mmFlatSat, the printed circuit board in 3D

    FlatSat

    Pwnsat/FlatSat

    Flatsat v1.0 is a hardware based platform for aerospace cybersecurity research

    106 parts575GPL-2.0
  • 2 layersDemo, the printed circuit board in 3D

    Demo

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    48 parts547GPL-3.0
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    62 parts517GPL-2.0
  • 4 layers82.5 × 39.4 mmV4head, the printed circuit board in 3D

    V4head

    makerforgetech/modular-biped

    An open source framework for creating a bipedal modular companion robot.

    26 parts493GPL-3.0
  • 2 layers115.7 × 95.7 mmFifi split keeb, the printed circuit board in 3D

    Fifi split keeb

    raychengy/fifi_split_keeb

    Fifi Keyboard 🐶 ⌨️

    66 parts334
  • 4 layers70 × 54 mmPicoLab, the printed circuit board in 3D

    PicoLab

    CoretechR/PicoLab

    Web-GUI Embedded Multitool

    285 parts327GPL-3.0