GPS tracking a Vapor D5, could I build an autonomous FPV cameraman?
I’ve been experimenting with the GPS telemetry from my GEPRC Vapor D5 O4 Pro, with the eventual goal of building a small, standalone pan/tilt camera system that automatically follows the drone while I fly.
The basic idea is pretty simple:
Drone GPS → position telemetry → calculate bearing/distance → pan/tilt camera → record the flight
So rather than having someone manually operate a camera, the system would know where the drone is and physically point a camera at it.
I took the idea to the weekly FPV meet today and did some proper real-world testing, and I’m honestly quite surprised by how well the GPS data works.
The non-technical version
The D5 already knows where it is using its GPS.
My program receives that GPS information and plots the drone’s position on a map. It also calculates where the drone is likely to be shortly after the latest GPS update, based on its movement.
Here’s what that looks like in practice:
The eventual plan is to put a fast pan/tilt mechanism underneath a camera. The tracker would then continuously calculate:
“The drone is over there → point the camera over there.”
For the first physical prototype I’m planning to literally put a 3D-printed arrow on a servo and make it point at the drone. ![]()
If that works, the arrow gets replaced by a camera.
Technical details
The GPS on the D5 is the GEP-M10 GPS module.
According to the module specifications:
- 72 channels
- 10 Hz update rate
- ~1.5 m horizontal accuracy in good open-sky conditions
- 0.05 m/s speed accuracy
The interesting part is that I’m not connecting a computer directly to the GPS.
The telemetry path I’m currently using is:
GEPRC M10 GPS
↓
Vapor D5 flight controller
↓
ELRS telemetry
↓
Radiomaster Boxer
↓
USB / VCP
↓
Windows COM port
↓
Python tracking program
The Boxer exposes the telemetry connection through a Virtual COM Port (VCP), which my Python program reads as a serial device.
I’m currently reading the Boxer’s VCP serial connection at 115200 baud.
The program extracts things such as:
- Latitude
- Longitude
- Altitude
- Ground speed
- Heading
- Satellite count
and plots the position in real time.
ELRS telemetry ratio
This was actually one of the most interesting parts of the testing.
I’m flying at 250 Hz and tested several telemetry ratios.
At 1:8, the GPS tracking was usable, but the plotted path was noticeably more sparse/jittery.
I then tested 1:2, and the difference was substantial.
The trajectory became noticeably smoother, and the prediction followed the flight path surprisingly well during actual FPV flight.
I’m currently using:
250 Hz / 1:2 telemetry
The ratio doesn’t mean “one out of every eight packets contains GPS.” Rather, it controls how much of the ELRS packet bandwidth is allocated to telemetry. The actual GPS data still depends on how the flight controller/telemetry system queues and sends the GPS information.
Prediction
The program doesn’t simply plot the last GPS coordinate.
I’m also calculating a predicted position based on the drone’s current movement.
Conceptually:
Current GPS position
+
Speed
+
Heading
+
estimated latency
↓
Predicted position
So instead of the tracker always pointing at where the drone was, it can aim toward where the drone is expected to be when the camera has physically moved.
This was particularly interesting during today’s testing because the predicted point followed the flight path surprisingly well, including during the turns.
What I’m ultimately trying to build
The eventual system would look something like:
Vapor D5
│
GPS telemetry
│
▼
┌─────────────────┐
│ Ground Tracker │
│ │
│ GPS + compass │
│ │
│ position maths │
└────────┬────────┘
│
PAN + TILT
│
▼
📷
The camera I’m currently considering is an IMX-based 4K60 camera module, although I’m not set on a specific camera yet. The 4K resolution would give me some room for digital cropping, while 60 FPS should provide a good basis for potentially experimenting with computer vision later on.
The current plan is to use GPS as the primary tracking system. If GPS proves insufficient for precise tracking at closer distances or during fast manoeuvres, computer vision could potentially be used to provide a finer correction to the camera’s positioning.
For now, however, I’m deliberately keeping the project GPS-only so I can establish how well the fundamental tracking system works before adding additional complexity.
Next step
I’m going to build a very dumb version first:
GPS → bearing calculation → Arduino → fast servo → 3D-printed arrow
No camera.
No computer vision.
No fancy gimbal.
Just:
“Where is my drone? → point the arrow at it.”
If that works reliably, I’ll move onto the pan/tilt mechanism and camera.
I’ve gone into this expecting GPS to be the weak point, but after today’s testing at 1:2 telemetry, I’m starting to think it might actually be good enough to be the primary tracking system.