// -- -- -- -- --
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.
NEW BOARDS - and PICS.
This pic shows the comm. Looking very good! The base is sending data at 25Hz, and the remote is sending stats at 10Hz. The thicker bars are data sent or received. the very thin ones are txstatus responses from the radios.
(( From top to bottom, Base[data to send], Base[data from radio], Remote[data from radio], Remote[data to send] ))
Here are the two boards being measured for the data listed above.
And here's a close-up of the two board. Notice the base-stations USB support, The remotes camera/gps connections, and both of their 16 servo connections + power, and external connections,
I have decided to keep female headers to connect the radio to the board. its preferable (and looks much better) to have it directly mounted, but i think its smarter this way.
how would this connect to apm2.0??? or will this work independently from it??? im thinking to replace the xbee telemetry with and use this instead :)
New boards are shipped. Parts to populate it are shipped. I will post pics when they arrive. ETA ~ 1 week
Just hooked this up and measured the actual duty cycle of transmission. Keep in mind, both base-station and remote are sending all the flight variables at 25Hz, 115200kb/s baud.
The base-station is transmitting at 8% duty cycle (8% of the time its talking)
The remote is talking at 6% duty cycle.
If that gives you an idea on available bandwidth. This radio will do 85mW at 500kb/s (limited by FCC), 500mW at 200kb/s, and 1000mW at 115200kb/s.
Lots of progress when school isn't in session! hehe
-- A little logo has been made up - simple, but clean
-- Sourceforge added! It is currently empty, but i will host the source code here
-- Added programming modes! Now, If its the first time you've downloaded the code, it will wipe EEPROM clean, and add a simple key letting the program know its been on the arduino. Then it adds an entry for your vehicle mode, gimbal mode (gimbal will be for X-Y camera and/or X-Y antenna), and a controller mode (ps3, usb-remote, other). It will keep you settings between power-downs and reprograms!
How To Program (on the fly):
If you press and hold the programming button as the arduino powers on, it will prompt you for the vehicle type and gimbal type (which you enter by pressing the programming button 'X' number of times, then pressing and holding to move to the next option). When done, it will force-program the radio, and prompt you for a power cycle. At that point, you can restart the system.
When it powers up now, the LED will flash teal 'X' times, 'Y' purple times, and white 'Z' times to remind you what vehicle, gimbal, and controller mode you are in. Then it continues to boot the system.
I am using these modules (DNT900) and seems like I have problem in 1 W. It is not stable when I set modules in maximum power. They loose communication more often that 0.5 W which I expect opposite. Any solution or idea?
Newer pic of board
(obvious i2c wiring error addressed)
Got my first DNT900 connected UART->FTDI->USB so theoretically I have a serial terminal to the radio now. But without the radio software (which was included with the dev kits but not the radio themselves) I'm afraid I'm not sure where to start...
Minor update - Renamed to Dreamshield 16
we now have the TLC5940 chip driving 16 powered servo outputs with up to 4096 steps of resolution (2^12 aka 12-bit) Board has been gone over completely. Added (gnd,+5v, data) connection for GPS, I2C connection (just for you, ctech! hehe), power-on-reset chip for radio, reworked video-switch ground plane, added opto-mosfet to act as switch to turn on power to radio... and i think thats it!