CAN bus graceful start-upAn improvement for sensitive CAN bus systems.
CAN bus graceful start-up
This updates the small piece of startup code that brings the CAN bus up, so
the dash joins the bus gracefully as it powers on. It helps on systems that are
sensitive about what is on the bus while everything starts together. It sits
outside the firmware, so an ordinary update cannot reach it — which is why
it is its own step.
Keep the dash powered. It takes about half a
second. If power is lost during it, the dash will not start again until it is
reconnected to a computer — so do this with the engine running, or on a charger.
Installing firmware update
Starting…
The dash will reboot automatically when the flash finishes. Don't power-cycle until you see the splash screen.
Preset library
Author reusable ECU definitions here — + New ECU, Create Preset, or import a .dbc. To set this car up, use Channels › + Add channels instead.
ECU
Version
Signal
Select an ECU, version, then signal
Import DBC File
Select a .dbc file to preview signals.
Create channels makes one channel per signal, decoding straight away.
To keep the file as a reusable ECU instead — and pick signals from it later under
+ Add channels › From a pre-defined ECU — name it and choose Save as preset.
Create Preset
Signals (raw CAN decode)
LabelCAN IDBitLenScaleOffsetSignedEndian
Saved on this dash (/lfs/presets) and listed under + Add channels › From a pre-defined ECU, in Custom & DBC. 11-bit and 29-bit extended CAN IDs.
Assign Data Source
Or select your ECU to browse signals:
New Custom Signal
Multiplexed frame
Only for an ID that carries several different payloads tagged with a
frame index. Leave Index bits at 0 otherwise.
Keyboard Shortcuts
Ctrl+Scroll
Zoom Canvas In/Out
Space+Drag
Pan Canvas Workspace
Arrows
Nudge Widget 1px
Shift+Arrows
Nudge Widget 10px
Ctrl+C / V
Copy / Paste Widget
Ctrl+Shift+C / V
Copy / Paste Style (Appearance)
Ctrl+D
Duplicate Widget
Ctrl+Z / Y
Undo / Redo
Del / Backspace
Delete Widget
Ctrl+G
Group Selected Widgets
Ctrl+Shift+G
Ungroup
Ctrl+] / [
Bring Forward / Send Backward
Ctrl+Shift+] / [
Bring to Front / Send to Back
Right-Click
Show Context Menu
Ctrl+Shift+S
Open Channels
Press Esc or click outside to
close
Load Layout JSON
Paste a layout in firmware JSON format (the same shape an export produces, or what an AI builder generates). It loads straight into the editor for preview — no device needed. Hit Save afterwards to push it to a connected dash.
Select ECU / Vehicle
Dashboard Switcher
Pick which layouts the on-dash left/right arrows cycle through, and the order. Leave nothing checked to cycle every layout in filesystem order.
Loading...
Storage Manager
Files must be on internal storage to be used by the dashboard. Use SD card for backup and transfer.
Loading...
New dashboard…
Save as…
Rename…
Reset default layout
Delete dashboard
New Splash...
Rename…
Delete Splash
Local
Saved
Your car
ECU & CAN bus
Which ECU this car has, what speed the bus runs at, and whether frames are arriving.
–
OBD2 diagnostics
Trouble codes, VIN and ECU name, protocol status. Adding OBD2 readings as channels lives in Channels.
–
Gear calculation
Work out which gear you're in from RPM and speed, when the ECU doesn't send it.
Configurable
Fuel sender
Teach the dash what your tank reads when it's empty and when it's full.
Calibrate
Odometer
Total distance, counted from the speed signal. Set it to match the car.
–
Keypads & IO boxesIn development
Buttons on the screen that your ECU reads as its own keypad or IO box — cruise control on a Haltech, for one.
—
This dash
Screen & night
How bright the screen is, and what makes it dim at night.
–
Layout switching
Pick which dashboards the arrows on the dash cycle through, and in what order.
Configurable
Device & updates
Serial number, storage and live health. When an update is out, a banner at the top offers to install it.
–
WiFi & network
Which network the dash is on, its address, and how to reach this editor.
–
Data
Live data & recording
Watch every reading arrive: value, min/max, whether it's gone stale. Press Record to save it to a file, either on the SD card or the dash's own storage.
–
Files & sharing
Open
Open a .rdm file: a layout, or a full dashboard. It says which as it loads, and only asks about your channel setup if the file actually carries one.
.rdm file
Save layout
The widgets with their images and fonts, and nothing about your car. Safe to share or publish: no CAN ids, thresholds or units travel with it.
.layout.rdm
Save full dashboard
The layout plus this dash's channel setup: CAN decode, thresholds, units. For your own backup, or to set up a second dash exactly like this one.
.dashboard.rdm
Marketplace
Browse and download dashboards other people have built.
Community
File manager
Browse layouts, images and fonts on the device and SD card.
/lfs · /sdcard
Export screenshot
Grab a still of the live dash screen as a JPEG.
JPEG
Developer options
Developer options
Bench OBD2 simulator and offline-preview rendering toggles — for testing on the desk without a car.
Bench & preview
Load layout JSON
Paste a layout in JSON format (e.g. from an AI builder) straight into the editor — no device needed.
Paste & preview
Desktop
Device Manager
Connection health, storage usage, reboot: the desktop app's view of the dash.
Desktop app
Backup All Layouts
Save every layout on the dash into one .rdmbackup file on this computer (layouts only — not images, fonts or channels).
.rdmbackup
Restore Layouts
Put layouts from a .rdmbackup file back on the dash. Layouts with the same name are replaced.
.rdmbackup
Import Local to Device
Copy a layout saved offline in this app onto the connected dash.
Local → device
Update Firmware
Install a firmware update on the dash over the air.
OTA
Device Manager
Loading...
Connect over WiFi
Scanning network...
Connect over USB
More than one dash is plugged in.
Transfer Layouts
Copy a layout and its images & fonts between this computer and the connected dash.
Design layouts, bind channels, preview live, push to the device.
OPEN LAYOUT EDITOR →
CAN KeypadIn development
Blink PKP buttons, LED rings bound to channels, night dim.
OPEN CONFIGURATOR →
RDM GPS & Lap TimingIn development
Live map, lap timing on the node itself, IMU and CAN health.
OPEN CONFIGURATOR →
IO Expander
Pins become channels. Rules drive outputs.
OPEN CONFIGURATOR →
CAN Bus Analyzer
Live bus through your dash, no dongle needed.
OPEN ANALYZER →
KeypadIn development
connecting…
IDs 0frames/s 0bus –
ID
Channels
Rate
Count
B0 B1 B2 B3 B4 B5 B6 B7
Isolate this ID (hide others)
Hide this ID
Show all IDs
Select a frame to inspect its bytes
Pick a candidate from the ranking to inspect and adopt it.
CAN IO Expander v0.1 · 8 DIN · 8 AIN · 4 DOUT · CAN 2.0Bno device link — saves to this PC
Click any pad to configure it — inputs become CAN channels, outputs follow rules.
Select a pin to configure it
Lap TimerIn development
no node linked—
Focus
Device Info
Loading...
Channels
Add channels
From a pre-defined ECU…
From OBD2 — scan this car…
From a DBC file…
Custom channel…
Channel setup file
Back up to a file…
Restore from a file…
Scanning the car and restoring from a file both need the dash connected. Everything else works now: your changes are saved here and offered to the dash when it reconnects.
CAN bus–Signals–
Select several…
Channel
Source
Value
Range
Warnings
0 selected
Channel
Unsaved changes
Add channels from OBD2
Ask the car what it can report, then pick what you want on the dash.
Choose a source
Assign a channel
Pick a channel to bind to this widget
Live Data & Logging
Idle
Record — the decoded values below, at a fixed rate. Good for plotting and replaying through dashboard widgets.
Raw CAN — every frame, exact timing, SavvyCAN-compatible CSV. Good for decoding a bus you haven't mapped yet.
Name
Value
Min
Max
Unit
Status
Saved recordings & replay
Replaying...
Logs
Share Raw CAN Trace
Upload a Raw CAN recording tagged with your car so it can be debugged off-device.
Stays private to the project maintainers.
Fuel Calibration
With a known fuel level in the tank, tap the matching button to set the calibration point. Do Empty first, then Full.
Loading...
Gear Setup: Calculated Gear
Back-computes the engaged gear from live RPM & vehicle speed. Enter your
gearbox ratios (in gear order), final drive, and wheel circumference.
The signal CALCULATED_GEAR publishes 0 for Neutral / stationary,
1 for 1st, etc.
Gearbox Ratios (N = 0.000; 1st–Nth in order)
Sync tip: drive in that gear above 5 km/h, then tap Sync.
The ratio is back-calculated from live RPM and speed using your wheel circumference and final drive.
The odometer counts from the Speed signal above. To set its reading, use the
Odometer card.
Keypads & IO boxes
The dash pretends to be a CAN keypad or IO box, so your ECU reads buttons on the screen as its own inputs.
Loading…
ECU & CAN bus
What the dash is listening to, and whether anything is arriving.
Checking…
ECU preset
–
Bus speed
Readings live–
If nothing is arriving: check the bus speed matches your ECU (500 kbps suits most),
that CAN-H and CAN-L aren't swapped, and that the preset above is the right one for this car.
Channels shows exactly which readings are and aren't turning up.
WiFi & network
How this editor is reaching the dash.
Checking…
Network–Dash address–Signal–Own hotspot–
To join a different network, use Settings › WiFi & Network on the
dash's own screen — the password is typed there, never here.
If the dash can't find a network it falls back to its own hotspot, which you can
connect a phone to directly.
Odometer
Total distance, counted from your speed reading.
–
km on the dash right now
Type your real odometer reading once and the dash counts on from there. Saved every 1 km or 5 minutes.
OBD2 diagnostics
Readings…ECU preset…OBD2 readings…Custom PIDs…
OBD2 Protocols responding
Loading…
To put OBD2 readings on the dash, go to Channels › + Add channels › From OBD2 and scan the car.
This page is for asking the car what's wrong with it.
Quick ECU Setup
One-click: applies a whole ECU's CAN map to all channels. Fine-tune any channel later in the Channels editor.
Showing every preset.
A blue dot means the dash is hearing that ECU’s CAN frames right now — it updates as you watch, so switch the car on if nothing is marked.
Trouble Codes
Code
Description
Codes come from Mode 03/07/0A. Clear fires Mode 04.
Vehicle Info
VIN…ECU name…Last readnever
OBD2 Custom PIDs
Define OBD2 PIDs from forum threads or vehicle service manuals.
Picking + Add opens a form with a Test button that
queries the ECU once and shows the raw bytes + decoded value, so
you can verify the decode formula before saving.
Signal
Mode
PID
Decode
Live
Saved with your layout. Use Export to share with others.
Imported packs merge into the current list (duplicates by
signal name overwrite). Hit Save/Apply in the header
to persist changes to the device.
Custom PID
Decode
Formula: value = raw × scale + offset
Polling
Test
Hit Test to query the ECU.
Fuel sender
The dash reads a voltage from your tank sender; you tell it what that voltage means.
Do the two ends and you're done — most people never need more.
Live voltage-- V
Calibration points0 / 8
VoltageTank reading
Send to ECU over CAN
Broadcasts the fuel reading as a CAN frame so your ECU can use the
dash's fuel input as its own (e.g. MaxxECU "CAN input"). Match the
frame details to what the ECU expects.
Screen & night
How bright the dash is, and what makes it dim.
Takes effect straight away.
Dim at night
Advanced
Developer Options
Bench / debugging aids. None of these change your layout or the device's behaviour in the car.
Fakes a virtual ECU so OBD2 gauges (e.g. fuel level) move on the bench with no car connected. Synthesizes Mode 01 polling, freeze frame, DTC read/clear, and VIN/ECU-name responses. Not saved; off after a reboot.
Draw gauges/text in the editor canvas when no live device frame is present. The device's LVGL render is always the source of truth. Editor-only.
Simulate the real dash in the offline preview: RGB565 colour banding + firmware-feasible glow (no Gaussian blur / radial halos). Editor preview only.
W0
H0
TEST—
RDM-7 Dash
Add Widget
Device Logs
No log lines yet. Connect via USB to see device output.