// -- -- -- -- --
A Very Special thanks to the company RFM (the maker of the amazing DNT900 radio) for their support of my project!!!
// -- -- -- -- --
PLEASE RESPOND IF YOU ARE INTERESTED!!! OR HAVE ANY SUGGESTIONS!!!
Project DREAMSHIELD - What is it?
Dreamshield is an Arduino Mega shield that will effectively replace or augment your limited hobby remote control system with a long range (DNT900P based) open source alternative. Your Remote will be augmented with a "basestation" board (attached to your arduino mega #1). If you do not have a nice remote, it will allow a PS3 (or other) controller to act as your remote. The receiver module will also be replaced with a similar "remote" board (attached to your arduino mega #2) that will interface up to 16 servo's and ESC's, up to two camera's, GPS, IMU, flight LED's and has an onboard pressure/temperature sensor.
What sort of vehicles can it be used with?
Any! well, within reason of course! There will be an "on-the-fly" programming button that will allow the user to pick a vehicle mode (0-4). This means that you can toss this in your favorite RC car, (set it to mode 1), drive around a bit... then pull it, place it in your quad-rotor (set it to mode 4) and take an adventurous flight around the neighborhood.
Each of these settings will re designate the servo's/esc's, how they act, and what control sticks do what. It will give a little more versatility to the board, and open up the possibilities of what you can mod it to do! Instructions and video demo on page 5 of this forum.
((there will also be modes for X-Y camera and X-Y antenna tracking - neither, either/or, or both))
Now the more nitty-gritty. BOTH the Base and Remote boards have...
- DNT900P long range telemetry radio which offers up to 40km range with proper antenna's - with a data rate of 115200k! If you are interested in slightly less range, you can crank the baud rate up to a fast 500k!
- RGB status LED(s) for feedback
- External interface connector that allows connection to +5v, GND, Serial TX/RX (3.3v), 2 analog inputs, 2 PWM outputs, 4 digital I/O's, and one transistor/PWM driven LED output. This allows other devices (gps, imu, other sensors) to interface to the board
- Power input connection for easy interface to a BEC to power it ((5V INPUT))
- Programming button to select vehicle type, camera/antenna gimbal, and controller type. Programming instructions are on page 5
The BASE has
- USB port on it will allow for a completely new kind of control! a PS3 controller can now be used to control your long range UAV! The PS3 is a fantastic interface because the 10 buttons on it are all pressure sensitive and will read out a value between 0-255. There are three buttons with boolean output, two triggers with pressure sensitivity, and two thumb joysticks! There is also two adjustable output rumble motors (high/low), and 4 LED's that can be used for feedback (ie. signal strength)
With some more programming, it can also be made to recognize your preferred USB enabled RC transmitter/controller.
The REMOTE has
- 16x Servo/esc connections, each at 12-bit (4096 step) resolution.
- video switching, so up to two camera's can be interfaced with this board, and you can remotely switch which camera is being broadcast by your video system!! typically, I for-see a tilt compensated flight camera, and a camera pointed strait down for observation. Then they can be alternated via the SELECT button on the PS3 controllers!
- Pressure/Temperature monitoring on I2C
- (the external connection ports are for you to interface your own IMU and GPS to the board - everyone has their own preference!) the LED connection is a 2222 transistor driven output that should allow for some bright flight LED's (strobes, or flood lights)
There are two boards per kit - a BASE(command) and a REMOTE(uav). The boards are Identical - but are populated differently based on their desired purpose. This is a (poor) picture showing the board and where the connections are located
DIY - two boards, and all the parts to populate them
Prebuilt - Two boards built up, and ready to go!
(arduino boards not included in either kit)
A ROUGH price estimate will be between $100 ~ 315 (DIY - PreBuilt , respectively).
Things are liable to change - v1.0b is not finalized.
CODE will be open source - some of it is adapted from other open source projects, and credit is given in my code.
please let me know who's interested!
((remnants of my proof of concept))
** I do Not expect this shield to work with the Arduino Mega ADK due to interference of extra USB port, and possible programming shenanigans, but i can not confirm or deny this.
For the time being, Arduino Mega 1280 has been tested and 2560 should work.
You are correct!! i read that and realized I mis-spoke with the 180 steps! the controller would be the bottleneck then at 255 steps (i need to check to see if I can mod the library for more). If it is hardware limited to 255, it could be scaled up. Its very smooth though. ive tested the servo's a bunch, and it works really well.
Second : i hope to make it ardupilot compatible, but for the time being it is simply, as you stated, "an open-source hardware alternative to R/C controller" (with a few other connections for gps, imu, etc etc hehe)
Hopefully this is what you are looking for!! Just a controller on one side, an 8-channel receiver on the other, and hopefully up to 40km between the two :-D
Thanks for your interest!!
So the PS3 controller outputs 256 steps? (0-255)
It looks like the arduino PWM output is also 8-bit (256 step). So there won't be a bottle-neck per say, you will just have 8-bit resolution. (Or is your arduino limited to reading the PS3 controller at 8-bit? that could matter later....)
I am frustrated because I spent the last hour trying to look up the resolution of my Futaba radio and couldn't find it anywhere. The best I could do was an ad for my radio, next to an ad for a more expensive radio with 2048 steps (11-bit resolution). For now I assume that means my radio is 1024 (10-bit).
So that means the dreamshield would have a quarter of the resolution of my radio. (To put that in perspective, it's roughly the difference between standard TV and Blu-Ray.)
Some of the inputs on the arduino were not high enough resolution to read the sensors used on the ardupilot so they incorporated some extra hardware to read the sensors at higher resolution and then send the data to the arduino over serial. We could do some thing similar......
OK here! This PWM board is a shield for arduino and gives you 12-bit resolution (4096 steps), that's more than Futaba... and has 32 outputs. If we use this to drive the servos, we won't have to settle for lower resolution. This could even be an optional component of the dreamshield.... get a standard 8-bit system or spend a little more for a 12-bit high-res system:
Now... it's not going to do us any good to have 12-bit outputs on the vehicle if we only have 8-bit controller input. We need to come up with a 12-bit input method too. I love my PS3 but the joysticks on my futaba are much more precise.
I love this idea... it single handedly solves about 3 or 4 different problems I have. I still need to figure out what kind of joystick I would personally prefer. Keep me updated. I'm not up to speed on everything you've done yet but once I am let me know if I can help.
Personally, (and this is just my preference) I would NOT like to replace my remote (which has basic telemetry BTW) with a PS3 controller or any other controller for that matter, however the long range/telemetry idea is very attractive. Now if my Tx's removable module could be replaced by this "remote" so that I could continue to use it's precision, functions and mixing that would be awesome!
The transmitter gimbals are nice but they still use potentiometers. Optical encoders would be better. But I see your point, there are many nice features of the R/C controllers on the market.
These are the reasons I would like an open-source solution:
1) I am using two 7-channel futabas on the same vehicle. WAY cheaper than one over-priced 14 channel radio. But if I had one 32-channel radio, I wouldn't ever have to worry again.
2) I counted all the transmitters and receivers on one of my vehicles and I got 10. I need fewer radios.
3) An open-source long range radio for FPV would almost be nicer than trying to buy one and solder it into an existing radio.
4) I would never have to worry about my PC/TX interface (going both ways).
5) I honestly think we can make a radio that is better and cheaper than what is on the market. Expensive radios add junk like color touchscreens and MP3 players. We can add the important stuff - more channels, longer range, more resolution, better encoders, etc.
I agree I don't want to use a PS3 controller. I'd like something as good or better than the gimbals in my radio. But thats the whole point... that it's all user-customizable.
Thanks so much for the input!!
I will look up the PWM because I have been looking for another method to do that! I wanted something that wasn't tied up with interrupts like the pwm on arduino.
And as far as using this as a TX module on a standard RC controller, that sounds like awesome capability! then you can use the basic ps3 controller for cheap easy fun, or your monolith super controller for really fine resolution!
I will begin to look up info on that, but in the mean time, would you be able to tell me if you know the pinout/protocol they use on those? and if its universal? i have a old futaba attack III for a air-boat, but i think you are at a whole-nother level :-)
Thanks again for all the input!
How are you connecting the PS3 controller to the arduino? Can you use a USB joystick? Because many R/C radios have USB adapters so you can connect them to a PC and use them like a joystick. If that would work, it would prob be the easiest solution. The signals from the radios are more-or-less the same but not universal, each brand has it's own eccentricity.
Yes the PS3 interfaces to the board via USB. And if all the new radios have USB, that would be the easiest way to interface things!
I have added a TSSOP TLC5940 16-output PWM chip with big-time resolution. That is hooked to the arduino via SPI. There has already been a library or two written for it.
currently only 8 outputs are being used due to board density. I may see a way to squeeze another 8 servo connections on there, but im going to hold off for a day or two... finals are next week !
Andy, before you get heavy into finals, can you send me a parts list to buy? I am ready to order two DNT900 radios from Mouser but I guess they don't come with antennas and I'm not 100% sure about the antenna connector.
Its a U.FL on the DNT900 board. I looked on digi-key for a converter, but ended up making mine with a some parts i found in old electronics that i tore apart for parts. You want to convert the female-pinned U.FL to a male-threaded, female pinned SMA connector (i believe).
I haven't assembled a master parts list yet. Is there something (other than the antenna adapter) you're looking for?
I guess not. Just ordered two of everything:
Hopefully they all fit together!
I have an arduino mega so I could take the gimbals and switches out of an old radio and start there.
For those of you interested in the integration manual for the radio - this is the good one
Awesome, thanks! According to UPS my DNT900's were just delivered. Way to go Mouser for FAST shipping and delivery! Looks like I won't sleep much this weekend.