ELRS GPS Tracking for Every RC Vehicle with ATAK UAS Toolkit

a day ago   •   11 min read

By Robyn
Table of contents

Most RC GPS setups assume a flight controller sits in the middle, doing the usual serial babysitting. ELRS 4.0 breaks that assumption and lets a receiver ingest GPS directly, which means a car, boat, or plain servo-driven plane can now report location without extra avionics.

Close-up of ExpressLRS receiver board wiring showing GPS connections

That is the trick here: plug a GPS into an ExpressLRS receiver, push telemetry back to the radio, and use that data for coordinates, QR codes, or live mapping. No flight controller, no Betaflight, no mystery black box pretending to be mandatory.

Tablet screen showing a map view with GPS/telemetry information coming from an ExpressLRS setup

What changed in ELRS 4.0

This works because ExpressLRS 4.0 added support for directly attached GPS inputs on the receiver. If the gear still runs ELRS 3.x, this feature does not exist, and no amount of optimism will change that.

Screenshot of the ExpressLRS pull request page showing support for directly attached GPS inputs to RX (UART-based telemetry).

Both ends need ELRS 4.0 or newer: the receiver and the transmitter module or radio. If a firmware update has been waiting for a reason, this is at least a decent one.

Which receiver makes sense

The most common target is a PWM receiver. That fits the vehicles that usually lack flight controllers anyway: RC cars, boats, and old-school planes with servos and a receiver doing all the work.

Screenshot showing Radiomaster ExpressLRS PWM receivers and an 8-channel PWM receiver product listing

With a PWM receiver, one of the output pins gets repurposed as a serial port for the GPS. That means one servo output disappears. A six-channel receiver with six servos leaves no spare channel, so either lose a function or buy a receiver with more outputs.

Screenshot of ERS ExpressLRS 2.4 GHz PWM receiver labeled with CH1–CH6 and boot pins

Serial-based receivers can also do the job, but with a catch. If the receiver only has one TX/RX pair, using it for GPS means it cannot also talk to a flight controller for control data.

Close-up of an ExpressLRS receiver circuit board displayed in a web browser

That makes a single-UART serial receiver more suitable for a standalone tracker than a normal controlled model. Some receivers, like the XR4, include a second UART, which neatly avoids that compromise.

Joshua Bardwell used an ER3CI for the demo. It is not the ideal real-world choice because burning one of three channels on GPS leaves exactly two channels. Great for proving a point, less great for creature comforts.

Close-up of an ExpressLRS receiver board being held, showing the ER4 receiver markings

Configure the receiver over Wi-Fi

First, put the receiver into Wi-Fi mode. That can be done from the ExpressLRS Lua script with Enable RX Wi-Fi, or by powering the receiver for about a minute without a connection and letting it enter Wi-Fi mode by itself.

Radiomaster radio display showing “Sending…” during ELRS Wi‑Fi connection setup

Connect to the receiver’s Wi-Fi network. The default network is the ExpressLRS RX access point, and the default password is expresslrs in lowercase.

Then open a browser and go to 10.0.0.1. That loads the ExpressLRS web interface for the receiver.

Turn PWM outputs into serial TX/RX

In the Connections section, pick one output and set it to Serial TX. The paired pin will automatically become Serial RX.

ExpressLRS web interface showing PWM pin functions where one output is set to Serial TX and the paired input becomes Serial RX

Not every receiver maps serial to every pin, so the exact options may vary. The important part is to note which physical pin becomes Serial RX, because the GPS transmit line must land there later.

Set the UART protocol to GPS

Next, open the Serial section and set the relevant UART protocol to GPS. On receivers with multiple UARTs, one can stay on Crossfire for normal duties while another handles GPS.

ExpressLRS web interface Serial/UART Options set to GPS and saved

The goal is simple: one UART must speak GPS, and the pins assigned in the Connections page must match that UART. Save the settings, and the receiver is ready for wiring.

Wire the GPS to the receiver

The wiring is refreshingly minimal. Power and ground go to the GPS as normal, but only the GPS TX line matters for data.

Close-up of ExpressLRS receiver wiring with GPS TX connected to the Serial RX pin area

The GPS TX wire connects to the receiver pin configured as Serial RX. In Bardwell’s example, pin 3 became Serial RX, so the GPS transmit line went to the channel 3 signal pin.

The GPS RX pin stays disconnected. ELRS currently reads positioning data one-way only. The receiver listens; it does not talk back.

Close-up of ELRS receiver wiring showing GPS connections for Serial RX

That missing return path matters because many flight controllers auto-configure GPS modules. They can change baud rate, update rate, and other settings. Here, there is no flight controller doing housework, so the GPS often needs manual configuration.

The bit that usually breaks: GPS protocol and baud rate

Out of the box, many GPS modules will not work. ExpressLRS currently supports NMEA, not UBX binary messaging, and it expects the GPS UART to run at 115200 baud.

