ArduPilotMega + Spektrum satellite Rx -- NOW AVAILABLE

Hi guys. Here's a little experiment we did yesterday using Doug Weibel's spektrum-to-PPM substitute firmware for the APM's ATmega328P, an upcoming (now available here!) Spektrum Adapter accessory board, and an ArduCopter. Sorry about the lack of video, but I can assure you our resident quad pilot Jeff Taylor flew this here at the shop with good results (considering none of this is fully baked)!


The Spektrum Adapter accessory powers the Spektrum module with an on-board 3.3V regulator, takes care of level translation on the single serial line, and has an input pin to enable/disable the regulator (this is used for putting the satellite in bind mode). The four pins are GND, 5V, data, and regulator enable.


I wrote a (very) crude sketch to put the satellite in different bind modes, you can grab it here: I've tested it with DSM2, DSMX, and Orange Rx satellites. I've found that "DSM2 1024/22ms" mode is the one that works with Doug's firmware. The sketch is meant to be used on any Arduino Mega style board, it uses Tx1 to enable the regulator and consequently the satellite at the right moment to then receive the bind mode pulses sent out through Rx1. Once the sat is in bind mode, Rx1 is configured as an input again to receive the serial data after binding.

The ATmega328P needs to be re-programmed with Doug's firmware. You can either Arduino-ify the chip with the right bootloader and load the sketch through an FTDI cable connected to IN1 and IN2, or take the easy way and verify the sketch, grab the .hex file, and load it with an AVR ISP programmer.


Once the sat is bound, I soldered the adapter board on to an APM as seen in the photo, directly on the three IN1 pins. IN1 is the 328's Rx and is the only pin needed to receive the satellite's channel data. The small blue wire in the photo is connecting the 5V and reg enable pins to keep the regulator on at all times. The 328's Tx line could also be set high at all times to do the same thing, maybe the binding modes can be integrated into the 328 firmware as well?


After this, all should be the same as when using the full Rx module with servo extension cables. We found no problems with this setup during the Mission Planner configuration steps.


The Spektrum Adapter boards are now in stock in the store! Feedback for future revisions is welcome, and happy hacking!

Views: 16899

Comment by Olivier ADLER on August 25, 2011 at 3:47pm


Another advantage of using a satellite, is that you can easily use a long connection cable, so that you can put the satellite far from frame structure.


This will reduce masking effects.


With a normal receiver, it's more difficult to put it far from the central dome.

Comment by druckgott on August 26, 2011 at 4:00am

I have ordert one and will test it very cool

Comment by Neil McCoy on September 17, 2011 at 5:45am

Hi, just to let you know the link for the code above is broken, i've spent ages trying to find it !

I suppose I should have asked, anyway, finally found it here -



3D Robotics
Comment by Chris Anderson on September 17, 2011 at 5:51am

Neil, we've moved to a Git repository since then. I think this is the one you mean.

Comment by Sam Kelly on September 17, 2011 at 8:24pm

Chris, I can't find Doug's spektrum to PPM branch on the new repo. Looks like the the Arducoder branch isn't on there either (yet?)

Neil, yes that's the one.

3D Robotics
Comment by Chris Anderson on September 18, 2011 at 1:40am

Sam, can you port those over, please? If you're not sure how, ping Tridge.

Comment by Scott Zerby on September 19, 2011 at 9:43am

Where's the firmware - the link here gives this error-


The requested URL /p/ardupilot-mega/source/browse/PPMEncoder/branches/spektrum_to_ppm_encoder/spektrum_to_ppm_encoder.pdewas not found on this server. That’s all we know.

Comment by Olivier ADLER on September 19, 2011 at 12:12pm


You should find it in my Git clone, it will be integrated later in the main Git.

Comment by druckgott on September 24, 2011 at 10:37am

where can I get the hex file?

And I do not understand the first step. How do I bind the Satelit.

Do I only have to connect the adapter to the board like the picture and then loade the sketch on the Atmega 1280 board? And then let it ran with serial?

Comment by druckgott on September 24, 2011 at 1:33pm

Ok now I have bind the satelit, but I think I have a wrong hex file, do anybody have one for atmega328p???


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service