Custom Arduino 2.4Ghz RC transmitter

by patolin | May 21, 2013 | (13) Posted in Projects

I love electronics, and RC, so, why dont mix them up!

I had a Hobbyking 2.4ghz 6ch transmitter, and its a great starter radio, but the lack of model memories made me take the 2.4Ghz module off the radio, and program a new radio computer with an Arduino Uno.

The new TX has a few more extras than the original:

  • 4 model memory (expandable..... i dont know how long, I only have 4 planes)
  • 4 channels (expanded to 6 with the new arduino that arrives)
  • Throtle cut switch
  • Programmable dual rates for each channel
  • Servo reversing
  • Works on a 2S 1000mah LiPo battery
  • 2x16 LCD with keypad (a standard arduino shield one)
  • Wood enclosure (yeah, its a prototype)
  • Expo, channel mixing, and anything you want can be programmed

If anybody is interested, in this link http://patolin.com/blog/2013/05/05/transmisor-de-2-4ghz-con-arduino/ you can find all the schematics, and the arduino code.

I think that this will be a great kit for DIY lovers, so I will be open to any comments, or ideas for include into the transmitter.

COMMENTS

nickatredbox on May 23, 2013
I got one just like it

http://kiwitricopter.blogspot.co.nz/2012/11/it-flys-maiden-flight-of-yellow-plane.html?q=xbee

Keep up the good work
Log In to reply
rcspaceflight on May 23, 2013
I always thought it would be awesome to get a flight simulator controller/joystick and use that as a Tx. Especially for FPV. It would be a blend of flight simulator and FPV into something that is a lot closer to flying a real plane.

http://www.amazon.com/Saitek-X52-Flight-Control-System/dp/B00030GSJY/ref=sr_1_4?ie=UTF8&qid=1369316733&sr=8-4&keywords=flight+simulator+controller

-or-

http://www.amazon.com/Saitek-CES432100002-02-Flight-Cessna/dp/B0058FAEAS/ref=sr_1_1?ie=UTF8&qid=1369316733&sr=8-1&keywords=flight+simulator+controller

Although the second one would take up a lot of space and be a very complicated build. It may not be a realistic idea, but I still think it would be awesome.
Log In to reply
patolin on May 23, 2013
There you have 2 chances, or dissasemble the joysticks and connect the potentiometers directly to the arduino, or use a PC with the joystick connected to the usb port, and some kind of electronics black magic (lol) to generate the PPM pulses from the soundcard, or the arduino connected to the USB port. It may not be impossible (in fact is not that complicated as it sounds), and with the correct setup, you can use your laptop as fpv video platform and controller. a $200 netbook can do the job fairly good
Log In to reply
baconflyer on May 24, 2013
or you can also use an ardupilot with 900mhz usb telemetry system and control it with a joystick over that link.
Log In to reply
c.sitas on May 23, 2013
Hello; You mention the throttle cut switch,how and where do you hook it up please? I think that is a really great safety feature
Log In to reply
patolin on May 23, 2013
The throttle cut is conected to one of the digital input pins of the Arduino. In the arduino sketch is coded a function that detects the state of that switch (open or closed) and if its closes, it forces the throttle value to 0, and cuts the motor power. The "plus" using an arduino is that its soooo easy to add new functions to your transmitter
Log In to reply
nickatredbox on May 23, 2013
Are you using an Xbee ?
Log In to reply
patolin on May 23, 2013
No Nickatredbox.

Im using an Arduino for the potentiometers and switches readings, and a Flysky 2.4Ghz tx module that I had from a spare hobbyking 6ch transmitter. The arduino generates the PPM signal based on the gimbal inputs, and that signal is passed to the flysky module. You can use any module that receives a PPM signal as input. Its fairly easy
Log In to reply
nickatredbox on May 23, 2013
I didn't do that with mine is the code for the PPM generation available ?
Mine has a custom RX and 2 Xbee's which does allow telemetery. Down side it the RX is a bit bulky/heavy. I would like to try your method.

All my code and such is here http://kiwitricopter.blogspot.co.nz/2012/11/it-flys-maiden-flight-of-yellow-plane.html

Log In to reply
patolin on May 23, 2013
From what i´ve read, Xbee is a very powerful platform for communications. I havent tried it because its unavailable here in Ecuador, and ordering one is very expensive.

