Gateway Operator Setup¶
How to connect, identify and operate a flashed RaceLink Gateway. For
firmware build / flash instructions see README.md.
Audience. Operators who already have a flashed gateway and want to use it. If you need to flash one first, start with
README.md.
What you need¶
- A flashed RaceLink Gateway dongle (
DEV_TYPE_STR="RaceLink_Gateway_v4"for the current build; older device-type strings work as long as the wire-protocol version matches). - A USB cable connecting the gateway to the host machine.
- A running RaceLink host — either standalone
(
racelink-standalone) or RotorHazard with theRaceLink_RH_Pluginloaded.
First-time connection¶
- Plug the dongle into the host before starting the host.
The host auto-discovers the gateway on startup. If you plug it in
afterwards, the host's reconnect logic finds it within a few
seconds — but the master pill briefly shows
LINK_LOSTfirst. - Identify the serial port.
- Linux:
/dev/ttyUSB0or/dev/ttyACM0(runls /dev/ttyUSB* /dev/ttyACM*to confirm). - Windows: a
COMport such asCOM3orCOM4. Confirm in Device Manager. The host usesserial.SerialException's exclusive-open mode, so no other process can hold the port. - Confirm the master pill goes IDLE.
The pill in the WebUI header should turn cyan (
IDLE) within a second of the page load. If it stays inUNKNOWN, click the ↻ refresh button next to it.
See ../RaceLink_Host/webui-overview.md
§"The master bar — gateway badges" for the full state-by-state
operator playbook.
OLED indicator¶
The gateway has a small SSD1306 OLED. The current firmware shows:
- TX / RX counters since power-on.
- Recent packet debug output (transient).
The OLED is informational; the master pill in the WebUI is the source of truth for gateway state.
Radio defaults¶
The gateway operates with the following defaults (configured at
build time in platformio.ini; see README.md for
the full list):
| Parameter | Value |
|---|---|
| Frequency | 867 700 000 Hz |
| Bandwidth | 125 kHz |
| Spreading factor | SF7 |
| Coding rate | 4/5 |
| Preamble | 8 |
| Sync word | 0x12 |
These values must match the WLED nodes' build profile; see
../RaceLink_WLED/README.md §"Build profile notes".
Regional note. The default frequency is in the EU 868 MHz ISM band. Operators outside the EU must adjust the frequency in the gateway's
platformio.iniand re-flash; the WLED nodes need a matching change in their build profile. There is no runtime way to change the radio band.
Pairing nodes to a gateway¶
A WLED node is paired to one gateway by MAC at first boot. To pair a freshly-flashed node to your gateway, simply run Discover Devices from the host's WebUI: the node listens for any broadcast and pairs with whichever gateway sent the discovery.
To migrate a node between gateways, use the WebUI's Forget master
MAC option (in the Node Config dropdown) on the node, then
re-discover from the new gateway. See
../RaceLink_Host/device-setup.md
§"Node config — single-shot commands".
Gateway ownership rules¶
Only one process can hold the dongle's USB port at a time — the
host opens it with exclusive=True. Running racelink-standalone
and a RotorHazard plugin instance against the same dongle therefore
fails the second starter with PORT_BUSY.
The full rule set (standalone vs. plugin ownership, release on
shutdown, the two-process pitfall) lives in
../RaceLink_Host/architecture.md
§"Gateway Ownership".
Common problems¶
- The OLED stays blank. Verify the OLED pin definitions and display wiring. The OLED is non-essential — the gateway operates without it — but its absence often signals a power or wiring issue.
- Master pill flips between IDLE and ERROR rapidly. USB hiccup. The pill returns to IDLE within seconds; it the oscillation continues, swap the USB cable or try a different USB port (a powered hub helps on some hosts).
PORT_BUSYbanner persists after closing the other process. Some operating systems take a few seconds to release the device. Wait, then click Retry connection.
For the broader operator-side troubleshooting index see
../troubleshooting.md.