Skip to the content
PCBKitNew board
2 layers32 × 30 mmNav3, the printed circuit board in 3D

Open-source modular control platform for functional model vehicles, featuring bidirectional communication, telemetry, and plug-in hardware modules.

Size
32 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
13
Pads
39
Tracks, vias
33, 0
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 Mar 2026
Updated
8 Aug 2026

Overview

Nav3 is an open-source printed circuit board by peterus, from the peterus/OpenDriveHub repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 32 × 30 mm with 12 parts on 13 nets, routed with 33 tracks and 0 vias.

It is built around the PCF8574AT. Its parts include 3 switches, 1 capacitor, 1 IC and 1 connector.

Main components

1

README

README.md

OpenDriveHub

Open-source modular control platform for functional model vehicles (excavators, dump trucks, tractors, and other ground-based RC models).

Features

  • Modular transmitter – plug-in front-panel slots for switches, buttons, potentiometers, and encoders; detected automatically at boot
  • I²C backplane with TCA9548A multiplexer – identical standard I²C devices in every slot, no address conflicts, no MCU needed on modules
  • Always-on bidirectional telemetry – battery voltage, RSSI, link state, and custom sensor values returned from the model
  • ESP32-based firmware using PlatformIO + Arduino + FreeRTOS
  • Modern C++20 – namespace odh, enum class, constexpr, std::optional, RAII wrappers, shared libraries
  • ESP-NOW radio link – low-latency, no router required
  • ILI9341 touch-screen display – 320×240 colour LCD with XPT2046 resistive touch, LVGL widget UI for vehicle selection and live channel monitoring
  • PCA9685 servo driver – I²C-based 16-channel PWM output on the receiver
  • Receiver-initiated discovery – receivers broadcast their presence; the operator selects a vehicle on the transmitter touch screen
  • Vehicle model presets – built-in function-to-channel maps for Generic, Dump Truck, Excavator, Tractor, and Crane models
  • Always-on web configuration – WiFi AP + REST API (ESPAsyncWebServer + ArduinoJson v7) on both transmitter and receiver; starts automatically at boot, no button required; settings stored in ESP32 NVS
  • Linux simulation – full transmitter + receiver simulation on a PC; SDL2 display window, keyboard channel control, UDP radio loopback
  • Open hardware + firmware under GPL-3.0

Repository Structure

text
OpenDriveHub/
├── firmware/                   # Unified PlatformIO project (C++20, namespace odh::)
│   ├── platformio.ini          # Build config for all 5 environments
│   ├── lib/                    # Shared libraries
│   │   ├── odh-protocol/      # Packet definitions & function mapping
│   │   ├── odh-config/        # Compile-time configuration & NVS store
│   │   ├── odh-radio/         # ESP-NOW radio link (TX + RX)
│   │   ├── odh-telemetry/     # Battery monitor & telemetry data
│   │   └── odh-web/           # ESPAsyncWebServer + REST API helpers
│   ├── src/
│   │   ├── receiver/          # Receiver app (OutputManager, PCA9685, ReceiverApi)
│   │   └── transmitter/       # Transmitter app (Modules, Display, TransmitterApi)
│   ├── test/test_native/      # Native unit tests (90 tests, no hardware needed)
│   ├── data/                   # LittleFS web UI (receiver/ and transmitter/)
│   ├── include/                # LVGL & TFT_eSPI build-config headers
│   └── sim/                    # Linux simulation shims (SDL2, UDP, pthreads)
│       ├── include/            # Replacement headers (Arduino.h, esp_now.h, …)
│       └── src/                # Shim implementations
├── hardware/
│   ├── transmitter/            # Transmitter BOM and wiring reference
│   ├── receiver/               # Receiver BOM and wiring reference
│   └── modules/                # Per-module hardware documentation
│       ├── switch/
│       ├── button/

Quick Start

See docs/getting-started.md for full build and flash instructions.

bash
cd firmware

# Flash transmitter
pio run -e transmitter -t upload

# Flash receiver
pio run -e receiver -t upload

# Run host-side unit tests (90 tests)
pio test -e native

Run the simulation (no hardware needed)

bash
cd firmware

