AirPort
NOTE
With the addition of MAVLink support in ELRS 3.5, it is no longer recommended to use Airport for MAVLink telemetry. Please see the MAVLink page for more info.
Description¶
AirPort provides a firmware option that allows you to turn a regular ExpressLRS transmitter and receiver pair into a bi-directional transparent serial data link, over the air. A TX module can connect via USB to a laptop, and RX modules (or those flashed using RX-as-TX) can connect to a free UART on your device, as per usual. This allows for a wireless serial data link between TX and RX, as if they were connected directly via serial. Note that due to the packet size and sensitive LoRa modulation parameters used by ELRS, the data rate is relatively slow. Also, as the protocol has no knowledge of the data being transported, there is no ACK or retransmission which may result in dropped packets.
Warning
The AirPort option completely replaces the RC link, and repurposes it as a data link. If you intend to retain RC control via ELRS, you will need to run 2x TXs and 2x RXs on the ground and air, respectively. One TX+RX pair sends your normal RC link data, just as it does now, and the other TX+RX pair sends the serial data.
Required Hardware¶
- ExpressLRS TX module: A dedicated external TX module is required for the data link. The TX should ideally have an external USB port to make it easy to attach to a computer (assuming a computer is the desired endpoint for the data link). It is also favorable to use a module with a screen and a 5-way button, which makes packet rate and power selection easier. The TX should use an ESP-based microcontroller (for access to the WebUI).
- ExpressLRS RX: Any ExpressLRS ESP-based receiver is compatible with AirPort (technically STM-based receivers can work too, but it will be harder to set up and is therefore not covered in this guide). Receivers with higher telemetry power output (i.e. 100mW telemetry power) will provide better results.
Frequency band
If you plan to use two side-by-side ELRS links on the craft (one for RC and one for telemetry), it is HIGHLY recommended to use different frequencies for each link. For example, you will see good results with RC on 2.4GHz and AirPort on 900MHz. The range will be severely reduced if both RC and AirPort are on the same frequency band.
Data rate vs Baud rate¶
AirPort uses a 64-byte buffer to queue bytes that it receives from the FC or GCS, before sending them over the air. If the buffer overflows, the entire 64 bytes are discarded. For this reason, it is VERY important to select a serial baud rate that limits the flow of serial bytes to match the maximum over-the-air (OTA) data rate.
The OTA data rate is determined by the selected packet rate. A faster packet rate will result in a higher data rate at the expense of range. The table below shows the baud rate you should use when configuring the AirPort feature.
Packet Rate | Maximum OTA Data Rate (bytes/s) | Baud Rate to Select |
---|---|---|
25Hz | 62 | 600 |
50Hz | 125 | 1200 |
100Hz | 250 | 2400 |
100Hz Full Res | 500 | 4800 |
200Hz | 500 | 4800 |
250Hz | 625 | 4800 |
333Hz Full Res | 1665 | 14400 or 9600 |
500Hz | 1250 | 9600 |
1000Hz | 2500 | 19200 |
A good baseline is:
- 100Hz Full Res at 4800 baud for 868/915MHz
- 333Hz Full Res at 14400 or 9600 baud for 2.4GHz
Configuring AirPort¶
Warning
Once AirPort is enabled, there will be no way to access the RX settings from the LUA script. Before enabling the AirPort option, it is recommended that you bind the TX and RX normally, and (using the LUA) set the RX telemetry power output to maximum. If you already have AirPort enabled, and need to change the RX power, you will need to disable the AirPort checkbox by doing the reverse of the steps below, change the power using LUA, then re-enable AirPort.
Binding Phrases
Use a binding phrase that is different from whatever you are using for your RC link if you intend to run RC + AirPort side by side in ANY way.
-
Flash the TX Module with the latest ELRS release version (AirPort is available in
v3.3.0
onwards). -
Enable WiFi on the TX module. This can be enabled by inserting the TX into a handset, and in the LUA script select
WiFi Connectivity
->Enable WiFi
. WiFi can also be enabled via the screen + 5-way if your TX has one (while powered via USB). -
Using a computer or mobile device, connect to the TX WiFi using your preferred method (hotspot or home WiFi).
-
Open the WebUI (
10.0.0.1
for hotspot, orhttp://elrs_tx.local
for home WiFi) in a browser. -
In the ELRS WebUI, check the
Use as AirPort Serial device
checkbox. -
In the
AirPort UART baud
field, enter your desired baud rate. IMPORTANT: Pay close attention to the "Data rate vs Baud rate" section above when choosing your baud. A good default is9600
baud for 2.4GHz and `4800`` baud for 868/900MHz. -
Click
SAVE & REBOOT
.
-
Flash the RX with the latest ELRS release version (AirPort is available in
v3.3.0
onwards). -
Enable WiFi on the RX. This can be enabled by powering on the RX with no TX powered and waiting for the WiFi timeout.
-
Using a computer or mobile device, connect to the RX WiFi using your preferred method (hotspot or home WiFi).
-
Open the WebUI (
10.0.0.1
for hotspot, orhttp://elrs_rx.local
for home WiFi) in a browser. -
In the ELRS WebUI, check the
Use as AirPort Serial device
checkbox. -
In the
UART baud
field, enter your desired baud rate. IMPORTANT: Pay close attention to the "Data rate vs Baud rate" section above when choosing your baud. A good default is9600
baud for 2.4GHz and `4800`` baud for 868/900MHz. -
Click
SAVE & REBOOT
.
(Optional) Pre-Installation Operation Checks¶
Once you have enabled the AirPort setting on both TX and RX, they should be ready to send bi-directional serial data. If you have an FTDI (USB to serial adapter) handy, you can confirm that the link is working as expected before installing it in a craft.
- Using a suitable USB cable, connect your TX module to a computer.
- Open a serial terminal client, such as PuTTY, and connect to the COM port for your TX module using the baud rate you chose in the section above.
- Connect your FTDI to your computer, and connect the RX to the FTDI
- Open a second instance of PuTTY, and connect to the COM port for your FTDI using the baud rate you chose in the section above.
- Type chars into each PuTTY window, and confirm you can see them on the opposite terminal session (i.e. typing into the TX PuTTY should result in the same chars appearing in the RX PuTTY window). If you see comms, everything is working.
Installation¶
Connect the RX to a spare UART on your flight controller, as per normal:
Using the appropriate Configurator tool for your FC firmware, configure your selected UART with your desired telemetry protocol. For example, if using AirPort for MAVLink in ArduPilot, you would set:
SERIALN_BAUD
to the baud you entered in the section above,SERIALN_OPTIONS
to0
,SERIALN_PROTOCOL
to1
or2
(for MAVLink v1 or MAVLink v2).
Connect the TX to a computer via USB, open the program that you intend to view the telemetry in, then connect to the COM port for your TX module at the baud you entered above. For example, if using AirPort for MAVLink in ArduPilot, you would open Mission Planner / QGC etc. and select the TX COM port, enter the baud, then click Connect.