Skip to main content
This section covers the RADR firmware, including architecture, development setup, and how to modify or contribute to the codebase.

Firmware Overview

RADR runs on an ESP32-S3 microcontroller with custom firmware written in C++ using the Arduino framework and PlatformIO.

Firmware Version

Check for firmware updates regularly to access new features and device support.

Source Code

The complete firmware source is available on GitHub:

RADR Firmware

Browse the source code and documentation.

Architecture Overview

Main Components

Key Services

Development Environment

Prerequisites

Getting Started

1

Clone the repository

2

Open in VS Code

Open the Software folder in VS Code. PlatformIO will automatically detect the project configuration.
3

Build the firmware

Click the PlatformIO Build button or run:
4

Flash to device

Connect RADR via USB-C and click Upload, or run:

Key Features

Canvas-Based Rendering

RADR uses double-buffered canvas rendering for smooth display updates:
  • Full-screen sprites prevent flickering
  • Partial updates for performance-critical areas
  • Consistent 60fps UI refresh rate

State Machine Architecture

The UI uses a hierarchical state machine:
  • Clear transitions between screens
  • Isolated state logic for each screen
  • Event-driven input handling

Device Registry

RADR supports multiple device types through a two-tier registry: The dynamic registry (registry.json) can be updated via firmware updates to add new device support without code changes.

Configuration Files

Technical Reference

Web Flasher

Flash firmware using the web-based tool.

BLE Communication

Bluetooth protocol details and device communication.

Contributing

We welcome contributions to the RADR firmware. Before contributing:
  1. Read the contribution guidelines
  2. Join the Kinky Makers Discord to discuss changes
  3. Submit pull requests against the main branch

Code Style

  • Follow existing code formatting
  • Use descriptive variable and function names
  • Document public functions and complex logic
  • Test changes on actual hardware before submitting

License

RADR firmware is released under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal (CERN-OHL-S v2). See the licence documentation for details.