2-way radio control/telemetry... feasible?

Afternoon all...

I've been meddling with an Arduino, on & off, for some time, and enjoy it very much. I'd quite like to do something a bit cleverer than a combination lock though, and - typical bloke - I begin to wonder if I can do something creative with a quadcopter. I should point out that I've never flown an RC model, of any flavour, so I figured "how hard can it be...?"

Ultimately, I'd like to build a completely bespoke homebrew FPV machine. Being based in the UK, I am (legally?) limited to 27, 35 and 459MHz or 2.4GHz. This seems to exclude most FPV gear which runs at .9, 1.3 or 5.8GHz. I'd come up with the idea to use a pair of 2.4GHz transceivers i.e. transmit commands from the ground station to the aircraft and transmit fpv/telemetry back from the aircraft to the ground using the same transceivers, thus avoiding the problem of having 2 2.4GHz systems in use simultaneously. However, as the Arduino simply isn't able to handle the data volumes generated by a video camera, I'm not sure how I can do that.

So for now, I'd like to try to come up with a simplified 2-way system which sends commands from ground station to aircraft & receives telemetry back. Since I will have to tear up a radio system to do this (have you seen the price of potentiometer joysticks?!), I may as well also use my own command protocol.

So, here's the plan:

X times per second (50?) the Arduino will sample the stick positions and any switches I may add. Left stick will control altitude up/down and rotation ccw/cw. Right stick will control forward/backward left/right slew. Kind of like an arcade machine, rather than a true flyer. Obviously, this only makes sense for a rotary-wing aircraft, a fixed-wing would need different commands. Anyhow; package up the stick positions and any switch positions into a data packet, and transmit to the aircraft. As soon as we've transmitted some commands, switch to receive mode and wait for some telemetry. Once the telemetry is received, output it to the serial port (or whatever we end up doing with it); then if there's any time left, idle until it's time to send again.

Meanwhile, some distance away:

The receiver picks up the commands, which the Arduino reads & decodes. Based on the sensor readings, and the stick commands, it decides what power to feed the motors in order to carry out the pilot's request. Once the power settings are decided & output to the servos/ESCs, the telemetry is read - e.g. battery condition, power use, position, velocity, etc., packaged up into a data packet and transmitted back to the ground station.

I reckon on using an Ardupilot Mega as a starting point for the flying side of things. The radio stuff I'll hack together from some old crappy 27MHz gear. The bit I'm not sure about is whether the 2.4GHz transceiver modules I've been looking at will work properly when they're constantly being switched from transmit to receive - these are the ones I am looking at: http://uk.farnell.com/quasar/rfm70-s/module-transceiver-smd-2-4ghz/dp/1878287 The chips appear to be compatible (Chinese-stylee) with the NRF24L01 chip, so I am hopeful that I can use the RF24 library to generate my datagrams. Any thoughts on this gratefully received. I guess ultimately it's not much different from a wireless network with two nodes...

Hi,
I recently bought my first 2.4Ghz radio, its a Spectrum DX3S three channel ground radio. It includes a telemetry channel from the car, the default uses are temperature and RPM, I would expect that the higher end radios also include this telemetry feature and may even support multiple telemetery channels.

Not sure if that helps or if your dead set on building something from scratch ?

Duane B

rcarduino.blogspot.com

Hi Duane,

I'm pretty keen to roll-my-own, because I don't know yet just how much telemetry I need, or what other data I can squeeze up/down the pipe; and if I'm butchering some cheap old radio set, I'm not going to be worried about resale value, etc... Plus, I have some other projects in mind which could benefit from 2-way radio transmission, so it'd be nice to learn it on this one.

Besides, I like rolling my own :slight_smile:

BTW, have read many of your blog posts over the day - good work! I can't wait to see your active traction control system.

Thanks,
I really need to settle down and just work on the LapTimer and the Traction control. I was waiting for some components but have then now so no more excuses - apart from being in Lebanon and my kit is all in Dubai.

Duane B

rcarduino.blogspot.com

This is a flying Xbee Arduino remote control and telemetery system

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

Maiden flight of Yellow Plane flown by a local pilot Richard to avoid instant crash I would cause. A little tail heavy but flew pretty well on a gusty day, I'm told control was good. Ended in a crash but not too badly damaged, learned a lot. I'm just chuffed if flew looks pretty good on such a windy, which is pretty standard for the south island this time of year.

