
MCLZ8 PCB
MicroCoreLabs/Projects
Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.
Fitness Tracker Used in my nonprofit running camp. KiCad Schematics and Code included.
HRCStepTracker is an open-source printed circuit board by darianleo30, from the darianleo30/HRCTracker repository on GitHub. It is a 4-layer board of 65 × 83.5 mm with 6 parts on 37 nets, routed with 25 tracks and 0 vias.
Its parts include 4 ICs, 1 diode and 1 switch. It belongs with the ESP32 and RISC-V boards of this library.
A responsive handheld walking and running cadence tracker built with an ESP32-C5, an MPU9250-series inertial sensor, and a 128×64 SSD1306 OLED.
The tracker measures rhythmic handheld motion, filters out gravity and orientation changes, validates step timing, and displays both the current and average cadence in steps per minute (SPM). An LED provides immediate feedback whenever a step is detected.
During tracking, the OLED shows:
Pauses and rejected hand movements are not included in the average cadence. The average remains available if rhythm lock is temporarily lost.
0x3C or 0x3DThe firmware defaults to the original split-bus wiring below.
| Device | Signal | ESP32-C5 pin |
|---|---|---|
| OLED | SDA | GPIO23 |
| OLED | SCL | GPIO24 |
| MPU | SDA | GPIO25 |
| MPU | SCL | GPIO26 |
| LED | Anode through 220–330 Ω resistor | GPIO2 |
| LED | Cathode | GND |
Connect the ESP32-C5, OLED, and MPU grounds together. Power each module using the voltage supported by the specific breakout board being used.
The ESP32-C5 has one high-performance I²C controller that can be routed to the arbitrary GPIO pins above. The firmware therefore locks the controller during an OLED transfer, selects the OLED pins, transmits one frame, restores the MPU pins, and releases the sensor task. The display refresh is limited to 2 FPS so these interruptions remain short and infrequent.
The MPU is configured directly through its registers. A separate MPU9250 Arduino library is not required.
cadence_tracker_screen_average.ino.The firmware has been compile-tested with the following board identifier:
esp32:esp32:esp32c5If the device moves repeatedly during calibration, the stable calibration window restarts automatically.
The accelerometer magnitude is used so detection does not depend on the orientation of the device. A slow baseline removes gravity and gradual hand orientation changes. Filtered gyroscope motion then corroborates the acceleration signal.
Candidate peaks must satisfy motion-strength, timing, and refractory-period checks. After rhythm lock:
The default values are intended as a balanced starting point for handheld walking and running. Test the tracker before changing them.
Useful constants near the top of the sketch include:
| Constant | Purpose |
|---|---|
SENSOR_PERIOD_MS | Sensor sampling interval |
DISPLAY_PERIOD_MS | OLED refresh interval |
MIN_STEP_INTERVAL_MS | Maximum allowed cadence |
MAX_STEP_INTERVAL_MS | Minimum cadence used while seeking rhythm |
PEAK_TRIGGER_SCORE | Motion strength required to open a candidate peak |
PEAK_RELEASE_SCORE | Hysteresis level used to finish a peak |
For missed real steps, reduce the lower acceleration-threshold clamp slightly.
For false steps caused by ordinary hand movement, increase
PEAK_TRIGGER_SCORE in small increments. Change only one value at a time and
test at multiple walking and running speeds.
KiCad design files for the custom cadence-tracker hardware will be added to this repository. The planned hardware release includes:
.kicad_pro).kicad_sch).kicad_pcb)A recommended repository location is:
hardware/
└── kicad/
├── handheld_cadence_tracker.kicad_pro
├── handheld_cadence_tracker.kicad_sch
└── handheld_cadence_tracker.kicad_pcbUntil those files are uploaded, the wiring table above is the reference for building the prototype.
.
├── cadence_tracker_screen_average.ino
├── README.md
├── hardware/
│ └── kicad/ # KiCad files will be added here
└── docs/ # Optional photos and build notes0x3C or 0x3D; the firmware tries both.OLED not found.Place it on a stable surface or hold it completely still. Sustained movement intentionally restarts calibration.
The tracker needs two plausibly timed motion peaks before rhythm lock. Confirm that the LED responds while walking naturally.
0x68 and 0x69 automatically.No license has been selected yet. Add a LICENSE file before distributing or
accepting contributions if you want to define reuse terms explicitly.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | ESP32-C5-DevKitC-1 | PCM_Espressif:ESP32-C5-DevKitC-1 | U4 |
| 1 | LED | LED_THT:LED_D4.0mm | D2 |
| 1 | SW_Push | Button_Switch_THT:SW_PUSH_6mm_H4.3mm | SW2 |
| 1 | ~ | HRCStepTrackerFootprints:SSD1306 | U5 |
| 1 | ~ | HRCStepTrackerFootprints:TP4056 | U1 |
| 1 | ~ | HRCStepTrackerFootprints:MPU6500 | U6 |
It measures 65 × 83.5 mm and has 4 copper layers, 1.6 mm thick.
6 parts. 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.
From the darianleo30/HRCTracker repository on GitHub, at the commit this page was made from: the board is HRCStepTracker.kicad_pcb and its schematic HRCStepTracker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask darianleo30 before reusing the design.

MicroCoreLabs/Projects
Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.



lucanastasio/PCIexpress-KiCad
PCI express libraries and templates for KiCad

BerkeleyHCI/PolymorphicBlocks
A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

buganini/Kikakuka
Kikakuka — KiCad Workspace, Panelization, Build Variants, Differ & FreeCAD PCB Bending and Assembly

matthuszagh/fmcw
6GHz frequency-modulated continuous-wave radar with real-time range detection

google/myelin-acorn-electron-hardware
Phillip Pearson's retro hardware projects for the Acorn Electron