Simulate the dash
Drives the preview through the same maths as the firmware: the 40 Hz update loop, the RPM smoothing, each binding's filter, deadband and range, startup sweeps, show/hide lamps and label formatting, in this layout's units. Nothing here is saved or exported.
Engine & road
Lamps
Click to switch a lamp. Blinkers can also flash at the dash's own rate.
Distance, temperature, clock
Start from a layout
Load a dash.json to keep working on it — everything it contains is kept, even fields this tool doesn't edit — or start blank and build the whole layout here.
Opening a .fglayout unpacks it — the layout, its artwork and its fonts — so you can change one thing and export it again. It keeps the original layout's identity; use Remix as my own if you're publishing it as a new layout rather than updating that one.
The dash converts every signal once, so speed, distance and temperature labels and needle ranges are all in these units.
Elements
Everything the dash draws. Add widgets here, then click one on the dial or in this list to select it — drag to place, arrow keys nudge (Shift = 10), Delete removes.
Background
Drag to move, scroll or use the slider to zoom. Only what falls inside the circle is visible on the dash, so frame it against the round edge.
Fonts
Add a TrueType or OpenType font, then the sizes you want. Each size becomes its own font file on the dash, holding only the characters its labels can show, so a big speedo font stays small. Use one by typing its name into a label's Font field; the files rebuild themselves as you change those labels.
Files in this layout
Converted artwork, built fonts, and anything else the layout needs. Pre-built .bin images and fonts can be dropped straight in; a .ttf or .otf goes to Fonts.
| Path on the dash | Size | |
|---|---|---|
| Nothing added yet. | ||
Send it to the dash
Everything the layout needs goes into one file. Move it to your phone and choose it in the app's Update tab.
Export as separate files instead
For working over the wire with ftp1_send.py, or updating a single asset by hand.
Check a .bin file's header
Drop a working image file here to read its header. Use it to confirm this tool writes the same format your firmware already loads.
No file checked yet.
Vehicle settings
Per-bike numbers that live on the harness adapter, not in the layout: they stay with the bike when the layout changes. Export vehicle.json, then import it in the app's Vehicle tab and save it to the dash.