My scratch built FPV platform. Took around 30 hours to build mostly Corriboard with some ply, aluminium and carbon fiber spars. Total material cost around 50 US$. Got a DT700 (see tests data here) which hopefully will be an adequate power source. Its a modular design based around an armature, so wings and tail etc are bolted on and can be exchanged for testing parts and ideas. Have a pair of KM3 wings and the Corriboard ones shown below.

Please see the spread sheet here Yellow Plane Data https://docs.google.com/spreadsheet/ccc?key=0AsmGA5b7qZ15dFF1U0JCMVFnTXlPNlFrYWxKVjlmSlE

More Links
The RX Build http://kiwitricopter.blogspot.co.nz/2012/11/building-arduino-receiver-yellow-boats.html
Power Tests http://kiwitricopter.blogspot.co.nz/2012/10/more-power-tests.html
More Test Data http://kiwitricopter.blogspot.co.nz/2012/10/power-tests-for-fpv-plane.html
Xbee's and Arduinos http://kiwitricopter.blogspot.co.nz/2012/10/reliable-controller-now.html
Controller using Tiny CLR http://kiwitricopter.blogspot.co.nz/2012/09/revisiting-xbee-controller.html
Xbee Helpers http://kiwitricopter.blogspot.co.nz/2012/11/some-xbee-usage-tips.html

Based around a stiff wooden armature and two aluminium tail spars the wings are removable for transportation. According to my calculations the wing loading is 15.5 Oz/Ft² at a flight weight of 1700 Grams. A glass fiber nose has been molded and is curing now which is around 80 grams, which will contain the FPV gear and the main battery.

Home brew Arduino Xbee remote control http://kiwitricopter.blogspot.co.nz/2012/11/building-arduino-receiver-yellow-boats.html

Currently revising the design to reduce weight and have bigger wing chord base on advise from DIYdrones with slightly shorter wings.

AUW 1521 Grams Wing loading 14.83 oz/ft² power to weight 270 Watts A Kg should perform much better than Yellow plane one.

Experimenting with material options for the wings looking for a target weight of 400 grams or less for both wings.

The code https://docs.google.com/open?id=0B8mGA5b7qZ15dFJHaEdxbmF5dTQ https://docs.google.com/open?id=0B8mGA5b7qZ15b1pDOHA1SnU3cEE

The RFM-70 may use the 2.4 Ghz band, but it does not appear to use spread spectrum technology, which may be problem depending upon where you want to fly your model. Also, the on-board antenna suggests that the range might be very limited.

