Imported from GitHub: AndyHanDev/Time-Machine · commit 14b7017 · license MIT
Description
A custom Macropad
README
Time-Machine
Deceptively small macropad (could fit in your palm)
Time Machine is a KMK-powered, 6-key + Rotary Encoder, OLED display, Macropad with underglow lighting.
KMK firmware for the custom Hackpad
Features
* Constants at the top define which matrix key does what—easy to tweak later.
* A sleep toggle (OLED off, inputs ignored until woken).
* EC11 rotary encoder (GP8=A, GP9=B, GP10=SW)
* Short‑press once → enter **Timer‑Setup** mode
* Turn knob → cycle through preset durations
(1, 5, 10, 15, 20, 30, 40 minutes)
* Short‑press again → start the countdown
* 0.91″ SSD1306 OLED (I²C on GP6=SDA, GP7=SCL)
* Shows selected duration or live progress bar + remaining time
* 3× SK6812 LEDs daisy‑chained on GP5 (optional flash on timer end)
* Stores a persistent points counter in /points.txt and flashes the LEDs:
* +1 → yellow flash
* +2 → purple for 1 minute
* negative actions → blue flash
* Two under‑glow LEDs stay dim green whenever no other colour is flashing.
Requires:
- CircuitPython ≥ 9.0 or RP2040‑UF2 w/ displayio support
adafruit_displayio_ssd1306andadafruit_display_textlibraries in /lib- KMK (copy kmk/ into CIRCUITPY drive)
Save this file as code.py or main.py on the XIAO‑RP2040.
Design
This was my first time doing a hardware project! Thanks to all the friends that I bugged constantly :P
PCB
I learned how to use a matrix to get all my features onto the XIAO microcontroller perfectly
The schematic and the PCB were made in KiCad
Case
First time CADing too! It ain't much, but it's honest work.
Case was made using Autodesk Fusion
Firmware
Time Machine was made with custom-coded firmware written with the KMK library in Python
BOM
*6 cans of redbull not included
Electronics
- 1x XIAO RP2040
- 1x EC11E Rotary Encoder (with switch)
- 1x Rotary Encoder Knob
- 1x 0.91" OLED Display
- 6x Cherry MX Switches
- 6x Blank DSA Keycaps
- 6x Diode (THT)
- 3x SK6812 Mini LEDs
- 1x 330 Ohm Resistor
Case
- 1x case_top.stl
- 1x case_plt.stl
- 1x case_btm.stl
- 3x M3x16 screw
- 4x 10mm Rubber Feet
- 3x M3x5x4mm heatset inserts
No comments yet. Be the first to ask about this board.