# Terminal 1 – receiver
pio run -e sim_rx -t exec

# Terminal 2 – transmitter (headless terminal simulation)
pio run -e sim_tx -t exec

See firmware/sim/README.md for full simulation docs.

Supported Module Types

ModuleI²C DeviceChannels
Switch (toggle)PCF8574 @ 0x208
Button (momentary)PCF8574 @ 0x218
Potentiometer / faderADS1115 @ 0x484
Encoder (absolute)AS5600 @ 0x361

Documentation

License

GPL-3.0 – see LICENSE.

Parts

12
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_2.2mm_M2H101, H102, H103, H104
2Logo_Open_Hardware_SmallSymbol:OSHW-Logo_5.7x6mm_SilkScreenLOGO101, LOGO102
1100nFCapacitor_SMD:C_0805_2012MetricC101
1Conn_01x05Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ101
1PCF8574ATPackage_SO:TSSOP-16_4.4x5mm_P0.65mmU101
1SW_LEFTButton_Switch_THT:SW_PUSH_6mm_H5mmSW101
1SW_MIDButton_Switch_THT:SW_PUSH_6mm_H5mmSW102
1SW_RIGHTButton_Switch_THT:SW_PUSH_6mm_H5mmSW103

Questions

How big is the Nav3 PCB?

It measures 32 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Nav3 use?

12 parts, built around the PCF8574AT. 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 Nav3 KiCad files?

From the peterus/OpenDriveHub repository on GitHub, at the commit this page was made from: the board is hardware/transmitter/pcb/nav3/nav3.kicad_pcb and its schematic hardware/transmitter/pcb/nav3/nav3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Nav3 design in my own project?

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).

Similar boards

  • 2 layers90.3 × 79.8 mmArnav hackpad, the printed circuit board in 3D

    Arnav hackpad

    arnavshah100/arnav-hackpad

    The arnav-hackpad is a mini-keyboard (or macropad) designed to act as an external number pad with navigation and mouse capabilities, too!

    27 parts8MIT
  • 2 layers137 × 63 mmKickad, the printed circuit board in 3D

    Kickad

    eljotx/SDR-TRX-on-ESP32-A1S

    This repository describes an SDR transceiver based on the ESP32 A1S processor, using an ILI9341 color touchscreen display, and a Si5351 oscillator.

    172 parts2
  • 2 layers113 × 86 mmMacroPad, the printed circuit board in 3D

    MacroPad

    Shuri-101/MacroPad

    Macro Pad for use in CAD and general productivity + convenience, mainly for use in CAD...

    57 parts1
  • 2 layers82 × 47.5 mmMechanical Pomodoro Timer, the printed circuit board in 3D

    Mechanical Pomodoro Timer

    CedricL1u/Chronos

    Chronos is a fully mechanical 7‑segment Pomodoro timer and clock that uses cams, servos, and a custom ESP32‑C3 PCB to create a kinetic, alarm‑equipped display that makes focus sessions more engaging.

    41 partsMIT
  • 2 layers153.5 × 112.6 mmESP8266 Wi Fi 16 channel relay module, the printed circuit board in 3D

    ESP8266 Wi Fi 16 channel relay module

    Hirusha785/esp8266-16-channel-relay-module

    ⚡ ESP8266-based 16-channel Wi-Fi relay controller designed in KiCad for IoT, automation, and remote switching applications.

    85 partsMIT
  • 2 layers75 × 55 mmSolar pannel wash controller sub modules, the printed circuit board in 3D

    Solar pannel wash controller sub modules

    koko69420/Solar-Panel-Wash-Controller

    Automated scheduled solar panel washing controller PCB with RTC timing and pump relay actuation in KiCad

    14 parts
  • 2 layers92.1 × 99.4 mmPower Gauge PCB, the printed circuit board in 3D

    Power Gauge PCB

    oct-karim/Mini-Power-Gauge

    A mini power gauge that mesures current and voltage.

    54 parts
  • 2 layers149.5 × 45 mmRadioduino, the printed circuit board in 3D

    Radioduino

    YO3DBZ/Radioduino

    some ardruino code for a reciver based on the SI5351

    58 parts