Getting linux Console Access with 3DR Radios

Hi Team

I need your help… Is there any way to get linux console access using 3DR Radios?

Thanks in advance for your answers

Not when running APM because the protocol is MAVLink, unless there is a back door we do not know about.

Such a feature should not be allowed as it would be a security risk, possible to hack drones (3DR radio is not encrypted and not secured other than ground station number).

For that we have WiFi or some kind of programmatic solution on top, like implementing one of the autopilot specific MAV_CMD’s such as MAV_CMD_DO_SET_MODE (with a custom mode) or setting a custom parameter as a trigger.

Similarly if you wanted to execute commands when certain events occur, you can listen-in on the MAVLink protocol via a local proxy application, e.g. use one of the triggers (camera or raw RC input/switch) to execute your code.

EDIT: There is a Linux specific “hook” you can edit in the source code to really integrate into APM. But then you are not running with standard code. I prefer the add-on via MAVLink proxy design as that is truly portable as a tool/product/add-on.

See for more information on MAVLink. Search the forum here about the Linux hook I remember one of the guys from Emlid answered a question about that already.

If you are trying to hack or “security test” drones I would like to know if the pre-flight reboot and calibration commands work when in the air (hopefully not). I guess MAVLink is not secure in case anyone tested it. All the more reason to “upgrade” to WiFi (with WPA2 private shared key at least or better an “enterprise” certificate) for secure telemetry and a wider data stream.

Interesting question. I guess, one could implement a console emulator which is pushing the data via a radio link.
However, I think that radio are not the optimal choice for this :smiley:

Hey I started working on a way of doing such a thing but I haven’t had the time to do so as I graduated and found a job. Basically my idea was to route MavLink over UDP to a program that I was writing. This program would also act as kind of a ssh-like-server and mavlink relay, it would transmit both the console and mavlink over the radio. And a ground station program would act as a shell and relay for mavlink.

The problem I ran into with this was detecting dropped packets or partial packets via a protocol, I was in the middle of solving that problem and I was offered a job as a developer. I haven’t had the time to go back and finish it.

I don’t know if you can program but here are some things I learned while writing the program: if you do my way and write a program turn off mavlink framing in the radios via apm planner or mission planner. You theoretically could spawn a getty on a usb serial port or via the uart pins and have a simple console with gnu screen but a lost packet will screw the entire thing up. If you can add encryption to the radio signal via the robot and ground program, I used a simple stream cipher for testing.

I would share the program I was working on but it needs to be cleaned up badly. If anybody knows how to program in C or C++ I would definitely try to help.

So you need something like:

Security + UDP + SSH + MAVProxy

That’s standard networking, zero development. Just use WiFI or GSM dongle, they are 100s to 1000s of times faster too.

Wifi and cellular are not always options
WIFI: For something that won’t go out of range thats fine,
Cellular: Some people can’t afford cellular data. I for one will not be paying 60 a month for cellular on my laptop and my drone, so it would work in the field. Many Cell networks are now behind nats or firewalls so ssh in is not an option. If on cellular and its impossible to ssh into the drone needs to reverse ssh out to a server adding on to the monthly cost for some people.

This is where my program would fit nicely, trust me if I could use wifi or cellular I would. I myself have radios that apparently get ideally 5 to 7 miles but I’ve only tested to 3 miles. I would love for Wifi and Cellular to work in my case but they don’t work for me due to range and price respectively.

Fair enough. Of course WiFi has long range solutions too but as you say it’s not a budget solution.

I do like your idea of solving the security problem with the 3DR radios though. That’s a useful feature alone and for people using these devices generally as a serial bridge.

I remember people asked for that before on the APM forum, but the answer was that their (Pixhawk) processors did not have enough RAM or CPU spare to implement it. With Navio that should not be a problem.