Skip to the content
4 layers50.2 × 72.4 mmRaceTracker, the printed circuit board in 3D

Custom PCB data logger for motorcycle racing: GPS position + IMU motion data, logged to a microSD card, with an e-Paper status display. Built around an ESP32-S3 (WiFi/BT built in) so it can also stream/sync over WiFi.

Size
50.2 × 72.4 mm
Copper layers
4
Thickness
1.6 mm
Parts
135
Nets
101
Pads
578
Tracks, vias
2,200, 158
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Aug 2026
Updated
18 Sep 2026

Overview

RaceTracker is an open-source printed circuit board by jonaschramm, from the jonaschramm/race-tracker repository on GitHub. It is a 4-layer board of 50.2 × 72.4 mm with 135 parts on 101 nets, routed with 2,200 tracks and 158 vias.

It is built around the NINA-W102-01B, BQ24195LRGE and MF-FSMF050X-2, with the PMEG6020ER, BLM18PG471SN1 and BSS138PS among its other parts. Its parts include 52 resistors, 39 capacitors, 8 diodes, 7 ICs and 5 connectors. It belongs with the radio and wireless boards of this library.

Main components

7

README

README.md

RaceTracker

Custom PCB data logger for motorcycle racing: GPS position + IMU motion data, logged to a microSD card, with an e-Paper status display. Built around an ESP32-S3 (WiFi/BT built in) so it can also stream/sync over WiFi.

Current version: V3 (ESP32-S3)

This is the active, current board. Everything else in this repo (see History / older versions below) is superseded — kept for reference only, not under active development.

text
RaceTracker.kicad_prj/V3 ESP32/RaceTracker_v3/RaceTracker_v3.kicad_pro

Open that project file in KiCad (10.0.5 or newer) — schematic (RaceTracker_v3.kicad_sch) and PCB (RaceTracker_v3.kicad_pcb) are alongside it.