For the PPM generation code, you can download the arduino library Im using from here https://www.box.com/s/od2s9b8zzaefxgr1yuen and my arduino sketch from here https://www.box.com/s/vo4wift3jmv6x764semk

My code is pretty "beta" state, and can be improved. But what I can tell you is that the PPM pulse is generated via Timer 0 Interrupts. Its not that hard when you get the idea of how it works.
Log In to reply
nickatredbox on May 23, 2013
http://flitetest.com/articles/Scratch_Built_Remote_Control
Log In to reply
patolin on May 23, 2013
Nice design, may be one day I will try those xbee boards. It seems that they have longer range than standard 2.4Ghz tx modules
Log In to reply
zodrik on May 23, 2013
hi there,nice job...
can u please tell me what pins from the frskt tx do u use to hook up with arduino board?
Is this the correct diagram?
1 ppm
2 ground
3 v+
4 ground
5 rf

Log In to reply
patolin on May 23, 2013
Hello zodrik

Im just using 3 pins to connect the rf module to the arduino: v+, gnd, ppm

You have to be careful, my 2.4ghz board uses a 5v power voltaje, but it has a 3.3v regulator inside. I read about some modules that need 3.3v in the v+ pin.

Besides that, the PPM signal MUST BE 3.3v, so thats why I have a voltage divisor in the input (check the schematic here http://patolin.com/files/2013/05/tx-300x214.png).

Another thing to consider is the PPM polarity. My module uses inverse polarity (high in steady state for ppm pulse), and you need to check that in the manual of your module. Here is a waveform of the ppm signal that is generated in the pin 9 of the Arduino http://patolin.com/files/2013/03/2013-03-09_23-02-09_575-300x168.jpg
Log In to reply
zodrik on May 23, 2013
thanks a lot,I already check the voltage and is 3.3,so i'm safe,what i'm going to use is not the frsky tx,but the 433 mhz openlsrl,that have the same pins diagram of frsky.....the only things I don't ge is what are the 2 pins left for? What is the 5th pin (RF) for?
Log In to reply
patolin on May 23, 2013
In my board, there is an additional pin, that is used for the bind switch (its a switch connected between that pin and ground) May be thats your case too
Log In to reply
zodrik on May 23, 2013
i think u r right......Obrigado
Log In to reply
patolin on May 23, 2013
Glad to help you. If you have a post about your project, share it with us
Log In to reply
zodrik on May 23, 2013
sure I'll when I'll put everything together! :)
Log In to reply
nickatredbox on May 24, 2013
How do you get it to bind?
I assume its a PPM signal pattern sent to the TX module?
Log In to reply
patolin on May 26, 2013
Yes, the Arduino generates a PPM signal based on gimbal´s ports readings, and switches selection. My receivers are already bind to the TX module, so they work without any changes. For new receivers, I think I must connect the bind switch to the module, and use it.
Log In to reply
patolin on May 26, 2013
What Im going to do, Its a better case for the transmitter. Or may be, use the original transmitter case, and drill holes for LCD and buttons. I just get an arduino nano, and It will fit easily in the old case :)
Log In to reply
TheRCNewbie on May 26, 2013
Dear Patolin,

Please can you give me a pinout of the module you got from the Hobbyking radio
I believe I have the same one (HK6S) and I would like to use it to upgrade a 35mhz radio to 2.4 using that module.

Thanks, TheRCNewbie
Log In to reply
patolin on May 26, 2013
Here is a picture of the 2.4Ghz module, and the pinout Im using.
I dont know if yours is like mine, but the wires on the connector use wrong colors (red for gnd and brown for vcc)

http://patolin.com/?attachment_id=509
Log In to reply
TheRCNewbie on May 27, 2013
Thanks so much, it really means a lot to me!!!

