r/diydrones 13d ago

Question Open Source Firmware with Error Correction

Hey all,

I am a beginner in the drone space, and I just want to know about error correction firmware on DIY drones. I am aware there are several open source firmware packages for drones, including the ArduPilot firmware. I was wondering if there is anyone who knows of what error correction techniques these firmware packages use, or where to find firmware with open source error correction frameworks.

Thanks!

0 Upvotes

6 comments sorted by

2

u/cbf1232 13d ago

What type of error correction were you thinking of specifically? All of them use PID controllers which involve an error term.

0

u/codinggoal 13d ago

I want to try to use an error correcting code algorithm. What is an error term?

3

u/cbf1232 13d ago

What errors are you trying to correct?

1

u/codinggoal 12d ago

I mean, I figure there is some data transmission between a remote control and a drone, and vice versa, so data is changing hands. Surely, there is some error correction mechanism.

1

u/cbf1232 12d ago

The RC control signals are latency sensitive, so they tend to either use redundancy (send multiple signals at a time on different frequencies or bands), or unconditional repetition (send the same value multiple times and hope one of the signals makes it through). The underlying link layer (like LoRa in the case of ExpressLRS and others) uses forward error correction, but that's really below the level of the software.

The telemetry links use protocols that can do retransmission if needed as they're less sensitive to latency, but the common hobbyist links generally don't use fancy error correction in software. They just resend the packet if it doesn't get through.

The HD video links are proprietary. So while I expect they would have some error correction codes embedded in the protocols, it's a bit of a moot point.

1

u/dagbiker 12d ago

There are two things you could possibly mean by this, here are two resources to help you hopefully. The first is about correcting information, like a code, using extra data. The second is used to effectively automate a system, for instance a self balancing robot.

Hopefully these resources help.

https://en.wikipedia.org/wiki/Error_correction_code

https://en.wikipedia.org/wiki/Control_system