Status

  • Schematic: ERC clean (0 violations).
  • PCB: fully routed by hand, kicad-cli pcb drc --severity-all → 0 errors (a handful of expected warnings only — see below).
  • Board: 4-layer, ~56×66mm with rounded corner bosses for 4× M2 mounting holes.
  • BOM: all 44 parts have a manufacturer part number and LCSC code (or DigiKey, where LCSC doesn't carry the part) in the schematic symbol properties — see bom/bom.csv.

Known, expected DRC warnings (not bugs):

  • lib_footprint_mismatch on J1, J5, J6, SW1, U1 — these footprints were deliberately hand-adjusted to match real component pad geometry (pulled from the parts' own datasheets/reference designs) rather than the stock KiCad library footprint. Do not run "Update Footprint from Library" on these — it would silently overwrite the verified geometry.

Key components

FunctionPart
MCU (WiFi + BT)ESP32-S3-WROOM-1-N8 (U1)
IMU (6-axis)Würth WSEN-ISDS (U4)
GPSexternal module via J3 (2.54mm header, I2C) — no onboard GPS
StoragemicroSD (J4)
Displaye-Paper via J6 (8-pin header)
ChargingMCP73831 Li-Ion charger (U2) + USB-C (J1)
3.3V railAP2112K-3.3 LDO (U3)
DebugUART via J5 (4-pin header)

Pin-header connectors (J3, J5, J6) have their pin functions silkscreened next to each pin so nothing gets miswired when the board is in hand without the schematic open.

3D preview

RaceTracker V3 - component side RaceTracker V3 - logo side

Rendered straight from the board file (kicad-cli pcb render). A ready-to-embed, interactive 3D model (quantized GLB, 3.4 MB — Draco was tried first but needs an external decoder that not every embedding context can reach) lives at RaceTracker.kicad_prj/V3 ESP32/RaceTracker_v3/3d/RaceTracker_v3.glb — drop it into a <model-viewer> tag on any webpage to let visitors spin the board around (also works in AR on phones). More stills in assets/renders/.

Open items

Not yet done — flagging so nothing is assumed finished:

  1. RF review — the ESP32-S3's on-board antenna keepout is respected on the PCB, but nobody with hands-on RF experience has reviewed the placement. Espressif's own guideline calls for ≥15mm clearance between the antenna and any metal (enclosure, shielding) — the two mounting holes closest to the antenna (top-left/top-right) are only ~3mm away, so use nylon/plastic M2 screws there, not metal.
  2. Enclosure / mechanical design — no current mechanical spec for a case; board dimensions have changed several times, don't reuse an old one.
  3. 3D models / "finished" 3D view — not started.
  4. Two BOM values are assumptions, not confirmed: D2/D3 LED colors (set to red/green — schematic didn't specify a color) and SW1's exact MPN (couldn't verify its physical dimensions against the datasheet).
  5. 27 pads show as "no net" against the schematic's auto-generated placeholder nets — reviewed at a glance as genuinely-unused pins (GPIO headroom, USB SBU lines), not individually re-verified.

Repo layout

text
RaceTracker.kicad_prj/
├── *.kicad_sch, RaceTracker.kicad_pcb   ← V1 (SAMD21 + onboard GPS/WiFi modules) — historical
├── V3 ESP32/RaceTracker_v3/             ← V3 (ESP32-S3) — CURRENT, see above
└── V3 ESP32/tools/                      ← pcbnew scripting helpers used while building V3
v2-simple/                                ← V2 (SAMD21, simplified, external GPS/WiFi) — abandoned mid-layout, superseded by V3
reference/eagle/                          ← imported Eagle symbols (Arduino MKR WiFi 1010) used as a source for V1/V2 parts
bom/bom.csv                               ← current BOM with MPN/LCSC/pricing data (V3)

History / older versions

  • V1 (RaceTracker.kicad_prj/*.kicad_sch at the repo root, tag v1-full): original design — Arduino MKR WiFi 1010 (SAMD21) + separate u-blox ZED-F9P RTK GPS module + MPU-6050 IMU. Fully routed, but heavier and pricier than needed for the actual use case.
  • V2 / v2-simple: a pivot to drop the onboard GPS/WiFi modules in favor of external pluggable headers, still on the SAMD21. Placement-only; routing was never finished before the project moved to V3's ESP32-S3 (which has WiFi/BT built in, removing the need for a separate radio module entirely). Kept for reference; not maintained.

Branches

main tracks the current state (V3). Historical exploration happened on v2-simple — merged into main and not separately maintained going forward.

Parts

135
QtyValueFootprintReferences
11100nC_0402_1005MetricC2, C6, C7, C8, C9, C17, C18, C21, C23, C24, C40
81kR_0402_1005MetricR4, R44, R45, R46, R105, R111, R112, R113
8330RR_0402_1005MetricR3, R6, R15, R23, R28, R34, R35, R36
710kR_0402_1005MetricR5, R7, R21, R24, R25, R26, R29
61uC_0402_1005MetricC14, C22, C25, C26, C32, C33
50RR_0402_1005MetricR12, R17, R18, R20, R22
4100kR_0402_1005MetricR10, R11, R16, R19
410uC_0603_1608MetricC12, C13, C19, C20
433R_0402_1005MetricR114, R121, R124, R125
4MountingHole_2.2mm_M2MountingHole_2.2mm_M2MH1, MH2, MH3, MH4
20.1uFC_0402_1005MetricC105, C107
21.0uFC_0402_1005MetricC103, C104
220pC_0402_1005MetricC3, C4
22N7002SOTFL50P160X78-3Q1, Q3
24k7R_0402_1005MetricR13, R14
24u7C_0402_1005MetricC5, C16
2MFFSMF050Fuse_0603_1608MetricF1, F2
2PMEG6020SODFL3517X110ND2, D3
10.5A/40V/420mVSODFL3517X110ND102
1100n (REGOUT)C_0402_1005MetricC41
1100n (SD)C_0402_1005MetricC44
1100n (e-Paper)C_0402_1005MetricC45
110k (Card-Detect)R_0402_1005MetricR43
110k (SD_CS Pullup)R_0402_1005MetricR40
110k (SD_DAT1)R_0402_1005MetricR41
110k (SD_DAT2)R_0402_1005MetricR42
110u (SD)C_0603_1608MetricC43
1120NHL_0402_1005MetricFB101
11MR_0402_1005MetricR1
11M2R_0402_1005MetricR9
11uF VBUS decouplingC_0402_1005MetricC34
12k2 SCLR_0402_1005MetricR107
12k2 SDAR_0402_1005MetricR108
12n2 (CPOUT)C_0402_1005MetricC42
12u2SRP4020L2
132768HzABS07_CRYSTALY1
1330kR_0402_1005MetricR8
1390RR_0402_1005MetricR27
139R SWD nRESETR_0402_1005MetricR2
147nC_0402_1005MetricC15
147pFC_0402_1005MetricC101
14n7C_0805_2012MetricC1
14u7C_0603_1608MetricC27
15k1 CC1R_0402_1005MetricR37
15k1 CC2R_0402_1005MetricR38
15k49R_0402_1005MetricR30
1AP2112K-3.3 -> +3V3SOT25U6
1AP2112K-3.3 -> +3V3DSOT25U3
1BLM18PG471L_0603_1608MetricL3
1BQ24195LQFN24_BQ24195LU5
1BSS138PSSOT363Q5
1D21G18QFN48_SAMD21G18AU1
1LiPoJST_S2B_PH_SM4_TBJ7
1ML414H BackupML414H_COIN_CELLB101
1MPU-6050 (I2C 0x68)InvenSense_QFN-24_4x4mm_P0.5mmU7
1MicroSDmicroSD_HC_Molex_104031-0811J10
1NINA-W102NINA_W1X_MODULEU2
1PESD5V0S1BA TVS VBUSD_SOD-323D4
1PRTR5VSOT143B_4ND1
1RGB StatusRGBLED_5050DL4
1ResetPTS820_NO_HOLESPB1
1SIA817SON65P205X205X75-8N-MWSDQ2
1SMA GPS-AntenneSMA_EDGEE101
1SWD-ProgrammierheaderPinHeader_1x05_P2.54mm_VerticalJ12
1USB-C SinkUSB_C_Receptacle_HRO_TYPE-C-31-M-12J1
1ZED-F9P RTK GNSSZED_F9P_LGA102U103
1blau AufnahmeLED_0603_AKDL11
1blau GeofenceLED_0603_AKD104
1e-Paper (steckbar, Debug)PinHeader_1x08_P2.54mm_VerticalJ11
1gelb PA20LED_0603_AKDL1
1gelb PPSLED_0603_AKD101
1gruen GPS-FixLED_0603_AKDL10
1gruen RTKLED_0603_AKD103
1gruen USBLED_0603_AKDL3
1orange LadenLED_0603_AKDL2
1rot FehlerLED_0603_AKDL12

More from jonaschramm/race-tracker

1
  • 4 layers54 × 63.4 mmRaceTracker v3, the printed circuit board in 3D

    RaceTracker v3

    jonaschramm/race-tracker

    Custom PCB data logger for motorcycle racing: GPS position + IMU motion data, logged to a microSD card, with an e-Paper status display. Built around an ESP32-S3 (WiFi/BT built in) so it can also stream/sync over WiFi.

    49 parts

Similar boards

  • 2 layers61.5 × 25 mmMKRZero V5.0, the printed circuit board in 3D

    MKRZero V5.0

    hulkco/oshwi

    Upload "Oshwi" Badge for OshwDem 2017 a Coruña

    94 parts15
  • 4 layers169.7 × 99.1 mmRemoteLabs supervisor PCB, the printed circuit board in 3D

    RemoteLabs supervisor PCB

    practable/supervisor-pcb

    Allow students to program a remote labs experiment themselves, while protecting hardware from damage due to misfunction

    201 parts
  • 2 layers51 × 60 mmRowing Computer, the printed circuit board in 3D

    Rowing Computer

    set321go/OpenRow

    Open Source Rowing Computer

    59 partsMIT
  • 2 layers47 × 20.7 mmNINA W102 minimal breakout, the printed circuit board in 3D

    NINA W102 minimal breakout

    nobodywasishere/sphinx-pcbdraw

    Sphinx extension for embedding KiCAD board views created with PcbDraw

    20 parts12MIT
  • 2 layers70 × 40 mmMoreE u blox E PEAS, the printed circuit board in 3D

    MoreE u blox E PEAS

    ldab/Node-RED-Energy-Harvesting-dashboard

    Node-RED Energy Harvesting dashboard example, weather forecast, temperature and humidty measurement. MQTT, ESP32, u-blox NINA-W10, HTU21D, IBM Cloud, CloudMQTT

    43 parts11MIT
  • 2 layers31.8 × 56 mmDarkroom tracker, the printed circuit board in 3D

    Darkroom tracker

    Roboy/darkroom_tracker

    pcb for lighthouse tracking

    40 partsBSD-3-Clause
  • 2 layers43 × 35 mmLYFT CTRL, the printed circuit board in 3D

    LYFT CTRL

    mgkoenig/lyft

    LYFT is a sophisticated remote control for your IKEA BEKANT desk.

    43 parts88GPL-3.0

Questions

How big is the RaceTracker PCB?

It measures 50.2 × 72.4 mm and has 4 copper layers, 1.6 mm thick.

What parts does the RaceTracker use?

135 parts, built around the NINA-W102-01B, BQ24195LRGE, MF-FSMF050X-2 and PMEG6020ER. 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 RaceTracker KiCad files?

From the jonaschramm/race-tracker repository on GitHub, at the commit this page was made from: the board is RaceTracker.kicad_prj/RaceTracker.kicad_pcb and its schematic RaceTracker.kicad_prj/GPS.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RaceTracker design in my own project?

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