Skip to main content

Adding a Device to SimLinkHub

SimLinkHub keeps a small local database that maps CAN messages to simulator variables and events. Every device — one of ours, or a custom one you've built yourself — gets wired in through that database, not through a firmware change or a software update. This page walks through how.

Open it from Settings → Manage Database… inside SimLinkHub.

1. Register the device​

Every physical board on the CAN bus needs one entry in the device list:

FieldWhat it means
Friendly NameWhatever you want to call it in the UI
CAN Node IDThe device's own address on the bus (each device picks a unique one)
Base CAN IDThe starting CAN message ID this device uses — SimLinkHub computes individual message IDs from this
EnabledTurn a device off without deleting its configuration

Once wired up and powered, a device shows a green dot in the device list when SimLinkHub has seen recent traffic from it, and grey if it's gone quiet.

2. Map its outputs (sim → hardware)​

An Output takes a value from the simulator and sends it to the device — a servo angle, an LED brightness, anything the hardware needs to display or move to.

FieldWhat it means
SimConnect VariableThe sim value to watch, e.g. TRAILING EDGE FLAPS LEFT PERCENT
CAN PrefixA short tag the device's firmware recognizes for this specific value
Device TypeWhether SimLinkHub or the device itself does the range mapping (Generic vs. Servo)
Sim Min / Max, Hardware Min / MaxThe scaling range — e.g. 0–100% maps to 0–90°
RPN FormulaAn optional formula applied before sending, e.g. {VAL} 0.9 *
Update ThresholdHow much a value has to change before a new message is sent, to avoid flooding the bus

3. Map its inputs (hardware → sim)​

An Input takes a button press, switch, or axis movement from the device and turns it into a simulator action.

FieldWhat it means
Input IDThe short tag the device sends over CAN for this control
Input TypeButton/event, or a continuous axis
SimConnect EventWhat to trigger — a discrete event (e.g. FLAPS_UP) for a button, or an AXIS_*_SET event for a continuous control
Multiplier / OffsetFor axes, how the device's raw 0–1 range maps onto the sim event's expected range

Discrete controls (buttons, detented levers) usually map to their own named event per position rather than a single continuous value — it's more precise, and it means the sim decides exactly where each position lands rather than hoping a raw number rounds to the right spot.

Calibration, not reflashing​

Getting a servo's travel right, or fixing a reversed axis, is almost always a matter of adjusting the numbers above rather than touching firmware — change the Hardware Min/Max, or swap Raw Min and Raw Max if a lever moves the wrong way. Reload the config from SimLinkHub's Hardware menu afterward to push the change out.

Building a fully custom device​

If you're building something of your own rather than one of ours, the only requirement on the firmware side is that it speaks the same CAN message conventions everything else on the bus does. Stage 2 of this site will cover that in more depth, alongside the hardware build guides.