Arduino + Spektrum ar6210 receiver

Hello,

I have done a couple of projects with arduino so far. And untill now i didn't have much problems. In my current project i am trying to use a spectrum dx6i to control 4 motors trough ESC's and an arduino uno.
( its a quadcopter project)

Running the motors and my gyroscope and accelerometer aren't such a problem. The communication though, is something i am stuck on for a while.

I know there are quite a few topics with similair problems and i have read rcarduino.blogspot.nl but i still can't figure it out.

I can't even get my receiver working with someone elses code. ( three months ago the rcarduino.blogspot code worked: RCArduino: How To Read an RC Receiver With A Microcontroller - Part 1)

My receiver had 6 chanels. From the bind/data chanel i wire the - pin to the arduino ground pin. The bind/data + pin to the arduino 3.3V pin. And the signal pin of a channel ( for example throtle) to digital pin 2 of the arduino.

When i power my arduino, the receiver blinks once and then does nothing anymore.

Does anyone know a way i can test if it still works?

I am really stuck here. I've been searching for over a week now and i am losing my motivation over this part.

First, why are you messing with the bind plug? One missed plug and you mess up your bind. Second, why only 3.3v? My 6210 runs fine on upto 9v. I usually run it on 6v, but lately I've been pushing it to 7.2v. You should be powering the receiver directly from the battery (use the Aux port), not the arduino.

Marmotjr:
First, why are you messing with the bind plug? One missed plug and you mess up your bind. Second, why only 3.3v? My 6210 runs fine on upto 9v. I usually run it on 6v, but lately I've been pushing it to 7.2v. You should be powering the receiver directly from the battery (use the Aux port), not the arduino.

Marmotjr, could you help me with the 6210? I've been trying to read the output from my d7x and I can't read squat.

Pin connection:

GRD -> ARD GRD
3.3v -> ARD 5V
THROTTLE Signal -> ARD (Rx0)

This is what I'm using as a tutorial

Thanks alot mate :slight_smile:

fluffy_beard:
Marmotjr, could you help me with the 6210? I've been trying to read the output from my d7x and I can't read squat.

Pin connection:

GRD -> ARD GRD
3.3v -> ARD 5V
THROTTLE Signal -> ARD (Rx0)

This is what I'm using as a tutorial

Thanks alot mate :slight_smile:

I'm hoping someone can comment on the pros and cons of using the code from the site linked above vs using the code found here.

There's another forum member also trying to read from a RC receiver. Here's the other thread.

@fluffy_beard, I found some code which works well by following links from this thread. The Read Receiver code I suggested earlier has problems.

Follow the link from my previous post for more information about code which works well.

DuaneDegn:
@fluffy_beard, I found some code which works well by following links from this thread. The Read Receiver code I suggested earlier has problems.

Follow the link from my previous post for more information about code which works well.

Hey mate! Thanks for the help.

I tried that and well, it doesn’t work that well for me.
I’m trying to read the Spektrum DX7 receiver. I believe it’s called DSMX.
I got the code up on my github ( Chocolate-Milkshake-0.1v/16-bit-Embedded-RC-Decoder at master · fluuffy/Chocolate-Milkshake-0.1v · GitHub ).

Please let me know what you think! I’m trying to read the data for my Quad copter and trying to see if I can ‘hack’ the RC part of the receiver and spoof those values to my flight controller (pixhawk).

fluffy_beard:
I tried that and well, it doesn't work that well for me.

I code I posted in reply #14 was mainly diagnostic. I wanted to count how many times each channel was read. The "Read Receiver" code missed a lot of the pulses.

This code I posted in reply #14 appears to catch all the pulses.

The code doesn't do much besides display data once every 1,000,000 loops (about once every 7 seconds). I wanted to keep the serial output to a minimum so it wouldn't interfere with pulse reading.

Whatever pulse is read on the input pins gets sent to the output (servo) pins. It's certainly possible to modify the pulses prior to sending them on.

