All Posts (14048)

Sort by
3D Robotics
A week into the start of the DIY Drones volunteer development teams in the Huddle workspaces, we're making fast progress. Here's the current status: First, on Huddle, we've identified at least two bugs that they've been notified about and are working on. Formatting doesn't work in the discussion groups (they're escaping all the special characters to avoid exploits, which is overkill). And sometimes changes to files that are edited online aren't being saved, due to a bug in passing permissions between Huddle and Zoho. You can work around this by downloading files, editing them on your desktop and uploading them again. Or, just check the URL of the file while you're editing it. If the URL ends in "view", your changes won't be saved. If it ends in "edit" they will. Huddle hopes to have fixes to both of these ASAP. As for the teams, here's the current state of play (If you want to join one of these teams, please leave your name in the comments below): --ArduIMU documention: Draft manual started. Team waiting for hardware to document build. --ArduStation Mega hardware: Very active group led by Sarel Wagner. Debating features and power options. Close to starting on the schematic. --Turn-rate limiter autopilot shield: Debating GPS module and antenna selection. Leaning towards a two-axis gyro for potential enhancement down the road (even though we only need one axis now) --Lego Mindstorms NXT RC interface: This has expanded from just a MUX to a full MUX+servo driver package. Schematic started. --Thermopile replacement IMU: DAC selected and team ready to breadboard as soon as they get IMU hardware. --ArduStation Manual: Draft manual created. Close to release. --Airframe library: team assembling --PID tuning guide: team assembling
Read more…
3D Robotics

DIY Drones Store inventory updates

The national holiday in China is over, so we're getting parts in again. That means more stuff in stock! Here's the latest on hot items. --First, a new product: version 2.0 of the ArduPilot shield (shown above). This one improves on the original in a couple ways. First, it has a real mulitplexer chip onboard, so finally you can load code and waypoints with your GPS plugged in. Although that worked for some GPS modules some of the time before, now it works for all modules all the time. Yay! Also some minor bug fixes. Both of the ground wires for the GPS are now connected as they should be, which should cut down on noise, and the labeling is fixed. This shield is available in two forms: complete board with pressure sensor or special "economy" form ($11 less) for people who want to recycle the pressure sensor from their old board. It's a pretty easy desoldering process, so if you're handy with a soldering iron that option is worth considering. Note that these economy boards don't have the 3.3v power supply, but if you're using the uBlox with the adapter (which has it's own 3.3v power supply) you don't need it. --Speaking of the uBlox modules and adapters, they're back in stock. Get the combo here or just the adapter here. --What's still out of stock? The ArduIMU boards and the XYZ sensors. Give us another week or so for them.
Read more…
Developer
Hello All,I am going through the ArduIMU v1.1 software and getting ready to start modifying it for my own purposes. I am pretty excited about this IMU and think there are some really cool, creative things that can be done with it.I keep generating questions that people are helping me find the answers. I've decided to update this top post as questions get answered so that it will be a bit of a FAQ,I know there are others than me digging in to the code, so post your questions and answers as comments and I'll keep the FAQ at the top updated :)DougCURRENT QUESTIONS:Q The V1.1 download code has#define Kp_YAW 0 //.5Yaw Porportional Gain#define Ki_YAW 0 //0.0005Yaw Integrator Gainso the values in use as downloaded are zero and there is no yaw drift correction. Has anyone tried out the values in the comments? What testing did you do and what were the results?Q I have been looking at the accelerometer data to see if I could use it to integrate velocity, but it looks much too coarse, and despite claims that accelerometers don't drift mine have some poor behavior that I would either call drift or hysteresis. For example, using groundtest.vi and looking at the accelerometer data - With the IMU sitting on my desk the raw accelerometer data should be (and initially is) 0, 101, 0. However, after moving the IMU around and then bringing it back to rest I might see data of 1, 101, 2, or 0, 101, -3, and those readings might persist for quite some time (>20 seconds). If you work the math on 0, 101, 3 it works out to indicating a velocity of 13 miles per hour in the z direction after 20 seconds. So, the question is: Is this hardware any good for inertial navigation applications???ANSWERED QUESTIONS:Q Where is the yaw drift correction??? Am I correct in thinking that it is not included in this release of the software?A - No - the yaw drift correction is handled in the roll_pitch_drift() routine. However, note that the P and I coefficients are set to zero in the v1.1 download. You will need to change them. I haven't tested values out yet.Q Why is Gyro_Scaled(x) defined as x*((Gyro_Gain*PI)/360) instead of x*((Gyro_Gain*2*PI)/360) or x*((Gyro_Gain*PI)/180)?A Well, because the factor of 2 is incorporated in the Gyro_Gain (we think)Q Why the procedure in setup() of reading the adc's 75 times? From the filtering it looks like 3 or 4 times should be sufficient as the value after any read is 90% the most recent measurement and only 10% previous averaged measurements.A I looked at the raw data and for some reason the data is pretty goofy the first 5+ times through the loop, almost like you need to warm up the AD converters. Can't explain it, but that is probably why 75 samples are taken even though 5 would be sufficient with the filtering used.Q Why is AN_OFFSET[4]=AN[4]+GRAVITY instead of AN_OFFSET[4]=AN[4]-GRAVITY?A Because gravity works to lessen the value of the raw data in the y axis, so GRAVITY is added back to get the "zero gravity" offset. It is just a matter of the direction and sign.
Read more…