Close-up of ExpressLRS receiver wiring with hand-held receiver modules and connected leads

Plenty of GPS units default to 9600 baud or some other speed. Many support both NMEA and u-blox modes, but the baud mismatch alone is enough to make the whole setup look dead.

Set the GPS baud rate with u-center

For this job, Bardwell used u-center, the u-blox configuration tool, plus an FTDI adapter to connect the GPS module to a computer. A handy adapter with labelled pins and switchable 5V or 3.3V output makes life less irritating.

u-center and u-center 2 product page from u-blox website showing software downloads for GNSS configuration

A chopped servo extension also helps. It turns a GPS lead into something easy to push onto FTDI pins without inventing a new wiring crime.

FTDI-style adapter and lead wires showing GPS serial wiring connections for u-center setup

Unlike the ELRS setup, configuring the GPS requires bi-directional serial. So connect GPS TX to FTDI RX, GPS RX to FTDI TX, plus power and ground.

Close-up of wiring GPS module connections to an FTDI adapter pins for u-center configuration

u-center 2 for M10 GPS modules

If the GPS is based on an M10 chip, use u-center 2. That version wants account logins and other administrative theatre, but M10 support lives there.

Close-up of an ExpressLRS receiver being wired with GPS connections

After plugging in the FTDI adapter, add a new data source using the detected COM port. Let the software auto-detect the baud rate if possible. That saves guessing, which is always nice.

u-center 2 showing satellite position and map view while receiving GPS data

Once connected, the console should show incoming messages and satellite data. Indoor lock may fail, but serial communication should still be visible.

To change the baud rate, open Tools and Services, then Device Configuration, search for CFG-UART1, and set the baud to 115200. Write it to RAM and flash, then send the setting.

u-center device configuration window showing configuration changes and send controls

u-center classic for M8 or M9 GPS modules

For an M8 or M9, the older u-center app still works. Pick the COM port manually, then choose the current baud rate. There is no clever auto-detect here, so some trial and error may be required.

u-center device configuration window showing UART1 baud rate set to 115200 and sent configuration options

After connection, open the message view and navigate to UBX > CFG > PRT. Select UART1 and change the baud rate to 115200.

u-center packet console showing NMEA GPS data messages streaming

Press Send. The link will drop if the module was not already at 115200 baud, which is expected, not a software tantrum.

Then change the host-side baud rate in u-center to 115200 and reconnect. If the packet console starts scrolling again, both sides now agree.

u-center device configuration screen showing GPS protocol and baud rate set to match ELRS expectations

That still does not make the setting permanent. To save it across power cycles, go to UBX > CFG > CFG, select Save Current Configuration, tick BBR and Flash, and send it.

u-center 2 console showing GPS messages streaming along with satellite and map views after setting baud rate

Power-cycle the GPS and reconnect at 115200 to confirm the change stuck. If messages still stream after a fresh power-up, the GPS is now ready for ELRS.

Check that ELRS is actually receiving GPS data

Reconnect the GPS to the receiver and open the radio’s Telemetry page in EdgeTX. If GPS sensors have never been discovered on that radio, run Discover new sensors.

On the telemetry list, the GPS fields should appear and show update activity. Indoors, there may be no valid position yet, but active sensors mean the receiver is talking to the GPS.

Radiomaster EdgeTX telemetry screen displaying Sensors page with no GPS fields populated yet

Once the model goes outside and gets a lock, coordinates and satellite count start filling in. At that point the setup stops being theoretical and starts being useful.

Radiomaster transmitter display in EdgeTX showing GPS telemetry fields during discovery

What to do with the coordinates

Raw telemetry fields are not especially elegant. Still, they are the foundation for everything else, from a basic coordinate display to a proper map track.

Option 1: show GPS data on the radio

On a black-and-white EdgeTX radio, create a new display screen and set it to Nums. Assign one field to Sats and another to GPS.

That gives a dedicated telemetry page showing satellite count and the current coordinates with more detail than the compressed sensor list. It is simple, and simple does sometimes win.

Radiomaster EdgeTX telemetry page showing Nums display with Sats and GPS fields for ELRS GPS tracking

On colour touchscreen radios, the same idea works through widgets instead of the older screen layout. A telemetry widget can sit right on the main screen if desired.

Option 2: turn GPS telemetry into a QR code

There is a more practical trick for recovery. A Lua script called GPS QR generates a QR code from the GPS telemetry so a phone can scan it and open the location directly in a map app.

The script belongs in SCRIPTS/TELEMETRY, not in the usual TOOLS folder where many Lua scripts live. That catches people out because, naturally, software likes little surprises.

After copying the script to the radio over USB storage mode, create a telemetry screen of type Script and assign GPSQR to it. Bardwell also kept satellite count on another screen, which is sensible because a location without lock is just decorative text.

