jDrones News: jD-IOBoard goes MAVLink


jDrones NEWS: IOBoard goes MAVLink 1.0

Time has come to make another exciting release. New software has been released for our mini IOBoard. With this software you are not anymore depending on static flashes, blinks and other patterns.

We made blog post about basic jD-IOBoard few weeks ago and you can read it in here. Now it just get's better and better.

jD-IOBoard now listens full MAVLink 1.0 protocol and acts depending on flight modes. Currently we are supporting ArduCopter and ArduPlane style flight modes but more has been planned. Basically all MAVLink compatible systems works fine with this.

Big thanks to Michael Oborne for his great jD-IOBoard Confgurator program that allows users easily to configure and test play different patterns. Michael is the man behind Mission Planner and also OSD Configurator. 


On configurator you can create 16 step patterns and 8 patterns that can be binded on different flight modes. On right hand side of every pattern you have Test box where you can simulate your pattern. Just click Test and then change on/off positions to get your desired outcome. 

With Configurator you can also upload our latest HEX files from Arducodes repository.

Here is quick demo video of how it works in real-life with 3 different patterns. 

Currently we are only allowing REAR pattern to be changed but in future there will be others coming too. 

You can always find latest HEX and other files from our: Arducodes repository (jD-IOBoard 1.4 MAVLink. HEX)

Latest Configurator can always been downloaded from our: Software repository  (Setup.EXE). Setup file is available on our Arducodes repository too.

Configurator has builtin update feature installed so it will make sure that you always have latest version of it. Source code is on our repository.

jD-IOBoard can be found from our store at and also from our distributors around world. 

Have fun with your flashing lights. Evenings are getting darker but planes and copter more brighter.


Jani / jDrones

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Hey guys, I ordered 2 of these Jd-IOBoards, I want to use them for both the LED stuff and the ability to translate MAVlink int FrSky telemetry. My question is, do you need a level shifter between the io boards pin5 and the receiver? I have a D8R-XP and a D6FR.

  • Jani, I'm connecting ioboard, osd and xbee to APM2.5. According to your diagram I should use the telemetry port but would it be preferable to use the i2c port instead? Is it possible to use the i2c port and telemetry port or is there no advantage? Just looking for the best way to hook these 3 up together. In the beginning of the doc you say it's easiest to power it connected to the i2c but the diagrams don't show that connection.

  • Jani, is your tele expander available yet?

  • Developer

    Pins 5,6 are used for SoftwareSerial that communicates with FrSky modules, SS needs to have both Rx,Tx pins configured or it does not work properly. 

    Also there might be upstream commands possible in future from your radio/display 

  • Developer

    These small little telemetry expanders will be available in jDrones on beginning of next year.

    They are fully assembled and fits on APM2.5 cables + generic cables. 


    Normal telemetry is passtrough and then IOBoard/OSD and other secondary devices connects on vertical pins, If you don't have telemetry you can start MAVLink requests by pressing the small button or just to have jumper to permanently allow those requests to flow. 

  • @Jani: Thanks for the information.

    However, I got it working without having to share Rx among several devices by following an advice from


















    Another question? Why is there Pin5 _and_ Pin6 reserved for Frsky Telemetry?

    shouldn't Pin5 be enough?



  • Developer

    Christian, yes that is normal way how MAVLink works. Same with OSD. If you don't have telemetry you need to connect Rx signal wire too so OSD/IOBoard can request proper update rates from MAVLink. If you do not request those update rates, MAVLink does not "speak" needed values and this case it would only send heartbeat data but that's about it.

    That's why we made this board that helps you to connect IOBoard, Telemetry and OSD as all or as single units.

  • got it! in case others have the same problem like me: check the following

  • in addition to what I am asking in my prior comment I found at

    which is most likely the reason for the problem:


    Data is showing up only when MinimOSD's TX is connected to APM's RX

    This isn't a problem with the firmware. Your APM isn't sending the data automatically. So, because of that you need to request data rates from APM by using the Mission Planer, another GCS or even by your OSD board. That's why it just works with TX connected. ArduPlane saves the requested rates on EEPROM (last request from a GCS or OSD). ArduCopter doesn't do that. E,g. Check on Mission Planner: Configuration >> Parameter List: All the params with the prefix "SR3" are related to this. E.g.: SR3_Extra1 = 5 means the IMU data being sent through telem port (serial 3) five times per second. If that wasn't set, so it will not send IMU data without a explicit requesting.


    does somone have an idea how to overcome that or how to proper deal with several devices sharing one Rx-line?

    thanks a lot in advance and best regards from vienna.


  • Hi!

    I am using JD-IOBoard for Frsky Telemetry and I am a bit confused, if Rx should be shared with Telemetry, JD-IO and OSD? In fact my understanding was that OSD and JD-IO only require Tx (and +5V and GND of course).

    However, when having only Tx connected, JD-IO will start sending Telemetry via Frsky only as soon as I establish a telemetry connection towards my 3DR Radio, which is odd, since sometimes I do not use the 3DR Radio, but want to have telemetry on my 9x though.

    When connecting Rx and Tx to JD-IO I get telemetry to my Frsky after approx. 60 sec.

    Additionally I recognized that when sharing Rx between 3DR Radio and JD-IO they will somehow interfere each other resulting in situation where I cannot get a proper link then. In most cases I have to power cycle my Quad while having my Ground station trying to get a link. doing this way 3DR Radio seems to ask for telemetry before JD-IO does and I get both.

    I believe I read somewhere some time ago how to tweak ArduCopter to start sending telemetry without requesting it before explicitly.

    Does please someone have a hint for me?



This reply was deleted.