The previous post uses an Xbee RF module, which has an amplifier and external antenna. However, I have read that the Xbee protocol includes automatic packet acknowledgement, which will reduce the effective RF bandwidth if you want to return values from the model. There is an Arduino compatible module (http://arduino-direct.com/sunshop/index.php?l=product_detail&p=190) with a range of 1 Km, but it again does not seem to use spread spectrum. There is, however, the AWA24S (以诚为本赢在诚信9001✪欢迎莅临) which has a good range, uses spread spectrum and has an SPI interface. However, it is a bit pricy.

nRF24L01+http://arduino-direct.com/sunshop/index.php?l=product_detail&p=190 is a good looking device and much cheaper then Xbee I also have a APC-220 in the post. Thanks for the tip

This is a flying Xbee Arduino remote control and telemetery system

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

Maiden flight of Yellow Plane flown by a local pilot Richard to avoid instant crash I would cause. A little tail heavy but flew pretty well on a gusty day, I'm told control was good. Ended in a crash but not too badly damaged, learned a lot. I'm just chuffed if flew looks pretty good on such a windy, which is pretty standard for the south island this time of year.

My scratch built FPV platform. Took around 30 hours to build mostly Corriboard with some ply, aluminium and carbon fiber spars. Total material cost around 50 US$. Got a DT700 (see tests data here) which hopefully will be an adequate power source. Its a modular design based around an armature, so wings and tail etc are bolted on and can be exchanged for testing parts and ideas. Have a pair of KM3 wings and the Corriboard ones shown below.

Please see the spread sheet here Yellow Plane Data https://docs.google.com/spreadsheet/ccc?key=0AsmGA5b7qZ15dFF1U0JCMVFnTXlPNlFrYWxKVjlmSlE

More Links
The RX Build http://kiwitricopter.blogspot.co.nz/2012/11/building-arduino-receiver-yellow-boats.html
Power Tests http://kiwitricopter.blogspot.co.nz/2012/10/more-power-tests.html
More Test Data http://kiwitricopter.blogspot.co.nz/2012/10/power-tests-for-fpv-plane.html
Xbee's and Arduinos http://kiwitricopter.blogspot.co.nz/2012/10/reliable-controller-now.html
Controller using Tiny CLR http://kiwitricopter.blogspot.co.nz/2012/09/revisiting-xbee-controller.html
Xbee Helpers http://kiwitricopter.blogspot.co.nz/2012/11/some-xbee-usage-tips.html

Based around a stiff wooden armature and two aluminium tail spars the wings are removable for transportation. According to my calculations the wing loading is 15.5 Oz/Ft² at a flight weight of 1700 Grams. A glass fiber nose has been molded and is curing now which is around 80 grams, which will contain the FPV gear and the main battery.

Home brew Arduino Xbee remote control http://kiwitricopter.blogspot.co.nz/2012/11/building-arduino-receiver-yellow-boats.html

Currently revising the design to reduce weight and have bigger wing chord base on advise from DIYdrones with slightly shorter wings.

AUW 1521 Grams Wing loading 14.83 oz/ft² power to weight 270 Watts A Kg should perform much better than Yellow plane one.

Experimenting with material options for the wings looking for a target weight of 400 grams or less for both wings.

The code https://docs.google.com/open?id=0B8mGA5b7qZ15dFJHaEdxbmF5dTQ https://docs.google.com/open?id=0B8mGA5b7qZ15b1pDOHA1SnU3cEE

AdeV:
Afternoon all...

I've been meddling with an Arduino, on & off, for some time, and enjoy it very much. I'd quite like to do something a bit cleverer than a combination lock though, and - typical bloke - I begin to wonder if I can do something creative with a quadcopter. I should point out that I've never flown an RC model, of any flavour, so I figured "how hard can it be...?"

Ultimately, I'd like to build a completely bespoke homebrew FPV machine. Being based in the UK, I am (legally?) limited to 27, 35 and 459MHz or 2.4GHz. This seems to exclude most FPV gear which runs at .9, 1.3 or 5.8GHz. I'd come up with the idea to use a pair of 2.4GHz transceivers i.e. transmit commands from the ground station to the aircraft and transmit fpv/telemetry back from the aircraft to the ground using the same transceivers, thus avoiding the problem of having 2 2.4GHz systems in use simultaneously. However, as the Arduino simply isn't able to handle the data volumes generated by a video camera, I'm not sure how I can do that.

So for now, I'd like to try to come up with a simplified 2-way system which sends commands from ground station to aircraft & receives telemetry back. Since I will have to tear up a radio system to do this (have you seen the price of potentiometer joysticks?!), I may as well also use my own command protocol.

So, here's the plan:

X times per second (50?) the Arduino will sample the stick positions and any switches I may add. Left stick will control altitude up/down and rotation ccw/cw. Right stick will control forward/backward left/right slew. Kind of like an arcade machine, rather than a true flyer. Obviously, this only makes sense for a rotary-wing aircraft, a fixed-wing would need different commands. Anyhow; package up the stick positions and any switch positions into a data packet, and transmit to the aircraft. As soon as we've transmitted some commands, switch to receive mode and wait for some telemetry. Once the telemetry is received, output it to the serial port (or whatever we end up doing with it); then if there's any time left, idle until it's time to send again.

Meanwhile, some distance away:

The receiver picks up the commands, which the Arduino reads & decodes. Based on the sensor readings, and the stick commands, it decides what power to feed the motors in order to carry out the pilot's request. Once the power settings are decided & output to the servos/ESCs, the telemetry is read - e.g. battery condition, power use, position, velocity, etc., packaged up into a data packet and transmitted back to the ground station.

I reckon on using an Ardupilot Mega as a starting point for the flying side of things. The radio stuff I'll hack together from some old crappy 27MHz gear. The bit I'm not sure about is whether the 2.4GHz transceiver modules I've been looking at will work properly when they're constantly being switched from transmit to receive - these are the ones I am looking at: http://uk.farnell.com/quasar/rfm70-s/module-transceiver-smd-2-4ghz/dp/1878287 The chips appear to be compatible (Chinese-stylee) with the NRF24L01 chip, so I am hopeful that I can use the RF24 library to generate my datagrams. Any thoughts on this gratefully received. I guess ultimately it's not much different from a wireless network with two nodes...

there appears to be a good bit of info available.

https://www.google.com/search?hl=en&as_q=arduino+uav&as_epq=&as_oq=&as_eq=&as_nlo=&as_nhi=&lr=&cr=&as_qdr=all&as_sitesearch=&as_occt=any&safe=images&tbs=&as_filetype=&as_rights=