IO Co-processor


I am using PX4 for a quite some time now for fixed wing UAVs, and recently acquired a Navio2, as I thought it would allow fancier controllers thanks to the processing power of a Raspberry Pi 2 / 3. Anyway, my question is:

On Pixhawk, there is also a IO co-processor, similar to the one used on Navio2. It even allows flying in case that the autopilot (the FMU) crashes. I guess that this would (in principle) also be possible on the Navio. But as soon as I kill the ArduPlane programm on raspberry, there is no PWM output anymore. In my opinion, Navio would benefit a lot from such a feature as on pixhawk, where PWM signals are directly generated from RC signals if the main processor fails.

Is something in this direction available and I was unable to find it? or is it planned from you guys from Emlid?


I’m not for EMLID but got a few questions how this works.

On the Pixhawk if the FMU crashes and its still putting out PWM, what do the PWM represent? Just a stable loiter, or does it keep the same PWM signal, in that case thats not really good either. Be curious how that works.

As far as the Navio2 I think in the forums you can search on that. Basically if the ArduPilot crashes the PWM stop as a safety feature.

I could not find something in this direction in the forums, this is why I made this post. i’m just not sure, if I looked for the propper keywords.

on pixhawk, there are 2 processors, the FMU and the IO. in normal operation, the fmu is in charge of any autopilot/augmented control. but should it crash for whatever reason, you still have manual control of the plane (copter? i’m not sure how it works there) over the IO. so the rc signals are decoded and mixed to generate pwm signals by the IO processor. As the code running on the io is changed less often and well tested, chances are really low that it will crash.
this is in my opinion way safer than not outputting anything.

of course, this also only works if you have rc connection.
if also the rc connection fails, it goes into failsafe, as for instance spektrum rc does: some preset output. on a plane, you can set it to a slight roll and of course motor off. chances are higher, that your plane will not dive nose down.

this principle of having rc even if the pi crashes could of course also be achieved with an extra multiplexer in the plane. but in my oppinion, everything would be allready in place on the navio. it just needs to be used.

I really would be interested to hear, what the guys from EMLID have to say about this…

1 Like

I would really appreciate some insight into this from you guys from EMLID… is there anything you’re willing to share regarding future plans of extending the use of the IO?

Is this post still valid: Is there source code for the RC IO processor? - #2 by igor.vereninov ?

@thomasm we are doing a big rework of the RC IO code. Failsafe with manual control for a plane should be included, but it won’t work for copters in a principle. Yes, it’s valid - still no ETA, unfortunately.

Thanks for your answer! It’s good to know that you guys are working on that, and even with failsafe control for a plane!

Hope to hear again about that as soon as possible :wink:

Hi there…
I would really love to see something in this direction.
Are you still working on a possibility of failsafe with manual control for a plane? I also would be happy to do beta testing if you have something working in that direction.

I really think for planes it’s a necessary feature to have the possibility to control your plane even though the flight stack crashed, so with just the IO operational.

(would of course also be nice for multi-copters, but not really possible there…)


Any developments in this space ?

I currently plan to use the Navio 2 on a ground platform and would like the system to divert to Manual control if the auto pilot or RP crashes
I was planning on using an arduino as a secondary processor and read in signals from the receiver.

We’re planning an upgrade to RCIO firmware in the forthcoming release.

And we’ll be implementing the failsafe feature in the next couple of months. So it’ll be possible to gain access to your Plane or Rover in case of an unlikely RPi crash. If you want to test earlier we’ll be pleased to include you in the beta-testing stage.

Thanks for the update.
I’m really looking forward to this feature! Are you already in the beta-testing stage?
I might allocate some time for putting everything into a test-plane.

Hi, I am also interested in this new feature. Is there any way that I could be included in the beta-testing stage? Thanks.

Guys, we remember about this feature and we’ll release a beta firmware sometime soon. But unfortunately I cannot give you any estimates as it’s a major work. One of our engineers is looking into the problem. I’ll keep you posted.


I was wondering if there was any progress regarding the rcio firmware.
Our team would be particularly interested to read out the “failsafe activated” bit from the sbus protocol from a Futaba R7008SB receiver.


I too would like to get an update on this feature