Modules are built around off-the-shelf boards (primarily Waveshare ESP32-S3 variants) with custom mechanical assembly. Custom PCBs are designed in KiCAD only when no off-the-shelf option meets the requirement — at present the Tapper 8-button control panel is the sole module that requires one. Firmware is written in C using ESP-IDF, and modules communicate over a 500 kbps CAN bus. The fleet covers vehicle power distribution and monitoring, GNSS positioning, environmental sensing, trailer monitoring, MPPT solar charge controller integration, water tank sensing, cabinet and door sensors, vehicle leveling, thermostat and heater control, multi-button control panels, relay switching with digital inputs, and wall-mounted, in-vehicle, and remote touchscreen displays.
Headwaters is a Dockerized compute platform that runs on a Raspberry Pi CM5 (or Radxa Dragon Q6A) inside the vehicle. It orchestrates Mosquitto MQTT, MongoDB, a tile server, JavaScript CAN-to-MQTT and cloud-bridge services, and a MapLibre-based frontend. It aggregates sensor data, serves local dashboards with offline map tiles, and synchronizes selectively with cloud services when connectivity is available. Buildroot provides a custom Linux SD card image for the Raspberry Pi target.
Peregrine is a fully offline voice assistant running on a Radxa Dragon Q6A. It chains wake word detection, speech-to-text, a local LLM, and text-to-speech into an entirely local pipeline, with MQTT integration for device control.
The mobile experience is a progressive web application — a vanilla-JavaScript single-page app served by nginx, with a service worker, web manifest, and MapLibre maps. It installs from any browser on iOS or Android with no account, no email address, and no app-store gatekeeper. The same PWA runs on-vehicle from Headwaters and is also hosted in the cloud for optional remote access and fleet-level visibility, backed by a Node.js + Express + MongoDB stack that bridges MQTT and WebSockets. A companion native Android application, distributed as a directly-installable APK, is available for users who prefer a native shell — under the same no-signup, no-tracking terms.
Repositories in this organization fall into five groups. Browse the repository list for the full inventory — each repo's README covers its scope, hardware, and setup.
- Hardware Modules — Individual ESP32-based boards for a specific vehicle function (sensing, switching, display, or gateway). Each module is an independent unit with its own firmware and communicates over CAN.
- Edge Compute — The in-vehicle Dockerized gateway (Headwaters), its Buildroot base image, and the touchscreen dashboards and control panels that live on the vehicle network. The PWA frontend ships as part of Headwaters.
- Cloud & Mobile — The cloud-hosted deployment of the PWA and backend for remote access and fleet visibility, plus the native Android APK build.
- Shared Libraries — Reusable ESP-IDF components (CAN driver, OTA update, RGB LED, debug utilities) and the KiCAD symbol, footprint, and 3D model library shared across all hardware designs.
- Documentation & Shared Assets — Architecture guides, protocol references (CAN DBC, MQTT topics), the shared CAD file library, and the master BOM.
Modular by default. Each module is an independent unit with its own firmware, communicating over standardized protocols. Swap, add, or remove modules without redesigning the system.
Off-the-shelf first. Custom PCBs are only designed when no commodity board meets the requirement. This keeps overall system cost down and reduces the maintenance surface.
Hardware meets software rigor. PCB designs, firmware, and cloud services all follow the same standards: version controlled, documented, and reproducible.
No vendor lock-in. Standard protocols (CAN bus, MQTT, HTTP), commodity hardware (ESP32 family, Raspberry Pi, Radxa), and open-source tooling (KiCAD, ESP-IDF, Docker) throughout.
No sign-up, no tracking. Mobile access ships as a PWA that installs from any browser on any platform, and the native Android build is distributed as a direct-install APK — no app store account, no email address, no telemetry required to use the system.
Security as a constraint, not an afterthought. Secrets management, OTA update verification, and transport encryption are built into the architecture from the start.
Each repository includes its own README with setup instructions. For a system-level overview and protocol references, start with the Documentation repository. For the edge computing platform and the PWA source, see Headwaters. For the Raspberry Pi base image, see BuildRoot. For hardware designs, browse the individual module repositories and reference KiCADLibraries and CommonCADFiles for shared assets.
- Firmware development: ESP-IDF toolchain
- Edge gateway: Docker, Docker Compose, Raspberry Pi CM5 or Radxa Dragon Q6A
- Base image: Buildroot
- Cloud services: Node.js, MongoDB, Mosquitto
- Hardware design: KiCAD 8+
- Mobile: Any modern browser to install the PWA; Android Studio (Kotlin) for the optional native build
Contributions are welcome. Whether it's improving documentation, fixing bugs, adding features, or designing new hardware modules, open an issue or submit a pull request.
Individual repositories specify their own licenses. See each repository's LICENSE file for details.