Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ Multicopter
Multicopters
MultiGP
NDA
NMEA
NPN
NRST
Namimno
Expand Down
3 changes: 2 additions & 1 deletion docs/quick-start/transmitters/lua-howto.md
Original file line number Diff line number Diff line change
Expand Up @@ -419,14 +419,15 @@ The `Protocol` setting controls the output of the connected receiver. The follow
* `DisplayPort` - For controlling (primarily) DJI Air units to take them out of Low Power mode. New in ExpressLRS 4.0.
* `HoTT Telemetry` - Allows to use Graupner HoTT enabled telemetry sensors (Graupner and 3rd party)
* `MAVLINK` - Introduced on ExpressLRS 3.5.0, it allows the receiver to output native MAVLink into a flight controller. See the [MAVLink](../../software/mavlink.md) page for more details.
* `GPS` - Introduced on ExpressLRS 4.0, it lets you connect a serial GPS directly to the receiver. The receiver reads the NMEA output and sends the position to the handset as telemetry, with no flight controller needed. The port runs at 115200 baud. See the [GPS Notes](../../software/serial-protocols.md#gps-notes) for wiring and setup.

For more information, see [Receiver Serial Protocols](../../software/serial-protocols.md)

### Protocol 2

The `Protocol 2` setting is only available for ESP32-based receivers. This include the True Diversity ones like the RP4TD, Super D, Super P and EP Dual. These receivers have a second UART that can be used for the same purpose as the main UART. Note that not all of the ESP32-based receivers have the extra UART pads or pins exposed for easy use.

It has the same options as the setting above with these additional ones:
It has the same options as the setting above, except for `MAVLINK`, which is only available on the main UART. It also has these additional ones:

* `Tramp` - If you want to control a VTX using Tramp protocol directly through the ExpressLRS Lua Script's VTX Admin.
* `SmartAudio` - If you want to control a VTX using SmartAudio protocol directly through the ExpressLRS Lua Script's VTX Admin.
Expand Down
42 changes: 42 additions & 0 deletions docs/software/serial-protocols.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,14 @@ ExpressLRS receivers can communicate using a variety of serial protocols:
- SUMD
- DJI RS2 Pro (Modified SBUS with pre-configured limits)
- HoTT Telemetry
- MAVLink
- DisplayPort
- GPS
- Tramp
- SmartAudio

Not every protocol is available on both serial interfaces. `Tramp` and `SmartAudio` are only available on Serial2. `MAVLink` is only available on Serial 1.

## Receiver Protocol Selection

!!! note "Note"
Expand Down Expand Up @@ -269,3 +274,40 @@ Example adapter cable setup for ESP8285 PWM receivers like the Happymodel EPW6:
<figure markdown>
![SuperP 2](../assets/images/HoTT-TLM-P6.png)
</figure>

## GPS Notes

Available since ExpressLRS 4.0. A serial GPS can be connected directly to a receiver. The receiver reads the NMEA output of the GPS and sends the position to the handset as CRSF telemetry. The flight controller is not involved, so this also works on a model that has no GPS of its own, and on a model that has no flight controller at all.

Select `GPS` as the protocol on Serial 1 or on Serial2. Serial2 is only available on ESP32 receivers.

### Wiring

Only one data wire is needed. Connect the TX pin of the GPS to the Serial RX pin of the receiver. The receiver never sends anything to the GPS, so the Serial TX pin of the receiver can be left unconnected.

Check the voltage and current rating of the GPS module before you connect it to a supply.

### Baud Rate

The receiver opens the port at 115200 baud, 8N1. The receiver does not detect the baud rate, and the rate cannot be changed.

!!! warning "Warning"
Most GPS modules leave the factory set to 9600 baud. Set the module to 115200 baud and save the setting to the module before you connect it to the receiver. A module left at 9600 baud will produce no telemetry.

### Supported Sentences

The receiver reads three NMEA sentences. The talker ID is not checked, so `$GP`, `$GN`, and other prefixes are all accepted.

| Sentence | Values used |
|---|---|
| `GGA` | Latitude, longitude, satellites in use, altitude |
| `VTG` | Heading, ground speed |
| `RMC` | Date and time |

A `GGA` sentence sends the position telemetry frame. A `VTG` sentence does not send a frame of its own, because its values are carried in the next `GGA` frame. An `RMC` sentence sends the GPS time frame, which gives the date and time to the handset.

A sentence with a bad NMEA checksum is discarded. Any other sentence type is ignored.

### Telemetry Bandwidth

Each `GGA` sentence produces one telemetry frame, so a GPS set to 10Hz uses much more of the telemetry budget than the same GPS set to 1Hz. If the link carries other telemetry as well, lower the output rate of the GPS or select a faster `Telem Ratio`. See [Telemetry Bandwidth](../info/telem-bandwidth.md) for more information.
Loading