I2c GPS frees up Serial Port

I wanted two way communication with my airplane, and had moved the serial communication stuff to a 2nd arduino (see my prev blog) but I didn't like the way the code looked, so I reconfigured the system to have the 2nd Arduino handle the GPS and Gyro, and then use I2c to send the data to the main processor. Essentially making the GPS into an I2c device, and freeing up the main serial port for 2-way com with the ground.

This works out great. The GPS code is very static (doesn't change) so the code within the 2nd Arduino doesn't have to be updated all the time. (at all) Having the Gyro and GPS together works great - the 2nd arduino becomes an I2c GPS / Heading device that the host simply polls 5 times a second to get the current heading and location. This works better with the I2c protocol ... we're sending small blocks of data instead of the huge text based data I was trying to send around.5 times a second, the host asks the slave for 32 bytes of data. The slave returns the following data:float Gyro_Heading;float GPS_Lat;float GPS_Lon;float GPS_Altitude;float GPS_CMG;float GPS_Speed;long GPS_TimeStamp;int Gyro_Rate;int Flags;The slave takes care of reading the Gyro every 20ms, and updating the Gyro_Heading value.Every time it gets new GPS data, it updates the Gyro_Heading, which takes care of any gyro drift.This has turned out to be a much better way to organize the system. The code in the Arduino slave is static, it is essentially an I2c front-end to the GPS code. The changes to ArduPilot are now minimal. It still calls decode_gps() - which simply requests, and returns the I2c data, and now all the debugging and Serial.println stuff to and from the ground station is back in the main code and much easier to change and much more straight forward.Here's a link to the slave source code: ArduinoSlave.zipAnd another thing...The slave Arduino board started out so pretty... and then things happen.

I used the Spark-Fun XBee carrier board 'cause it said it would hook directly into 5 volt systems, and would actually tolerate up to 12volts of input. The Arduino Mini will also regulate it's own power - so I could use an external 7.4v lipo and not have to do a power supply. Yea !! The gyro gets it's +5 volt power from the Arduino Mini's regulated +5 volt pin. It draws nothing. Great - I could hook up the XBee and Arduino directly to the lipo. Very tiddy. But NO. I had all the code working on the bench, installed everything in the plane. Ready for a test flight, but ... no data coming to the ground station ?? all the lights are blinking - everybody's sending and receiving something ???Turns out the Spark Fun XBee board doesn't like talking directly to my Arduinos. Tx Signal lines are too strong. If I put a voltage divider inline, it mostly works, but with noise garbage here and there. Yuck. I hate flaky com lines. I even tried their level converter chip, but still garbage. (strange - 'cause I've used these before with great success)So I switched back to the Ladyada XBee board, but it doesn't like the 7 volt lipo. (its on board regulator gets too hot) It wants +5volts - but I don't want to pull thru the Arduino Mini's regulator - too much draw - 250 mah. So I bite the bullet and put a 5 volt regulator where the SparkFun XBee board was, and went back to the external XBee board. What a hassle.

But the connections to the system are now very tiddy. Mini Slave board has it's own power from the 7.4v lipo. GPS plugs into the Mini Slave board (and gets it's power from my 5 volt regulator) Power lines from XBee board plug into my Slave board, and also use my 5 volt regulated power. Arduino mini regulates it's own power from the lipo, and provides power for gyro. Only 3 connections to the main system. Two wires plug into Analog 4&5 for the I2c line. 2 wires plug into the TxRx pins (where the ftdi plug goes) and 1 wire plugs into a servo ground.
Read more…
3D Robotics

