How adwuard/trackerkb works
This repository provides a tracker-keyboard product: a physical keyboard/PCB and enclosure designs, plus RP2040 firmware that reads keys and emits USB HID input. The main runtime path is key switches → firmware debounce and key mapping → TinyUSB keyboard handling → host. The README also documents a USB hub linking the keyboard and a Teensy 4.1 tracker, separate tracker firmware, and three enclosure options. Edges reflect the shown firmware calls or documented product relationships; unsampled hardware details are represented only at the documented subsystem level.
Main entry points: Tracker-Keyboard-PCB Keyboard PCB · pico-m8-keyboard.cpp Key scanning and mapping · Print.h Print API · DEV-16771 Teensy tracker
Components 22
Hardware
- Key switches
hardware/Tracker-Keyboard-PCB - Keyboard PCB
hardware/Tracker-Keyboard-PCB - RP2040 MCU
hardware/Tracker-Keyboard-PCB/datasheets_and_footprints/RP2040 - USB hub
hardware/Tracker-Keyboard-PCB - Teensy tracker
hardware/Tracker-Keyboard-PCB/datasheets_and_footprints/DEV-16771 - CNC enclosure
hardware/Enclosure/1_CNC-Case - Acrylic enclosure
hardware/Enclosure/2_Acylic-Case - 3D-printed enclosure
hardware/Enclosure/3_3D-Printed-Case
Keyboard firmware
- Key scanning and mapping
software/src/pico-m8-keyboard.cpp - TinyUSB keyboard HID
software/src/TinyUSB_Mouse_and_Keyboard - USB state callbacks
software/src/includes/usb.h - TinyUSB device config
software/src/includes/tusb_config.h
Firmware support
- CDC compatibility stub
software/src/includes/Adafruit_USBD_CDC-stub.h - Arduino compatibility
software/src/includes/Arduino.h - Print implementation
software/src/Print.cpp - Print API
software/src/includes/Print.h - Printable interface
software/src/includes/Printable.h - String compatibility
software/src/includes/WString.h - Stream compatibility
software/src/includes/Stream.h
Other components
- Keyboard user
- USB host
- Headless tracker firmware
Connections 19
- Keyboard user → Key switches: presses
README.md - Key switches → Key scanning and mapping: GPIO input
software/src/pico-m8-keyboard.cpp - Key scanning and mapping → TinyUSB keyboard HID: presses/releases
software/src/pico-m8-keyboard.cpp - TinyUSB keyboard HID → USB host: sends HID
README.md - Keyboard PCB → RP2040 MCU: hosts MCU
README.md - Keyboard PCB → Key switches: connects switches
README.md - USB hub → Teensy tracker: connects USB
README.md - USB hub → RP2040 MCU: connects USB
README.md - Teensy tracker → Headless tracker firmware: runs firmware
README.md - Key scanning and mapping → USB state callbacks: includes callbacks
software/src/pico-m8-keyboard.cpp - Key scanning and mapping → CDC compatibility stub: includes stub
software/src/pico-m8-keyboard.cpp - Arduino compatibility → Print API: includes API
software/src/includes/Arduino.h - Print implementation → Arduino compatibility: uses compatibility
software/src/Print.cpp - Print API → String compatibility: uses strings
software/src/includes/Print.h - Print API → Printable interface: uses interface
software/src/includes/Print.h - Stream compatibility → Print API: aliases to
software/src/includes/Stream.h - CNC enclosure → Keyboard PCB: encloses assembly
README.md - Acrylic enclosure → Keyboard PCB: encloses assembly
README.md - 3D-printed enclosure → Keyboard PCB: encloses assembly
README.md