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

Open source Bikecomputer with a focus on exploration and adventure.
USB Flex 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 a 2-layer board of 29 × 7.7 mm with 2 parts on 6 nets.
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 |
|---|---|---|---|
| 1 | FH12 CONTACT FINGERS | obc:FPC_12_P0.5_FH12_Tail | J2 |
| 1 | FROM USB DAUGHTERBOARD | obc:USB_Flex_Solder_6 | J1 |
It measures 29 × 7.7 mm and has 2 copper layers, 0.11 mm thick.
2 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 timohueser/OpenBikeComputer repository on GitHub, at the commit this page was made from: the board is hardware/projects/USB_Flex/USB_Flex.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).

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

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

hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO


adamws/kicad-kbplacer
KiCad plugin for automatic keyboard's key placement and routing

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

NVNTLabs/switch2-SDEX2M2
Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

BlueSCSI/BlueSCSI-v2
BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

ohmtech-rdi/eurorack-blocks
Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