Results from this weekend's test flights

I had a full afternoon of test flights this weekend, with mostly encouraging results. I flew ArduPilots (with uBlox) on the EasyStar (rudder and elevator), EasyGlider (ailerons and elevator) and SuperStar (a high-wing trainer with ailerons and elevator). The good news is that the default easystar.h config file will fly both the EasyStar and SuperStar pretty much out of the box. Navigation isn't as tight as it would be after you tune the settings, but it works. I also flew a GWS Formosa with AttoPilot. Stabilization worked fine, but the plane kept descending in automode, requiring a manual takeover before it hit the ground, so I've got a message into Dean to see what's wrong. With ArduPilot one weird issue showed up. With the EasyStar, altitude hold didn't work. The plane kept rising and rising, requiring me to eventually switch into manual. But altitude worked great with the EasyGlider and SuperStar, with an identical setup and code. Odd. We're trying to diagnose this, but one thing that may be meaningful is that altitude readings aren't showing up in the Ground Station software (it just shows 0, regardless of the vertical position of the plane). Maybe a bum uBlox module? Some strange code bug? Not sure....
Read more…
Moderator

T3 League Table

Not long left to enter round two, the round of doom! Only three entrants so far!Above the league table combining scores for rounds one and two, Bill and Chris have an identical time this month so I think equal points are the only fair way to go.
Read more…
Moderator

I made a new fuselage for the easystar to get more room for payload. This proto is made in 2 layers of carbonfiber. The carbonfiber is very easy to work with, so if any one out there like to make some modifications just go for it.I got the carbonfiber from hereThe weight of the T-REX fuselage is about 140g = 4.93 ounces - still need to make the inner fuselage so the fuselage can be fasten to the body and still be removerable. Think the whole carbonfiber fuselage will be about 160g = 5.64 ounces.

Read more…

south bay blackhawk

Anyone see the blackhawk flying circuits over the south bay? Bet it was autonomous because it was over unpopulated areas, in line of sight of Mountain View, & flying an extremely boring mission.

Read more…
Developer
This is a rough/raw release of my ArduStation with tracking antenna support. In order to make it work you must calibrate your servo's range (pan 360 degrees, tilt 45 degrees). It uses your actual altitude and location against the altitude/position of your aircraft to accurately point your antenna. I guess the resolution is pretty good!What you need to do to make it work with ArduPilot:-Go inside the code an calibrate your sensors, using this line on the first tab://Servo Calibration!!!!Pan.attach(9,1000,1990);//PAN ServosTilt.attach(10,600,2150);//Tilt ElevatorThe second and third values are the min and max in milliseconds of the servos. (The first value is the Servo Pin Port)Then go to the definitions at the beginning and change these values. To activate them just change it for "1":#define TEST_PAN 0 //Test pan min and max (for calibration).#define TEST_SOUTH 0 //test south (the antenna will just point to south).#define TEST_TILT 0 //test the tilt max and min (for calibration).After you see your tracking antenna is working right, go to the flight field and point your antenna (in south test mode) to your true south... I chose south as a default because when you're between 1 and 360 degrees the antennas makes full rotations to jump from degree 1 to degree 360.You can download the lastest code here:ArduStation_V13.zip
Read more…

