This is the latest iteration of ArdupilotMega to Hitec telemetry adapter. This version does not require changes to APM code anymore, but instead functions as a standalone device. Displayed information has been changed a little bit, here’s the current mapping:
||Distance to home
||Battery remaining (%)
||Variometer (climb / sink rate)
||Armed status (1 = Armed)
It’s possible to rename the fields in Aurora like this:
Fixed fields (sat count, speed, altitude etc.) function as expected. Only thing that does not work is the date and time. Sadly it’s not possible any more to display “mAh used”, since as far as I can see there is not way to subscribe to that information in APM. I wonder if anybody opposes if I’d add MAVLINK message for that. Of course if you always use same capacity batteries this is not a problem, because you can check battery remaining reading from TEMP1, but since I have many different types of batteries, I’d need to change battery capacity parameter before each flight.
It’s possible to customize displayed data by airframe type, for example airspeed and variometer are probably not interesting to copter users, whereas Armed and heading might be. If you have suggestions, please tell me!
The adapter itself is simple and small. I designed PCB this time with SMD components this time to make it smaller. The adapter connects to APM telemetry port and has a pass through to radio. When the adapter is powered up, it sends messages to APM to subscribe data feeds. When APM starts to send all the requested streams, adapter turns it’s UART off to avoid disturbing telemetry communication. There’s a place to mount fet on the top side of board to connect video transmitter power after adapter detects GPS fix. I added this feature since if I have my video tx on, getting GPS fix takes for ages.
I tried to save few euros by choosing ATMega168p as a processor since the code takes only 11KB, but I quickly found out that MAVLINK message handling uses a good amount of ram, so I changed MCU type to ATMega328p to schematic. It’s still possible to use 168, if you define MAVLINK_MAX_PAYLOAD_LEN to 35. Any smaller makes it impossible to receive position message and any larger crashed the program. Compile with 8MHz clock speed and when programming, check that “Divide clock by 8″ fuse on low fuse word is not programmed.
Sources and Eagle files are uploaded to gitorious: https://gitorious.org/apm-hss-emulator/apm-hss-emulator
Now if I only could get my hands on some different brand radios (Spectrum, Futaba, Graupner…) I could try to make this adapter universal!
Have fun and tell me what you think!