Now pressing the telemetry key can show a QR code generated from live latitude and longitude. Scan it with a phone, tap View on map, and the coordinates open directly in mapping software.

For finding a crashed model, that is far less annoying than reading out decimal coordinates and manually typing them into a handset while standing in a field muttering at electronics.

Option 3: live mapping with ATAK

If static coordinates are not enough, ELRS telemetry can feed a live map. One route is ATAK, paired with the UAS Tool plugin.

There is one gotcha straight away: download ATAK from tak.gov, not from the app store. The required version in this setup was 5.6, not the then-latest 5.7.

The UAS Tool plugin also comes from the ATAK ecosystem and requires an account to download. Installation is not hard, but it is picky enough that following a dedicated setup guide is a good idea.

Once installed, ATAK can show a map, personal position, team members, and tracked devices. The UAS Tool plugin adds support for aircraft and similar objects, which is the part needed here.

Feed ELRS telemetry from EdgeTX into ATAK

To get radio telemetry into ATAK, the EdgeTX radio must output telemetry over USB. On the radio, open the Hardware page and change USB VCP from CLI to Telemetry Mirror.

This mirrors Crossfire telemetry out of the USB port. It also means USB pass-through flashing for the ELRS module will stop working until that setting is changed back. Wi-Fi flashing still works.

Connect the radio to the Android tablet by USB and select USB VCP on the radio. Then, inside UAS Tool, add a platform using Crossfire ArduPilot, set monitor mode to Serial, choose the radio as the serial device, and set the baud rate to 115200.

From there, ATAK can track the vehicle on the map. Turning on breadcrumbs records the path, and a follow option keeps the tracked object centred on screen.

Bardwell also notes that ATAK can display a video feed if the tablet has access to one, such as through an HDMI capture device. In more integrated systems, it can do a lot more than mere tracking.

Option 4: SquirrelCast, maybe

The other live-mapping option mentioned is SquirrelCast. It appears to target FPV use more directly and can show telemetry, a live flight path, and even DJI video on one screen.

Its big selling point is that it can use the ExpressLRS backpack over Wi-Fi, so there is no USB cable between radio and tablet. That is cleaner, less fiddly, and therefore suspiciously attractive.

There is, however, a snag. Bardwell could not get it working despite walking through the troubleshooting process and fixing several issues. So it exists, it looks promising, it costs a few dollars, and it may or may not behave.

Why this matters

This feature turns an ELRS receiver plus a GPS puck into a self-contained tracker for almost any RC vehicle. Cars, boats, and non-FC aircraft gain GPS telemetry without dragging in a full flight stack just to learn where they are.

That is useful for recovery, route logging, and live position tracking. It also shows how ELRS 4.0 keeps mutating from “radio link” into “Swiss Army serial bus with opinions”.

FAQ

Does this require a flight controller?

No. That is the whole point. The GPS connects directly to an ExpressLRS receiver, and the receiver sends GPS telemetry back to the radio.

Which ELRS version supports direct GPS on the receiver?

ExpressLRS 4.0 and newer. ELRS 3.x does not support this feature.

Can a PWM receiver be used for GPS tracking?

Yes. One PWM output is reassigned as serial TX/RX for the GPS. That costs one servo output, so channel count matters.

Does the GPS need both TX and RX connected to the receiver?

No. For ELRS receiver operation, only the GPS TX line is used, connected to the receiver’s serial RX pin. GPS RX is left disconnected.

What baud rate does the GPS need?

115200 baud. Bardwell also notes that ELRS currently supports NMEA data, not UBX binary messaging, so the GPS must be configured accordingly.

How can the GPS position be used once telemetry is working?

Several ways: display coordinates and satellite count on the radio, generate a QR code that opens the location in a map app, or feed telemetry into ATAK for live map tracking.

Can this work with ATAK?

Yes. EdgeTX can mirror telemetry over USB to an Android device running ATAK with the UAS Tool plugin. The radio’s USB VCP mode must be set to Telemetry Mirror.

Is SquirrelCast a good alternative?

It may be, but Bardwell did not get it working in this setup. It uses the ELRS backpack over Wi-Fi, which sounds excellent when it behaves.

Takeaway box

  • ELRS 4.0 lets a receiver read GPS directly, so RC cars, boats, and servo planes can report position without a flight controller.
  • PWM receivers work well, but one output becomes serial for GPS. No spare channel means no spare channel.
  • The GPS usually needs manual setup: NMEA output and 115200 baud, typically done with u-center and an FTDI adapter.
  • Once telemetry appears in EdgeTX, it can feed radio screens, QR-code map links, or live tracking in ATAK.
  • SquirrelCast looks slick on paper, uses ELRS backpack Wi-Fi, and did not cooperate here. Such is software.

This article was based from the video GPS tracking for EVERY RC vehicle // ELRS TO ATAK!

Spread the word

Keep reading