
USB Baseboard
timohueser/OpenBikeComputer
Open source Bikecomputer with a focus on exploration and adventure.

Open source Bikecomputer with a focus on exploration and adventure.
OBC PCB is an open-source printed circuit board by timohueser, from the timohueser/OpenBikeComputer repository on GitHub, published under the GPL-3.0 licence. It is an 8-layer board of 42.2 × 67.2 mm with 186 parts on 140 nets, routed with 182 tracks and 23 vias.
It is built around the BMP581, LIS2MDL and DM3CS-SF, with the BMA400, RC0402JR-070RL and RC0201FR-07100RL among its other parts. Its parts include 61 resistors, 53 capacitors, 10 inductors, 7 connectors and 5 ICs.
Open OBC_PCB.kicad_pro in KiCad 10. Keep the project library tables with the files.
Run electrical checks from this directory:
kicad-cli sch erc --format json -o /tmp/obc-erc.json OBC_PCB.kicad_sch
kicad-cli pcb drc --schematic-parity --format json -o /tmp/obc-drc.json OBC_PCB.kicad_pcbThis table describes the main PCB. The firmware README
describes the development kit. Port the firmware pin assignments before running it on this board.
LCD_*_MCU is the net between U6 and its source resistor; LCD_* continues to J1.
| Device | Pad | GPIO | Signal | Connection |
|---|---|---|---|---|
| U6 | 1 | P2.01 | SD_CLK | R9, 33 Ω at U6; fixed SD pin |
| U6 | 2 | P2.02 | SD_D0 | Fixed SD pin |
| U6 | 3 | P2.03 | SD_D2 | Fixed SD pin |
| U6 | 4 | P2.04 | SD_D1 | Fixed SD pin |
| U6 | 5 | P2.05 | SD_CMD | Fixed SD pin |
| U6 | 7 | P1.29 | COM_SOURCE | |
| U6 | 8 | P1.30 | LCD_R0 | R69, 100 Ω at U6 |
| U6 | 9 | P1.31 | LCD_R1 | R70, 100 Ω at U6 |
| U6 | 10 | P1.00 | BUZZER_PWM | |
| U6 | 11 | P1.01 | LCD_GSP | R77, 220 Ω at U6 |
| U6 | 12 | P1.02 | LCD_GEN | R78, 220 Ω at U6 |
| U6 | 13 | P1.03 | LCD_BSP | R80, 220 Ω at U6 |
| U6 | 14 | P1.04 | LCD_GCK | R76, 220 Ω at U6 |
| U6 | 15 | P1.05 | LCD_BCK | R75, 100 Ω at U6 |
| U6 | 16 | P1.06 | LCD_G0 | R71, 100 Ω at U6 |
| U6 | 22 | P1.07 | LCD_G1 | R72, 100 Ω at U6 |
| U6 | 23 | P1.08 | LCD_B0 | R73, 100 Ω at U6 |
| U6 | 24 | P1.09 | LCD_B1 | R74, 100 Ω at U6 |
| U6 | 25 | P0.03 | GPS_TXD | UARTE30 RX (module TX) |
| U6 | 26 | P0.04 | BTN_SELECT | GPIO SENSE wake |
| U6 | 27 | P0.06 | BTN_NEXT | GPIO SENSE wake |
| U6 | 28 | P0.07 | BTN_BACK | GPIO SENSE wake |
| U6 | 29 | P0.08 | PMIC_INT | |
| U6 | 30 | P0.09 | GPS_RXD | UARTE30 TX (module RX) |
| U6 | 39 | P1.15 | BTN_PREV | GPIO SENSE wake |
| U6 | 40 | P1.16 | SDA | TWIM22 data |
| U6 | 41 | P1.18 | SCL | TWIM22 clock pin |
| U6 | 47 | P1.19 | ACC_INT1 | GPIO SENSE wake |
| U6 | 50 | P1.24 | LCD_INTB | R79, 220 Ω at U6 |
| U6 | 52 | P2.00 | SD_D3 | Fixed SD pin |
| U2 | 7 | GPIO0 | DISP_5V_EN | |
| U2 | 8 | GPIO1 | PMIC_INT | |
| U2 | 9 | GPIO2 | COM_EN | |
| U2 | 10 | GPIO3 | LOUD | |
| U2 | 11 | GPIO4 | DISP_DISCHARGE |
Use standard drive for the LCD outputs. Disable NFC through NFCT.PADCONFIG before
using GSP and GEN. Keep both low during reset. Set SCL and SDA on the same port.
Configure the crystal load capacitors and the internal DC/DC converter before use.
Program the bootloader through J5 before fitting the display.
For the LCD, measure 10–90% rise and fall times at J1. Target 25 ns or less; the panel limit is 50 ns. The resistor values are initial values for board testing. Check the image and GNSS reception while the display refreshes.
See Nordic's port capabilities, clock-pin rules and GPIO electrical specification.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 100k | Resistor_SMD:R_0402_1005Metric | R42, R44, R45, R47, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61, R62 +1 |
| 17 | 100n | Capacitor_SMD:C_0402_1005Metric | C16, C17, C22, C23, C24, C29, C30, C33, C34, C35, C36, C37, C38, C43, C52, C53 +1 |
| 7 | 0R | Resistor_SMD:R_0402_1005Metric | R1, R26, R27, R35, R39, R40, R50 |
| 7 | 100 | Resistor_SMD:R_0201_0603Metric | R69, R70, R71, R72, R73, R74, R75 |
| 7 | 47k | Resistor_SMD:R_0402_1005Metric | R28, R29, R30, R31, R32, R34, R46 |
| 6 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C2, C3, C4, C5, C8 |
| 6 | Fiducial_1mm_Mask2mm | Fiducial:Fiducial_1mm_Mask2mm | FID1, FID2, FID3, FID4, FID5, FID6 |
| 5 | 1u | Capacitor_SMD:C_0603_1608Metric | C6, C14, C20, C44, C54 |
| 5 | 220 | Resistor_SMD:R_0201_0603Metric | R76, R77, R78, R79, R80 |
| 4 | 2.2u | Capacitor_SMD:C_0603_1608Metric | C15, C39, C40, C49 |
| 4 | Cradle 4.2x1.6mm NPTH | H3, H4, H5, H6 | |
| 4 | Fiducial_0.5mm_Mask1mm | Fiducial:Fiducial_0.5mm_Mask1mm | FID7, FID8, FID9, FID10 |
| 3 | 2.2uH | obc:Wurth_74404024022_2.5x2.0mm | L1, L2, L5 |
| 3 | 470R | Resistor_SMD:R_0402_1005Metric | R33, R41, R43 |
| 3 | tune (C0G) | Capacitor_SMD:C_0402_1005Metric | C47, C48, C50 |
| 2 | 1.8mm NPTH | H1, H2 | |
| 2 | 10u | Capacitor_SMD:C_0603_1608Metric | C41, C51 |
| 2 | 150R | Resistor_SMD:R_0402_1005Metric | R48, R49 |
| 2 | 2.2u | Capacitor_SMD:C_0402_1005Metric | C11, C28 |
| 2 | 22u | Capacitor_SMD:C_0805_2012Metric | C9, C10 |
| 2 | 4.7k | Resistor_SMD:R_0402_1005Metric | R23, R24 |
| 2 | BMI-S-202-F-20-R | obc:Laird_BMI-S-202-F-20_16.5mm | SH1, SH2 |
| 2 | RF coax pads | obc:RF_Coax_Solder_GSG | J7, J8 |
| 1 | +3V2 | TestPoint:TestPoint_Pad_D1.0mm | TP5 |
| 1 | +3V2_GPS | TestPoint:TestPoint_Pad_D1.0mm | TP7 |
| 1 | +3V3_SD | TestPoint:TestPoint_Pad_D1.0mm | TP8 |
| 1 | +5V_DISP | TestPoint:TestPoint_Pad_D1.0mm | TP10 |
| 1 | 1.0nH | obc:L_Nordic_0201_0603Metric | L6 |
| 1 | 1.2p | obc:C_Nordic_0201_0603Metric | C45 |
| 1 | 1.5p | obc:C_Nordic_0201_0603Metric | C46 |
| 1 | 10.5k | Resistor_SMD:R_0201_0603Metric | R64 |
| 1 | 10k | Resistor_SMD:R_0402_1005Metric | R20 |
| 1 | 10p | Capacitor_SMD:C_0201_0603Metric | C27 |
| 1 | 10u | Capacitor_SMD:C_0402_1005Metric | C21 |
| 1 | 120R | obc:L_Nordic_0201_0603Metric | L4 |
| 1 | 150k | Resistor_SMD:R_0402_1005Metric | R2 |
| 1 | 1M | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 1S Li-Po | obc:JST_ACH_2pin | J4 |
| 1 | 1k | Resistor_SMD:R_0201_0603Metric | R68 |
| 1 | 1k | Resistor_SMD:R_0402_1005Metric | R66 |
| 1 | 1p | obc:C_Nordic_0201_0603Metric | C13 |
| 1 | 2.2R | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 2.2u | obc:C_Nordic_0201_0603Metric | C25 |
| 1 | 200R | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 220n | Capacitor_SMD:C_0402_1005Metric | C42 |
| 1 | 3.3nH | obc:L_Nordic_0201_0603Metric | L10 |
| 1 | 3.6nH | obc:L_Nordic_0201_0603Metric | L8 |
| 1 | 3.9nH | Inductor_SMD:L_0402_1005Metric | L7 |
| 1 | 3.9p | obc:C_Nordic_0201_0603Metric | C55 |
| 1 | 32.768kHz | Crystal:Crystal_SMD_2012-2Pin_2.0x1.2mm | Y3 |
| 1 | 32MHz | Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mm | Y1 |
| 1 | 33R | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | 36.5k | Resistor_SMD:R_0402_1005Metric | R63 |
| 1 | 36.5k | Resistor_SMD:R_0201_0603Metric | R65 |
| 1 | 4.3p | Capacitor_SMD:C_0201_0603Metric | C32 |
| 1 | 4.7nH | obc:L_Nordic_0201_0603Metric | L9 |
| 1 | 4.7u | Capacitor_SMD:C_0402_1005Metric | C26 |
| 1 | 4.7u | obc:C_Nordic_0201_0603Metric | C12 |
| 1 | 4.7uH | Inductor_SMD:L_0603_1608Metric | L3 |
| 1 | 47p | Capacitor_SMD:C_0201_0603Metric | C31 |
| 1 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | BACK | obc:TL1016AAF220QG | SW4 |
| 1 | BACKLIGHT A/K - PROVISIONAL SOLDER | obc:Backlight_Flex_Solder_2_P1.8mm_Provisional | J6 |
| 1 | BAS40-7-F | Package_TO_SOT_SMD:SOT-23 | D1 |
| 1 | BMA400 | obc:QFN_BMA400_BOS | U3 |
| 1 | BMP581 | obc:BMP581 | U5 |
| 1 | COM_SOURCE | TestPoint:TestPoint_Pad_D1.0mm | TP9 |
| 1 | CPT-9019A-SMT-TR | obc:CPT-9019A-SMT-TR | BZ1 |
| 1 | DM3CS-SF | obc:HRS_DM3CS-SF | J2 |
| 1 | FH34SRJ-12S-0.5SH(50) | obc:Hirose_FH34SRJ_12S_0.5SH | J3 |
| 1 | GGBLA.125.A | obc:Taoglas_GGBLA125A_10x3.2mm_Corner | ANT1 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP6 |
| 1 | LIS2MDL | Package_LGA:LGA-12_2x2mm_P0.5mm | U4 |
| 1 | LP5810BDSDR | obc:LP5810_DSD0008B | U9 |
| 1 | LS021B7DD02 | obc:5035662102 | J1 |
| 1 | MAX-F11N | obc:ublox_MAX_F11N_Provisional | U1 |
| 1 | NEXT | obc:TL1016AAF220QG | SW2 |
| 1 | PCB MIFA | RF_Antenna:Texas_SWRA117D_2.4GHz_Right | AE2 |
| 1 | PREV | obc:TL1016AAF220QG | SW1 |
| 1 | SAFEBOOT | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
The 171 most common of 186 parts.

timohueser/OpenBikeComputer
Open source Bikecomputer with a focus on exploration and adventure.

timohueser/OpenBikeComputer
Open source Bikecomputer with a focus on exploration and adventure.

takuhoTech/CelestNavi-Combo
Ready-to-use GNSS+CLAS receiver with integrated loop antenna





efogtech/endgame-trackball-hardware
Because it's cheaper than 4 layers. Yes, seriously.

StuckAtPrototype/AirCube
Works standalone out of the box. Pairs with Home Assistant in minutes. Other platforms are supported through community-contributed extensions.

marceldale/nest-mini-v2-voice
Open voice satellite board for the Google Nest Mini (2nd gen): local Home Assistant voice assistant with ESP32-S3 + XMOS XU316, ESPHome, Voice PE compatible. Open hardware, prototype stage.
It measures 42.2 × 67.2 mm and has 8 copper layers, 1.6 mm thick.
186 parts, built around the BMP581, LIS2MDL, DM3CS-SF and BMA400. 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 timohueser/OpenBikeComputer repository on GitHub, at the commit this page was made from: the board is hardware/projects/OBC_PCB/OBC_PCB.kicad_pcb and its schematic hardware/projects/OBC_Fit_Test/OBC_Fit_Test.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).