2nd Arduino adds 2-way Com with Ground

I wanted two way communication with my aircraft, but when the GPS is running, the Arduino board only has 1 side of its single serial port available, so I added another Arduino Mini to provide 2-way communication between my ground station and the aircraft.The additional board consists of a 5 volt Arduino Mini Pro, with a ATMega 328 chip running at 16 mHz, and a Spark Fun 5 volt carrier board for the XBee. That's it. I had to move my Gyro to this new board, cause I used I2c to link the main ArduPilot board with my new "com" board, and I2c uses the Analog Pins 4 & 5 for communication. (I had my gyro on analog 4&5)

It takes three wires to connect to the ArduPilot board - SDA, SCL and Ground. The two I2c wires go to Analog pins 4 and 5 on the ArduPilot board. Ground plugs into an open servo socket. I used a separate 7.4v lipo battery to power the new Arduino and the XBee. (the XBee 900 XSC draws 250 mah during transmission)

The code changes within ArduPilot were very minimal. I used the Wire Library for I2c. It's not efficient, but it's easy to use. It uses blocking reads, which means your code is sitting around waiting for the data to arrive back, instead of being able to go about your business until an interrupt tells you your data is ready. I'll improve this later.All of my downlink data (data going to the ground station) is isolated within the print_data() function - so making the changes was easy. I used the PString library to mimic the Serial.print calls, so code that used to look like:Serial.print(",CRS:");Serial.print(ground_course);Serial.print (",SPD:");Serial.print(ground_speed);Serial.print(",CRT:");Serial.print(climb_rate);Now looks like:theStr.print(",CRS:");theStr.print(ground_course);theStr.print (",SPD:");theStr.print(ground_speed);theStr.print(",CRT:");theStr.print(climb_rate);Wire.beginTransmission(4); // transmit to our I2c slave Arduino (ID=4)Wire.send(theStr);Wire.endTransmission();The slave Arduino takes all I2c data it receives from the master and transmits it out it's serial port to the XBee where it continues thru space to the ground station.// This is the interrupt routine in the slave Arduino that gets called every time// the master sends out some data.void master_has_sent_us_data (int howMuch){byte slen=0;while (Wire.available() > 0){RxBuffer[slen] = Wire.receive();if (slen < MAX_BUF_INDEX) slen++;}RxBuffer[slen] = 0; // terminating zero for c-stringSerial.println(RxBuffer); // Send to Ground Station via XBee}// -------------------Reading the Gyro is easy. It's actually an analog gyro, but now the main software reads it like it's an I2c gyro. Every 20ms the main loop calls:Wire.requestFrom(4, 4); // request 4 bytes from our slave device #4if (Wire.available() >= 4){gyro = (Wire.receive() << 8) + Wire.receive(); // read 2 bytes as an IntvRef = (Wire.receive() << 8) + Wire.receive();}// -----So for about $40, and a couple hours wiring, I get another serial port, 4 more analog ports (2 of the 6 are used for I2c) 13 more digital lines, and a bunch of horsepower (that pretty much goes un-used) But it's cool - and I really wanted the two way com between the aircraft and the ground. Now I have it. Cheers.
Read more…

5th or AUX RX Channel

Im looking to start a UAV project based on the Dynam Hawk Sky which I had posted a day or so back. I got a lot of comments on the radio system saying its junk, and cannot be used because it does not have a 5th or AUX channel for the AutoPilot. As an 18 year old working at RadioShack, I cant really afford a new radio system let alone the components for AutoPilot, but I figure if I put a little money away every check or so I could have myself a UAV built up before Christmas. (An early Christmas present for myself if you will. c=) So I will be using the stock radio gear. Though its advertised as 35mhz, I got a confirmation from a recent buyer of the plane that it is 72mhz as presumed by others in my last post.My question is:Could i Sacrifice my Rudder's channel on the RX for use in the AutoPiolot beings that the plane im using has ailerons?and maybe even mod my TX to disconnect the rudder's control input, drill a small hole and wire it to a simple toggle switch?Any help would be appreciated.-Mike
Read more…
3D Robotics

