Skip to the content
2 layers65 × 120 mmBottom, the printed circuit board in 3D

This repository represents the final version submitted for my Bachelor's Thesis.

Size
65 × 120 mm
Copper layers
2
Thickness
1.6 mm
Parts
52
Nets
55
Pads
167
Tracks, vias
178, 134
Pours
122
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
28 Jul 2025
Updated
4 Jul 2026

Overview

Bottom is an open-source printed circuit board by not-sample-text, from the not-sample-text/Proiect-Licenta repository on GitHub. It is a 2-layer board of 65 × 120 mm with 52 parts on 55 nets, routed with 178 tracks and 134 vias.

It is built around the SK6812MINI-E. Its parts include 22 resistors, 12 capacitors, 10 diodes, 2 ICs and 1 connector.

Main components

1

README

README.md

Repository Archived

This repository represents the final version submitted for my Bachelor's Thesis.

Active development for this project has moved to ApexPad. Please refer to the new repository for the most recent updates, bug fixes, and feature development.


PROS3 Macropad: A Fully-Programmable Custom Mechanical Macropad

The PROS3 Macropad is a versatile, open-source 12-key macropad built around the powerful ESP32-S3. Designed as a university thesis project, it features a rotary encoder, OLED display, RGB underglow, and a complete software ecosystem for deep customization.


Gallery

A collection of renders showcasing the hardware.

Top PlateTop Plate (Angled)
Top PlateTop Plate (Angled)
Top ViewTop (Angled)
Top RenderTop Render (Angled)!
Bottom RenderBottom (Angled)
Bottom RenderBottom Render (Angled)

About The Project

This repository contains the complete engineering files (hardware, firmware, and software) for a highly programmable macropad designed to streamline digital workflows.

The project is built on three pillars:

  1. Hardware: A custom two-part PCB design with a 3D-printable case. It's designed for assembly by hobbyists with through-hole components and hot-swap sockets.
  2. Firmware: Custom C++ code running on the ESP32-S3. It manages input, the OLED display, lighting, and communication with the host computer.
  3. Software Suite: A powerful combination of a static web-based configurator (for visually creating keymaps) and a headless Python-based background daemon (for executing complex OS-level actions via a system tray UI).

This architecture allows the macropad to go beyond simple keystrokes and act as a powerful automation tool.

For a complete technical deep-dive, please see the Full Technical Documentation. (Pentru documentația în limba română, consultați acest document).


Features

  • 12 Hot-Swappable Mechanical Keys: Customize your macropad with any MX-style switches, no soldering required.
  • Rotary Encoder with Push-Button: Perfect for volume control, scrolling through timelines, or cycling through layers.
  • OLED Display: Get real-time feedback on your current layer, connection status, and more.
  • Powerful Layering System: Switch between 4 distinct layers to multiply your available keys.
  • Dual-Mode Actions:
    • HID Mode: Send standard keystrokes and shortcuts that work on any OS without drivers.
    • Host Control Mode: Trigger complex actions on your computer—like launching native apps or executing shell scripts—using the auto-discovering background daemon.
  • Web-Based Configurator: A zero-dependency, browser-based UI for remapping keys, creating macros, and configuring lighting. Features a guided interactive tour and smart JSON export.
  • RGB Underglow: 10 addressable RGB LEDs for brilliant lighting effects, managed by FastLED.
  • Dual Connectivity: Seamlessly switch between a wired USB-C connection and wireless Bluetooth/BLE HID.

Getting Started

  1. Build the Hardware: Use the KiCad files in the hardware/ directory to fabricate the PCBs and source the components from the Bill of Materials.
  2. Flash the Firmware: Use PlatformIO to compile and upload the firmware from the firmware/ directory to the ESP32-S3.
  3. Configure Your Layout: Access the Web Configurator (locally or via GitHub Pages) to design your custom keymaps and export the config.json file to your Downloads folder.
  4. Run the Host Daemon: Download the standalone executable from the Releases page (or run the Python script). It automatically connects to the hardware, detects your config file, and runs invisibly in your system tray to unlock the command and launcher layers.

For a detailed, step-by-step guide, please refer to the Complete User Workflow section in the documentation.


Acknowledgements

This project was made possible by the following open-source projects and communities:

  • ScottoKeebs: For the KiCad libraries and footprints for mechanical keyboards.
  • The Mechanical Keyboard Community: For providing a constant source of inspiration and knowledge.

License

The hardware and software are provided as-is under a permissive license. This project includes components from third-party libraries which are subject to their own licenses. Please see the individual source files for more details.

Parts

52
QtyValueFootprintReferences
120.1uFBottom-Footprints:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
1210kBottom-Footprints:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R21, R22
10220Bottom-Footprints:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR11, R12, R13, R14, R15, R16, R17, R18, R19, R20
10SK6812MINIBottom-Footprints:SK6812-MINI-ED1, D2, D3, D4, D5, D6, D7, D8, D9, D10
4MountingHole_PadMountingHole:MountingHole_2.2mm_M2_DIN965_PadH1, H2, H3, H4
1Conn_01x15_SocketBottom-Footprints:PinSocket_1x15_P2.54mm_VerticalJ1
1LOGOBottom-Footprints:nubcat_24mmG***
1TPS22918DBVRBottom-Footprints:SOT95P280X145-6NIC1
1~Bottom-Footprints:ProS3_THU1

More from not-sample-text/Proiect-Licenta

2
  • 2 layers65 × 120 mmTop, the printed circuit board in 3D

    Top

    not-sample-text/Proiect-Licenta

    This repository represents the final version submitted for my Bachelor's Thesis.

    33 parts1
  • 2 layers65 × 120 mmTop plate, the printed circuit board in 3D

    Top plate

    not-sample-text/Proiect-Licenta

    This repository represents the final version submitted for my Bachelor's Thesis.

    4 parts1

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

Questions

How big is the Bottom PCB?

It measures 65 × 120 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Bottom use?

52 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 Bottom KiCad files?

From the not-sample-text/Proiect-Licenta repository on GitHub, at the commit this page was made from: the board is hardware/pcb/bottom/bottom.kicad_pcb and its schematic hardware/pcb/bottom/bottom.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Bottom design in my own project?

Its repository states no licence, so its author keeps all rights: ask not-sample-text before reusing the design.