communication between arduino uno and reciever!!

hey guys. im working on my quadcopter project and it seems that ive hit a big wall of brick. i cant seem to know what sort of communication langauge (ppm ,pwm, sbus…) my arduino uno is capable of understanding? this is neccesary to know , since i must choose my corresponding reciever with the appropriate “language” that the UNO understands.
thanks in advance

It's rather difficult to help as you have not even told us

  • what sort of receiver you are using
  • what is being received
  • what you want the Arduino to do with the data that it receives.

And there are probably half a dozen other things you could tell us that would help us to help you.

...R

brother , the whole goal of my question is to figure out what reciever should i use so that the arduino understands its protocol! i have a reciever i got from an old helicopter but i dont know what protocol it supports and if it can be used with the arduino. Below is a ggogle drive link with pics of the reciever+Transmitter im talking about.
https://drive.google.com/drive/folders/0B4vb9x0JJoIiM29OOG1EM2UyTFU?usp=sharing

secondly, im meaning to connect the reciever signal wires to the digital ports on the right of the UNO. the signals sent through these pins are intended to controll the pitch , yaw, throttle and roll of my quadcopter(dont know if that helps you undertand what im talking about).

thirdly, the arduino UNO is intended to recieve these signals and controll the motors.

the reason its important to me to know what reciever protocol the arduino can understand is to make shure i choose the appropriate reciever that can succesfully commuvicate with the arduino.

by the way , does the arduino understand only one protocol , or does its understanding of the protocol depend on the software code uploaded to it?

im sorry for the silly questions but i honestly dont understand what reciever should i choose.
any help is deeplllyyy appreciated

That looks like a conventional RC receiver. It will have outputs intended for servos, which require regular pulses of variable duration to command the servo position.

You can very easily input these into an Arduino, with the pulseIn() function. However, if there's many inputs you waste a lot of time reading each one in turn. This means the response of your Arduino control system may be too slow to adequately control a quadcopter. A smaller copter is more difficult to control. Are you building a big or small one?

so from what i understan from you , this recievers protocol is PWM ,right? and it can be easly used on an arduino!!
im not building a large quadcopter. in fact to simplify things to you , here is a link to the tuturial videos that im following on youtube . i am buliding the same quad as them(same electronic components, dimensions , lipo battery size ,...).

the inputs to the arduino uno are the 4 signal wires of the ESCs, the gyro, the signal wires from the reciever and a couple of resistors .
hope this helps you

by the way, the reason for my confusion is that a local RC store employee told me that i must use a reciever that supports S-BUS since this is the only protocol that the arduino can communicate with ? is this right by any means?
thank you in advance brother.

You are not describing what you want to do at all well.

Are you thinking of mounting an Arduino in a quadcopter, using the Arduino to control the quadcopter and wondering how to send wireless data to the Arduino?

If that is the question, and if it was my project, I would not use a regular RC transmitter at all. I would use nRF24L01+ wireless modules. They can exchange data without any need for figuring out PPM pulse widths.

...R
Simple nRF24L01+ Tutorial

Robin2:
You are not describing what you want to do at all well.

Are you thinking of mounting an Arduino in a quadcopter, using the Arduino to control the quadcopter and wondering how to send wireless data to the Arduino?

If that is the question, and if it was my project, I would not use a regular RC transmitter at all. I would use nRF24L01+ wireless modules. They can exchange data without any need for figuring out PPM pulse widths.

...R
Simple nRF24L01+ Tutorial

,am excuse me for not being clear . i am really trying to clarify everything.
I am using the arduino as a flight controller.wich means i am not using a standard flight controller that i baught from an electronics store. so basiclly the arduino is meant to control the quad-copter.
why is it not preferable to use a regular RC TRANSMITTER+RECIEVER ??
would it simply not work with the arduino , or is it because it is not the most aefficient way ?

A regular RC receiver converts the data it receives into streams of pulses to control servos.

If an Arduino is to interpret that it needs to convert those streams of pulses back into data (numbers). That is possible but, as @MorganS said that conversion is hard work for the Arduino to do that and it cannot be as precise as if it had access to the original data.

The other advantage of using something like an nRF24 is that it can send data from the quadcopter back to the base station to help with debugging and diagnostics.

...R

Robin2:
A regular RC receiver converts the data it receives into streams of pulses to control servos.

If an Arduino is to interpret that it needs to convert those streams of pulses back into data (numbers). That is possible but, as @MorganS said that conversion is hard work for the Arduino to do that and it cannot be as precise as if it had access to the original data.

The other advantage of using something like an nRF24 is that it can send data from the quadcopter back to the base station to help with debugging and diagnostics.

...R

ohhhhhh ok man , now i understand what you are saying.
the whole reason for me using an old RC reciever+transmitter is to save some money , as the range of the transmitter is not important to me for now.
BUT basically, I CAN USE THIS OLD RC RECIEVER+TRANSMITTER that i showed you and the arduino will understand its outputs clearly. the only dowside is the hard work that the arduino will be forced to do and the time it needs to put. I GET ITT NOWW.
One question though. Keeping in mind that this is my first quadcopter build and i dont really care about making a 100% efficient quad. Im rather interested in making one that flies for a couple of meters away and has a reasonable stability and fast reply to my commands. SO do you think i can pull it off using this reciever , will it fly and move as i wish ?
also , how will the use of the old RC reciever affect the quads performance physically? will it take it a REALLYY LONG TIME to do my commands??
THANK YOU FOR HELPING BROTHER.

The nRF24L01+ modules are only about £2 each. You could develop your project with them but you would probably need the high powered version (with the external antenna) on your base station for greater range if you want to fly outdoors.

IMHO they would make the programming very much easier. But of course you would also need to build an Arduino based transmittter / base station.