Using the HobbyKing RC gear

If you chose the Blimpduino RC option, your kit will come with a HobbyKing 2.4 Ghz RC transmitter and receiver. It won't, however, come with instructions! (Blame HobbyKing for that). No fear, here's what you need to know.
Like all 2.4Ghz RC systems, you need to bind the transmitter to the receiver before you use it. Here's how to do it:

1. Batteries in transmitter, switch off.
2. Put the bind plug in the BAT slot on the receiver.
3. Connect an ESC (with battery attached) to one of the channels. Black line (-) goes to the outside. You will see a red LED blinking. (You might have to look from the side; it's hard to see)
4. Push and hold down the bind button on the transmitter while switching on. Keep the bind button held down until the red LED stops blinking.
5. Remove the bind plug and turn off the power. When you turn it out again with the transmitter on, thered LED should be solid.

Note that the Receiver comes with a little satellite antenna thing. Remove it--you won't need it indoors. Also, please note that the RC equipment is powered by the Blimpduino board, via the cables. Do not plug the battery straight into the receiver.

Here's the full manual:
Part One
Part Two
Part Three
Read more…
3D Robotics

DIY Drones store stock status

Just a quick update on the availability of some popular items: --The XYX Thermopile sensors are back in stock [Sigh. Immediately sold out again. Give another week to replenish] --The uBlox 5 modules and adapters will be in stock in about a week. --Blimpduino is back in stock. If you want the version with RC gear, it's looking like an Oct 26th availability. --ArduIMU: in stock in about a week. --ArduPilot Shield: in stock in about a week
Read more…
Moderator

2.4 Xbee in a box

As I fly lots of airframes I thought it might be a good idea to have a standalone tracker, so I put an Xbee in a box with a EM406 and its own battery. Very simple to setup using the meshing Xbees, makes me wonder if I added another and put it on a pole at a distance if it would not make a simple repeater, does anybody know.Having its own power means that it will continue working should there be any issues with the airframes power, that does mean quite a bit of weight though.So far I have only completed walking tests and the range appears to be about 350m, if that gets upto 500 when one of them is in the air then I will be happy it will do what I need.After following these instructions http://www.humboldt.edu/~cm19/XBee%20setup.pdf to setup the two Xbees.I found Earth Bridge to listen to the GPS and interface with Google Earth.

Here's the walk test

Read more…

Flight tests with the UAV DevBoard

After my last UAV project went up in flames (literally!) I’ve shifted gears and designed a dedicated autopilot (AP) test vehicle. She is a tailless plane with removable wings for transportation and has plenty of room in the fuselage with easy access.

For the autopilot, I’m using Bill’s UAV DevBoard with a modified AileronAssist code for handling the elevons. This modification is a work in progress by Ben Levitt and he is including a lot of great features. You can check out the latest versions of the code here. The tailless had her first autonomous flights this weekend and I’ll be posting all of the flight logs on this blog. So far, I’m really pleased with the AP’s performance. Not only does the DevBoard and software perform well, but Bill also provides a wealth of information on the theory of his methods as well as the “how to” to get the hardware and software installed and running. I know this is beginning to sound like a commercial for Bill’s stuff but if you do a search on this website, you’ll find nothing but praise for Bill and his accomplishments. And to top it all off, he’s always willing to immediately chime in and help whoever asks for assistance.

Read more…

60A-DY8925-HawkSky-1.jpg

After looking at the suggested planes for use as a UAV, I noticed there not all that cheap.The plane considered for a UAV builder "on a budget" was still something like $110.00 without any electronics!I know the Easy Star is a pretty popular model in use with UAV construction, and even that is bumping $200.00 without a brushless motor.I came across the Dynam Hawk Sky and saw for $119.00 you get a plane simular to the body style of the easy star, a brushless and li-poly battery upgrade, and everything needed to fly out of the box.so my question pretty much is,first of all, does anyone own this plane?what is your guy's opinions on this plane?do you think it will get the job done?-Mike
Read more…