Log In to reply
patolin on May 26, 2013
BTW, here is a video of a full range test of the transmitter, using my clouds fly glider. sadly, ended in a crash because of wind gusts. http://www.youtube.com/watch?v=FDcFfKmO97g&feature=youtube_gdata
Log In to reply
mirws on October 30, 2013
Hi Patolin, would you please help me to identify my HK6S TX module, so I can use it in arduino transmitter project
This is my tx module picture
http://i922.photobucket.com/albums/ad67/mirws378/0e28e98d-9bef-49ea-9f77-33eb41473e52_zpsc55966fa.jpg
Log In to reply
patolin on October 30, 2013
Let me check your module picture against my module at night, when I get home. Seems its the same one, but I dont remember the actual pinout
Log In to reply
patolin on November 4, 2013
Hello mirws. Sadly I cant find your module pinout. How experienced are you with electronics? because you can trace the vcc, gnd and bind pins just looking on the board. For the ppm signal you may need to use an oscilloscope.
Log In to reply
mirws on November 5, 2013
Hi patolin, I'm not really experience with electronics, but I believe I can find the vcc and gnd pins. The bad news, I dont have oscilloscope to find out ppm signal :(
BTW thanks for all your effort to help me here.
Log In to reply
patolin on November 5, 2013
Its no big deal, since PPM signal is no high frequency, you can use an arduino to build a quick-o-scope with your PC, check this out this link

http://www.instructables.com/id/Arduino-Multi-Channel-Oscilloscope-Poor-Mans-O/

I just built something like that using a stellaris launchpad. Its a faster microcontroller, but the idea is the same

http://patolin.com/blog/2013/07/07/osciloscopio-con-stellaris-launchpad-actualizacion/
Log In to reply
Supagriff on November 17, 2013
Hey there patolin, I have a few questions for you. I have a flight yolk, rudder pedals, and mix/throttle/pitch levers and they use linear motion pots @ 100k. I would like to not have to modify these potentiometers and just hook up the arduino to read them. I also have a FlySky 2.4 transmitter module in a cheap radio of mine. So I would like to connect all of these things together but I am not sure where to start. I don't need an LCD screen or anything fancy. I would just like to have a small program that reads the state of my potentiometers and sends out the PPM. Can you help me? I have a good bit of knowledge in electronics but I am not a strong programmer. I would really like to make a realistic FPV Cockpit with as little internal modifications as possible. Thank you so much!
Log In to reply
patolin on November 18, 2013
Hello Supagriff

Well, you can use all your stuff with an arduino. Using an arduino uno you got 5 analog inputs free for connect up to 5 pots, each one for one ppm channel.

I started a long time ago a thread on rcgroups with all the code and schematics of the arduino transmitter. Here is the URL

http://www.rcgroups.com/forums/showthread.php?t=1817699

You can use the last version of the code, without any LCD screen or keyboard, if you want to. Check the thread, and if you need further help, let me know.

By the way, Im uploading the transmitter, using a graphic lcd from a nokia 5100 board. Very cheap and awesome screen. Here is a video of the gui and setup tests.

http://www.youtube.com/watch?v=-JXMU5TMpv0
Log In to reply
Supagriff on November 19, 2013
The link is really awesome! I am reading through the 11 pages and I have looked at the schematic before, but I cant read anything on there except for the 10k Pots. I also dont really know what pins go to the transmitter once I rip it out of the housing. The board has labels on it (vcc,gnd, ppm, etc) But I have no idea where they are supposed to be wired. I guess the code should be really simple but I have never dealt with PPM (only PWM) so my knowledge is limited. SO, I will finish reading the forum post, but will mot likely need some baby steps to get me where I need to go


Log In to reply
Supagriff on November 19, 2013
I also just started a new build thread here: http://www.rcgroups.com/forums/showthread.php?t=2040056#post26683621

If you would like to check it out. Thanks!
Log In to reply
rishu on August 19, 2015
which receiver you will use for the transmitter. Is it same as the ct6b receiver use? Thanks in advance.
Log In to reply
patolin on September 1, 2015
Im using the same receiver that came with the old transmitter. I dont know exactly the receiver model, but I think you're right with the ct6b rx model. I got 2 spare receivers wich work without issues.
Log In to reply
jurajko on January 8, 2018
Hello Patolin,
great works!
I started my first RCTX project (ver_ 7.0) with Arduino UNO and Keypad shield but I have not 3,3V in output PPM(pin 9). I have only about 0,45V and my OrangeRX 2,4Ghz module not work. Can you help me?
Thanks.
Regards from Slovakia
(sorry for my English)
Log In to reply
patolin on January 15, 2018
Have you checked the voltage with a multimeter, or an oscilloscope? Because when you measure a time changing signal (like the PPM output) the multimeter will not read the real value.
Log In to reply

You need to log-in to comment on articles.


Custom Arduino 2.4Ghz RC transmitter