Im rather interested in making one that flies for a couple of meters away and has a reasonable stability and fast reply to my commands. SO do you think i can pull it off using this reciever , will it fly and move as i wish ?

I have never built a quadcopter but AFAIK they need to be programmed so the can fly pretty much with no input from the transmitter - unlike a more traditional model airplane where all the "stability" would be provided by the pilot on the ground. For the quadcopter the control from the ground just tells it what direction to move.

To achieve that the quadcopter needs the onboard Arduino to keep checking its stability and make corrections at a fast rate. It could be that the time taken to detect and interpret the receiver pulses would slow its ability to maintain stability. But, as I said, I have no experience from which to advise you. Have you Googled Arduino quadcopter - you are certainly not the first person to try this.

...R

You can use that old 72MHz transmitter and receiver. It will not have a smaller range or be noticeably slower to respond to commands than a more modern RC receiver would be.

Making a complete flight controller with an Arduino is a complex task but it is possible and plenty of people have already done it.

Good luck - Steve

slipstick:
You can use that old 72MHz transmitter and receiver. It will not have a smaller range or be noticeably slower to respond to commands than a more modern RC receiver would be.

Making a complete flight controller with an Arduino is a complex task but it is possible and plenty of people have already done it.

Good luck - Steve

if i use the old RC transmitter will i have to write specific lines of code so that the arduino will be able to interpret the reciever output? or does this happen automatically inside the arduino?
by the way ,any idea what is the 72MHz reciever range ?
i am actually following a build done by a youtuber called joop brokking , i tried to contact him several times but no response.

slipstick:
You can use that old 72MHz transmitter and receiver. It will not have a smaller range or be noticeably slower to respond to commands than a more modern RC receiver would be.

Making a complete flight controller with an Arduino is a complex task but it is possible and plenty of people have already done it.

Good luck - Steve

Robin2:
The nRF24L01+ modules are only about £2 each. You could develop your project with them but you would probably need the high powered version (with the external antenna) on your base station for greater range if you want to fly outdoors.

IMHO they would make the programming very much easier. But of course you would also need to build an Arduino based transmittter / base station.
I have never built a quadcopter but AFAIK they need to be programmed so the can fly pretty much with no input from the transmitter - unlike a more traditional model airplane where all the “stability” would be provided by the pilot on the ground. For the quadcopter the control from the ground just tells it what direction to move.

To achieve that the quadcopter needs the onboard Arduino to keep checking its stability and make corrections at a fast rate. It could be that the time taken to detect and interpret the receiver pulses would slow its ability to maintain stability. But, as I said, I have no experience from which to advise you. Have you Googled Arduino quadcopter - you are certainly not the first person to try this.

…R

brother, i know i am asking alot of quwstions. this is beacause i am severly depending on the info from this forum to understand what should be done.
a local RC employee told me that the reciever i showed you in the link before is D-BUS reciever and it cant be used with arduino.
any idea what is a d-bus? is my reciever actually d-bus?

You need to post a link to the datasheet or user manual for the receiver. Pictures of it are no help.

...R

Robin2:
You need to post a link to the datasheet or user manual for the receiver. Pictures of it are no help.

...R

since i took the receiver off of an old RC helicopter , i have no datasheet or manual for it.
i am gonna stick to the fact that it is a D-BUS and assume it doesnt work with arduino uno.
im thinking of investing in a new transmitter/ reciever combo.
what kind of reciever protocol should i get to work with arduino? S-BUS or PWM ?
give me your thaughts

George,
I think you may have 'bitten off more than you can chew' (our way of saying that you are not ready for this level of project).

Google 'MultiWii'. do a lot of reading. Go to the "HobbyKing" web-site and search "multiWii flight controller" under the files tab you will find example code for a complex Arduino based quad flight controller. It takes a lot of tuning just to attain stable hover (not to mention manual dexterity and a well balanced platform).

Also try 'LibrePilot'.

not a good project for a beginner. and the preprogrammed controllers are cheaper than an arduino and all the peripherals.

S-Bus is probably better than PWM or PPM.

But there's nothing "automatic" in an Arduino, only the code YOU write.

If you are prepared to do that why not just get some nRF24 transceivers? Most of the wireless code you will need is in the link in Reply #5

If you really do want to buy a transmitter and receiver you should identify a particular model and post a link to its datasheet before you commit yourself.

...R

i do agree that this project is a bitt more advanced to me , but up untill now i have learned alot from working on it. probably starting with a flight controller is better and easier. either ways i must buy a transmitter/reciever as i gues i will need them later on !
what i dont understand is, why do you think i am not capable of finishing the project if i have already finished connecting all the hardware except the reciever , and i have accesse to the appropriate software code that will keep the quad stable and detect any instability? is there any major step or idea i am missing out that might pose a huge challangee for a newbie like me?

If it has not flown yet, you likely have not encountered some of the big challenges.

The arduino can read RC receiver input. It does take some overhead. And many pins.
The solutions that use interrupts rather than pulsein leave more processing time available for other flight tasks.
Some receivers support other protocols like CPPM and SBus as discussed earlier. These use a single pin when talking to an arduino. A quick discussion of the protocols here

If you are looking for an RC Transmitter style controller, and you already have an RC transmitter, then I think it would be a good place to start.

Here is an example of interrupt driven RC receiver handling.
And a more simple pulsein example
but don't fall in love with the pulsein example. It blocks too much for flight control.

After you try these, consider whether you want to pursue using the RC receiver solution or the nRF24 solution.
Both can be used. Tradeoffs.

You CAN open up your RC transmitter, rip out the guts, put in an arduino to read the 4 pots and other controls, and transmit with nRF24
Another possibility.