Every now and then it's good to pack light and leave the laptop at home and just enjoy flying. Running out of battery at inconvenient time is however a concern of mine. I just recently finished a project to display telemetry data from APM on Aurora's screen. I'm not particularly proud of the technical side of the implementation, but this seems to work fine.


Hitec's Optima receivers interface with "Sensor station" via I2C, receiver being the master. APM has I2C-bus and it should support multiple masters, but I could never get it working reliably. My solution was to use ATMega88 to receive data via SPI from APM and relay the data to forward by answering queries send by the receiver. The circuit itself is really simple, just the avr, two resistors and a decoupling capacitor.




All the information that could be get from the sensor station are emulated from the data from APM, even including fuel meter, which tells how much mAh are remaining from the rated capacity of the battery. Only thing that I haven't implemented is GPS position and time, since they are not really useful without a map. One nice thing is that on Aurora, you can rename temp and rpm labels. I'm using rpm-1 value for mAh's used and rpm-2 for airspeed. Temp-2 is used to show the current throttle (0-100). Temp-3 and 4 are still left for some other data.


I'm really happy to get this working, since all the important data is available from transmitter screen with one glance and since the APM sends the data via xbee, this is a nice to have backup feature.


If somebody wants to use this too, I can provide sources and schematic later.




E-mail me when people leave their comments –

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

Join diydrones


  • It turns out it was the pullup resistors.  As a rule of thumb, I've always used 4.7k for each device on the i2c bus (adding more as I chain more devices).  When I dropped it down to 2.2k it started working.  I guess the receiver has a bit more capacitance than your typical i2c device.

    I didn't use the Makefile at all.  I just used the simple arduino tools.

  • @Tim: Couple of things to note: Have you changed the processor type in the Makefile? In my code, ATMega8 is used. Code should be compatible without modifications, but it must be compiled to different processor. Another thing are the I2C bus pull-up resistor values. My board runs at 5v, if you are using 3.3v, values might have to be changed.

    You should get some values without APM connected. Board might need to be powered on before transmitter. If everything works, tx should display telemetry menu when entering sensors menu or pressing battery voltage at the main screen.

  • I'm trying to get this working with an arduino pro mini 3.3v rather than building the sensor station board since I have several lying around and don't have any loose atmegas.

    When I turn on the transmitter, I see the mini entering the Send_Hitec block and sending the telemetry data across the i2c bus to the receiver. Presumably it is hooked up correctly or else it wouldn't get far enough to verify the i2c address, but I don't see any indication that there is telemetry from the transmitter side.

    I haven't yet hooked up the APM, should I be able to see zeros for telemetry?

  • @Marooned: Unfortunately Aurora does not currently show the distance, just the coordinates. I hope they'd at the distance and direction in some future firmware upgrade. Would be highly useful.

  • If you store the starting location you can use current GPS to display the distance from the aircraft and direction. Sounds highly useful.

  • @robincfey: It would be nice to make a product out of this, but the problem is that if I'd sent ready build device, one would still need to solder the wires to APM and also flash custom software.

    Since so few people need this feature, It would be hard to get it included to APM code as a standard feature and if it's not, updates are a problem since the current patch may need to be modified to be compatible with future APM code.

  • i was just wondering how to get that info displayed on my aurora 9 , my  knowledge of electronics on this level is very limited but i would love a plug and play version , and would be happy to pay for it , maybe APM could implement it in the next release , if anyone wants to build me one just msg me and ill send some money

  • For those that are interested, more details and code is available here: http://antibore.wordpress.com/2011/11/23/showing-apm-telemetry-data...

  • Janne, remember that the A9 wants to see degrees in C. For me I wanted to leave the temp in F, for one sensor I have on my ESC. I wanted numbers from 1 to 6, but had to use what the A9 conversion was, but still worked. My problem was gps date & time, then what waypoint it was heading for. I have had problems where the apm switched waypoints to RTL, if it was displayed on the A9 I could at least know why the plane was off course. Anyway like your project, might try it myself if I can get my APM working right again.

  • @Burt: Btw, thanks for the idea that one of temp values could show the flight mode. One thing that I miss for Aurora is a rotary switch with multiple positions. I'm running out of switches for modes. The sliders on bottom side could be configured for modes, but then there would be no feedback which mode is selected. Until now =)

This reply was deleted.