fluffy_beard:
I'm trying to read the Spektrum DX7 receiver. I believe it's called DSMX.

In general, the brand of the radio doesn't really matter. The DSMX stuff takes place within in the radios, it doesn't change the pulse output from the receiver.

fluffy_beard:
I got the code up on my github ( https://github.com/fluuffy/Chocolate-Milkshake-0.1v/tree/master/16-bit-Embedded-RC-Decoder ).

Please let me know what you think! I'm trying to read the data for my Quad copter and trying to see if I can 'hack' the RC part of the receiver and spoof those values to my flight controller (pixhawk).

What are you reading from? I thought you were reading the pulses from a AR6010? The code at your GitHub looks like it's intended to read the serial data from one of the satellites. Are you trying to read one channel per wire, or are you trying to read the serial data from the satellite? If you're reading from the satellite then the DSMX does matter.

Based on your earlier posts, I was under the impression you were trying to read the pulses, not the serial data.

What part of the radio is the Arduino connected? Are you trying to read pulses or serial data?

I have a DSM2 version of the DX7. I'm using these receivers to test the code.

Hey DuaneDegn!

First off, I'm using the Teensy 3.2 for the microprocessor part.

What part of the radio is the arduino connected?

I'm using this receiver called the AR6210

But I'm using the PPM satellite receiver and not the PWM AR6210.
I'm trying to read the PPM from the DSMX receiver into the teensy 3.2
Any tips?

fluffy_beard:
But I'm using the PPM satellite receiver and not the PWM AR6210.
I'm trying to read the PPM from the DSMX receiver into the teensy 3.2
Any tips?

It's not PPM. It's serial.

I'm sure DSMX uses serial like DSM2. It's possible to tap into this single serial line to read all six channels. IMO, this is the cool way to receiver RC signals.

I haven't received these serial signals myself but I've hacked a DSM2 transmitter to substitute my own serial data. This allowed me to use any input devices I wished to control my aircraft. I used a Wii Nunchuk to fly my RC helicopter. The accelerometer on the Nunchuk was used to control yaw and throttle. The joystick controlled roll and pitch. I thought it was cool to fly the helicopter one handed but it sure didn't make it any easier to fly the helicopter.

I know there are quadcopter control boards which has a socket for DSM2 satellites. I imagine these also work with DSMX satellites if the right firmware is used.

The code you have in your GitHub looks like it should read this input. I'm not sure how one deals with binding.

When I used the hacked transmitter, I had to plug the transmitter (a small PCB) into the original remote to bind the radios. Once the radios were bound, I could send my own data.

As I said, I don't know how to deal with binding the radios when tapping into the serial signal. Learning to do this is on my robotics to do list.

Right now I'm just reading in the pulses from the individual channels.

fluffy_beard:
THROTTLE Signal -> ARD (Rx0)

More knowledgeable guru's may correct me here, but I believe you shouldn't be using the 0 or 1 pins as they are for Tx/Rx. Use another pin.

Marmotjr:
I believe you shouldn’t be using the 0 or 1 pins as they are for Tx/Rx.

It depends on how the pin is used. If the pin #0 is being used to receive serial data from the satellite receiver then it’s a good choice. If pin #0 was used read in the throttle pulses then it’s not such a great choice since (as you suggest) it limits the ability to communicate with the PC.

The radio receiver fluffy_beard is using sends serial data from the little satellite receiver. I imagine he’s trying to use the controller’s UART to interface with this satellite receiver.

I think this sort of communication is ideal for capturing the receiver data. One doesn’t have to worry about small errors when reading the individual pulses. The data captured this way is completely accurate.

This sort of interface also has the advantage of not requiring an I/O pin for each channel.

greetings,
Im an undergraduate and intend to make a flight controller for my quadcopter.Im using AR6210 receiver with DX6i transmitter .So i want to interface arduino with AR6210 receiver so that i may read Pwm signal.Im a beginner i have many confusions where to start from,kindly guide me.
Kindly guide me regarding the interfacing of AR610 with arduino Uno.
thankyou.