All Posts (11086)

Sort by
3D Robotics

ArduPilot MUX issue update: CKDIV8 fuse

We have now fully diagnosed the ArduPilot MUX firmware problem, and it turns out there were two problems, not one. The early boards were flashed with the wrong firmware, which was fixed on 1/26, but the boards after that until 2/5 continued to have a second problem, which is that the CKDIV8 fuse in the Attiny45 chip wasn't cleared at the factory, as it was supposed to be. What does the CKDIV8 fuse do? It divides the internal 8Mhz clock speed by 8, so the Attinys ship from the manufacturer with a default clock speed of 1Mhz. Our code, however, was designed to run at 8Mhz, so we clear that fuse to bring the chip up to its full speed. If you have an affected board, what should you do? Clear the fuse yourself with your AVR programmer and AVR Studio. Instructions are included in this post. Our apologies again for these teething problems, but I think this time we've squashed the last bug. All board shipping now have that fuse set correctly.
Read more…

Be Careful with your ArduPilots

Hey guys, I was setting up my autopilot system for my senior thesis "Building a UAV for Remote Sensing and Cartographic Applications" when I guess I burnt it out. No power to the board, including direct power, and yes i switched the jumper. :-(.... The whole board seems toast. I ordered two new boards today. I followed the wiring diagram and all. I'm thinking there was a surge somehow. If you guys have any ideas let me know....P.S. The programers won't even read the board :'-( Take care and keep up the good work...I'll be posting pictures soon
Read more…
I'm an amateur radio operator (K7AAY) specializing in emergency services work, seeking a way to loft a repeater for fire fighting support and other emergency services work. We get wildfires and the state rado net has big gaps in canyons and the boonies.Any design would compete with current state of the art, i.e., a weather balloon, a tank of helium and the tether with a wire carrying 500ma at DC voltage adequate to deliver 8.4VDC to the transceiver (an HT or Handheld Transceiver and a controller board) on the weather balloon.How much mass can I squeeze into a UAV?What's the optimum design?1) Solar cells on fabric to also run an electric motor for sterage on a lighter-than-air craft2) a larger LTA burning hydrogen from the envelope to run a motor with a small generator set as well as an engine for steerage, or3) a multi-engine heavier-than-air craft with larger than ususal fuel capacity?
Read more…
I’m completely new to this and a complete no-know about electronics but I have a few questions not related to a typical UAV.

For reference and typical for 2 stage recovery.I launch rockets in The Netherlands and as a side project I want the rocket to be recovered by a steerable parachute and returned to a fixed waypoint. Preferable this waypoint would be right next to the launch pad. Basically the return-to-launch (RTL) feature of the ArduPilot.The rockets are launched twice a year on a military shooting range with restricted airspace and typically achieve heights between 1500 – 2000m. Because of wind, the rockets have either a small parachute for a rapid decent or drift for several km from the launch pad. Ideal situation would be a parachute that could steer / circle the rocket back to the place where it was launched. Two main reasons: 1) safety, 2) higher flights possible with less drift.RC is not an option because at 1km the rocket under chute is hardly visible.I have a 3 stage plan of approach:Stage 1) Proof of principle - by means of building a prototype and launch it from a RC plane. There is an organisation which does just that: www.rc-parachute.nlStage 2) Single stage recovery of a test rocket from an altitude of +/- 1km. All pyro events are triggered by means of a RDAS tiny.Stage 3) Dual stage recovery from an altitude of 2 km. First a small drogue is released for a rapid but controlled decent to 1km after which the steerable parachute will be deployed and the ArduPilot should take over. Again all pyro events will be triggered by the RDAS.A few questions arise:Stage 1-21) I think I figured this one out already but is it possible to have an independent direct power supply which does not go through the ESC?2) Can the unit be switched on/off by means of a physical toggle switch next to the unit and not through and RC receiver?3) I will not be using IN 1 & 2 on the ArduPilot. Does the unit still function? Basically all I will be using is the rudder servo to control the steering of the chute. The rest is not used.4) I have the possibility to get a GPS lock when the rocket is at the launch pad and the GPS receiver is out (for reference see photo below. Before launch, I have to put the receiver into the aluminium or carbon fibre rocket. There it will lose GPS lock and only after apogee when the parachute is out the GPS receiver is hanging free again and able to get a lock again. Is this possible? How long would it take for the GPS to get a new lock and does the ArduPilot remember the first GPS lock thus returning to the launch pad (the unit is not switched off)?Stage 35) Experience proves that when the rockets rapidly descents under the drogue chute only it rotate on its longitudinal axis even if swivels are installed in the lines. Is the GPS receiver still able to get a lock when, for example, it rotates at 1Hz on its own axis?Looking forward to your comments and I thinks this will be quite a fun project.JurriaanPS - I’m not trying to make the next DIY cruise missile (there is a distinct difference between a rocket and a missile as my rockets lack guidance).For more info www.nerorockets.org or my personal site www.verticallimits.nl
Read more…

His & Hers

My girl always said that "good things come in small, teal boxes", and now I think I understand... I am all about small, red boxes!

Kudos to Sparkfun and the DIYDrones developers who got the hardware / software / simulators figured out - this really opens the door for the rest of us to tinker away!
Read more…
Developer

New ArduPilot Pocket Navigation Algorithm

For months i have been slowly investigating and "developing" an accurate, efficient nav code (for slow power 8-bit uControllers), finally i just finish my new navigation algorithm, is super faster and smaller.... =).Before the functions were like this:int get_gps_course(float flat1, float flon1, float flat2, float flon2){float calc;float calc2;float bear_calc;float diflon;//I've to spplit all the calculation in several steps. If i try it to do it in a single line the arduino will explode.flat1=radians(flat1);flat2=radians(flat2);diflon=radians((flon2)-(flon1));calc=sin(diflon)*cos(flat2);calc2=cos(flat1)*sin(flat2)-sin(flat1)*cos(flat2)*cos(diflon);calc=atan2(calc,calc2);bear_calc= degrees(calc);if(bear_calc<=1){bear_calc=360+bear_calc;}return bear_calc;/********************************************************************************/}unsigned int get_gps_dist(float flat1, float flon1, float flat2, float flon2){float dist_calc=0;float dist_calc2=0;float diflat=0;float diflon=0;//I've to spplit all the calculation in several steps. If i try to do it in a single line the arduino will explode.diflat=radians(flat2-flat1);flat1=radians(flat1);flat2=radians(flat2);diflon=radians((flon2)-(flon1));dist_calc = (sin(diflat/2.0)*sin(diflat/2.0));dist_calc2= cos(flat1);dist_calc2*=cos(flat2);dist_calc2*=sin(diflon/2.0);dist_calc2*=sin(diflon/2.0);dist_calc +=dist_calc2;dist_calc=(2*atan2(sqrt(dist_calc),sqrt(1.0-dist_calc)));dist_calc*=6371000.0; //Converting to meters, i love the metric system.. =)return dist_calc;}Now are like this:int get_gps_course(float flat1, float flon1, float flat2, float flon2){float calc;float bear_calc;float x = 69.1 * (flat2 - flat1);float y = 69.1 * (flon2 - flon1) * cos(flat1/57.3);calc=atan2(y,x);bear_calc= degrees(calc);if(bear_calc<=1){bear_calc=360+bear_calc; }return bear_calc;}/********************************************************************************/unsigned int get_gps_dist(float flat1, float flon1, float flat2, float flon2){float x = 69.1 * (flat2 - flat1);float y = 69.1 * (flon2 - flon1) * cos(flat1/57.3);return (float)sqrt((float)(x*x) + (float)(y*y))*1609.344;}And if you wonder the difference i have compared them side by side and recorded it.The results are here:The precision is exactly the same, only if you go more than 8 km away, the distance starts to get dirty... But good enough for our purposes... =)
Read more…

ArduPilot successful flight simulation

A photo of successful flight as seen in Google Earth and X-plane:

Here is another ArduPilot simulation inspired by Jordi's simulation.My simulation requires minimum additional hardware, all you need is ArduPilot connected by FTDI cable to PC.Actual simulation runs in X-plane simulator. ArduPilot get simulated GPS data over serial, and it returns back proposed servo positions back over serial as part of telemetry info (servos can also move physically). ArduPilot also reports bunch of variables - lat/lot/alt, next waypoint, distance to it, etc.What you need to repeat the simulation:- Modified ArduPilot code from this blog post- X-plane 9 demo (buy full version if you wish, but demo works just perfect, it only ignores joystick input after 10 minutes, but we control it other way so it really doesn't limit us)- Google Earth- ArduSimulator ArduSim_20090211.zip (developed by me), which is simple application that does following:1) Connects to ArduPilot over serial for sending/receiving data2) Connects to X-plane on localhost (same PC)3) Reads data from X-plane (lat/lon/alt/course), sending these to ArduPilot as GPS sentences4) Simulating FMA copilot stabilization on ailerons/elevator5) Reads and displays telemetry and servo positions from ArduPilot6) Sends servo positions to X-plane to control throttle and rudder7) Records fly path and sends it to Google Earth to displayHere's how to repeat the simulation:- Start X-plane, go to Menu->Settings->Net Connections, select tab Inet 3 and enable "IP of data receiver", change IP address to 127.0.0.1 and port to 49001. It looks like this:

- Select Aircraft from folder Aircraft\Radio Control\GP_PT_60 (yes, we want to fly RC plane which has ail/elv/rud/thr controll)- Select airport Innsbruck- You can open this KML path: Innsbruck.kmz in Google Earth, which was my testing fly plan configured in ArduPilot; this will show you the waypoints- upload compiled ArduPilot code to the board and leave it running; LOCK LED should keep flashing- start ArduSim.exe (simulator tool); it will connect to serial port and X-plane; if it can't connect to serial, specify correct port and baudrate and press Start button- click [Google Earth] button in ArduSim to make connection with GE- hit B in X-plane to release brakes, and try keys A/W/C to choose various viewsNow simulation should be running if everything is connected successfully, and you should see plane in X-plane to fly and visualization path & icon in Google Earth to move. Don't control plane in X-plane! ArduPilot will take-off and fly on its own.Here's video how it all looks in action:And complete flight path visualization for Google Earth: Flight.kmzYou can see original waypoints in white, and real fly path in yellow. And also final circulation over start point when all waypoints were visited...Now about problems and future tasks:- I have strong impression that controlling altitude by throttle with use of copilot stabilization doesn't work properly, this simulation showed me that plane didn't want to drop altitude from high point to lower one... see results in above flight path in GE. I'm not sure how real plane behaves (didn't went out to real world with this yet), we'll see.- For this reason I plan to start playing with complete stabilization in ArduPilot, and controlling both elevator+throttle to get desired altitude.- You can play with dozen of various parameters to control behavior, most obvious are PID settings for throttle/rudder in ArduPilot, but also PID values in stabilization (which is here provided by simulator tool, in real world it is FMA Copilot which you can control by its sensitivity setting). Then you can change maximal servo rotation for ArduPilot to work with. All these values make the plane fly smoother, make more precise turns, etc etc. And the settings seem to depend on actual aircraft and its physical behavior. So there won't be single settings working for everyone.- It's somehow cumbersome to specify different altitude for various waypoints; while I converted waypoints from KML file out of Google Earth, I had to specify individual altitudes manually in waypoints.h file in ArduPilot code.After all, I'm pretty happy to see the plane flying in simulator and doing the task! Note that it's ArduPilot doing the navigation work. And in a real airplane, this simulation allows to reuse the ArduSim application as a base station, getting telemetry from plane over Xbee modem and displaying what it does as well as showing path in Google Earth.
Read more…

Great work on uav ground control stations

Hi all,I was wandering around and guess what I found, an M.Sc. Thesis by Philip S. Anderson about the development of a UAV ground control station.I haven't read it yet but it seens to be a really nice reference. He uses LabVIEW which by what I have seen is a very popular software among us(uhhh but I still a newbie).What I think is a nice point of his project is that he actually built the system and put it on a van, so we can have a taste of what the military guys have :DJust for the sake of knowledge, I'm attachig his work(am I infringing any law, copyright or anything like this?).Ground Control Station.pdf
Read more…
3D Robotics

Surprise! ArduPilot can do stabilization, too

We've been describing ArduPilot as a navigation-only autopilot and saying that it needs the FMA Co-Pilot to provide stabilization. But that's actually not true--we just hadn't written the stabilization code yet. ArduPilot is powerful enough to handle both functions, something that Jordi proved this week with his ArduPilot-powered FunJet. The above picture shows all the elements (click for a larger version): A FMA X-Y sensor is connected to two of ArduPilot's analog inputs. The four wires in the FMA sensor cable are, in order, roll, pitch, 5v, gnd. Connect roll to ArduPilot's analog 0 port and pitch to analog 1. This is an example of how flexible the basic ArduPilot hardware is. It's the exact same board, but with different code and sensors added on the analog ports. We're going to add an airspeed sensor, too, and other goodies over time. You can do a lot with this little board! Here is the alpha code, which is just so you can see the basics of how he did it. It's got the GPS stuff stripped out, but Jordi also has a working version with a 5Hz UBlox GPS. For the public beta, we'll use a 3-channel EasyStar, rather than the FunJet, and the standard 1Hz EM406 GPS. The FunJet is, well, fun, but hard to fly (Jordi crashed it three times this week alone!) and not for everyone, and we want to stick with the simplest, easiest to use equipment for our main releases. Stay tuned.
Read more…
3D Robotics

Big win for Dean Goedde's AttoPilot

Big win for Dean! Purdue has been getting great press for its AttoPilot-powered UAV. Excerpt from Network World: (Slashdot coverage here: "Researchers at Purdue will soon experiment with an unmanned aircraft that pretty much flies itself with little human intervention. The aircraft will use a combination of global-positioning system technology and a guidance system called AttoPilot that uses GPS signals and an on-board flight-stabilization system to guide the aerial vehicle to predetermined points. Researchers can be stationed off-site to monitor the aircraft and control its movements remotely. AttoPilot was installed in the aircraft early this year, and testing will begin in the spring, researchers said. According to Purdue, researchers have been using a small, lightweight unmanned aircraft - essentially a model airplane equipped with electronics - to collect agricultural data for Calmar Labs in Remington, Ind. The vehicle is equipped with infrared and digital cameras to take photos to assess the effects of shadowing on corn growth or to monitor the effects of drought or floods on crops. Until now, the aircraft has been controlled by a conventional radio receiver, which required human intervention to begin and end the missions, Purdue stated."
Read more…

Increasing GPS device (EM 406a) baudrate

Default baudrate of EM406a GPS device is 4800 baud. Then this baud rate dictates entire communication of serial port on ArduPilot - also those for Serial OUT (telemetry).Here's simple way how to permanently increase baud rate of EM 406. Once done, the device will remember the baudrate, and you can increase serial speed in ArduPilot code.1) Temporarily connect your GPS directly to FTDI cable:

Pin connection:FDTI GPSblack <-> 5 (from right)red <-> 1orange <-> 3yellow <-> 4Note: I used original half-cut cable + connector left by this cable modification. No soldering, just careful wire plugging into FTDI connector.2) Connect FTDI cable, and check if GPS works in RealTerm using default baudrate 4800:

3) Switch to Send tab in RealTerm:

and1) type command $PSRF100,1,19200,8,1,0*38 in marked field2) check +CR +LF line-ending3) click "Send ASCIIThis will configure your GPS device for 19200 baud rate.I didn't test with higher baud rates, but if you change it, you'll need to recalculate command checksum (*38 at end), otherwise GPS won't accept the command.4) Now GPS start to send at 19200 baud, so you'll see some garbage in RealTerm. Go to Port tab, close link (untick Open button), change baudrate to 19200, and Open link again. If you see valid GPS data, then all is OK:

5) In ArduPilot code, search for line Serial.begin(4800);and change it to Serial.begin(19200);Done! You have now faster serial communication in your ArduPilot code. GPS device will remember the baud speed as it has internal battery and memory and keeps the setting.You're now prepared for more data to be sent by telemetry link.
Read more…

Posting

Posts are much easier to read if the poster uses capital letters where required AND correct punctuation!! Text type posts are not much use either, as a number of people do not bother to use a telephone for texts
Read more…
T3

UAV v2 development board is back in stock

The UAV development board is back in stock at SparkFun.SparkFun also plans to eventually carry 12" cables for the GPS connection, which could be used for the UAV development board, as well as for Chris Anderson's ArduPilot. Sparkfun also plans to eventually carry 12" servo cables for connecting from the board to the RC receiver.Presently, there is C code available for getting you started with the UAV development board. There are two separate programs. One is for simply making sure that the board is working, used at SparkFun to test the boards before they ship. This one is available both at SparkFun and on this website, and is the program that is in the board when it is shipped. There is also a program that I call "GentleNav", available on this website only. It is a port of the program that I have been using for a couple of years on my previous hardware platform. It performs pitch stabilization and/or RTL for an electric sailplane.By the way, there is a "feature" of most GPS radios that you should be aware of if you plan to use both programs. If you command GPS radios to switch baud rate or between NMEA and binary formats, they only listen at the new baud rate and in the new format. If you run the "GentleNAV" program, it will switch to binary format with an NMEA command. If you then run the self test program, which trys to communicate in NMEA format, the GPS radio will ignore all commands, and the self test will indicate a failed GPS. If you plan to switch back and forth, you should revise the self test program to have it send the GPS command in binary format to switch to NMEA. With older GPS radios that I have used, they eventually default back to NMEA. The EM-406 somehow seems to forever remember the commands to switch, it will never switch back. I eventually plan to revise the self test program. In the meanwhile, it might be a good starting point for you to revise the self test program to send a binary command to the GPS to switch to NMEA format, its not hard to do.You should also be aware that the status light on the EM-406 only works when the radio is in NMEA mode. At least I haven't figured out how to make it light in the binary mode, it just goes out. It resumes operation when you switch back to NMEA.Presently, I am working on two projects related to the UAV development board. First, I am finishing up the documentation for the "GentleNav" firmware. Its taking longer than I thought. I will post a blog when it is done.Second, I am working with Paul Bizard to develop theory and implementation for "artificial horizon" firmware for the UAV development board. It will combine gyro, accelerometer, and GPS information into a stable, responsive, accurate representation in matrix format of the orientation of the plane that it is mounted in. We believe we have a method that will work, but we have a few more details to work out. We will publish the theory when we have something we are satisfied with, and tested code some time later. What we have in mind is an algorithm that will maintain the 3X3 direction cosine matrix that describes the relative orientation of the plane and ground. Each entry in the matrix is the cosine of the angle between an axis on the plane and an axis on the ground.Best regards to everyone, and acknowledgements to Chris Anderson, Paul Bizard, and all the staff at SparkFun for their help.Bill Premerlani
Read more…
Developer

ArduPilot: How to re-flash Attiny45

This is a quick video tutorial to explain how to re-flash the attiny45 in ardupilot boards. You can also tweak the attiny code if you wish...But first you need to fallow this steps:1.-Buy an AVRISP MKII programmer, you can buy one in DIGIKEY, MOUSER and FARNELL (for Europeans)2.-Download and install AVR Studio from here, if the link don't work try this one (you must register). When your are installing it, when it ask about "Jungo Drivers", say always "Yes, yes and yes!" (are AVRISP drivers).3.-Now AVR studio will only let you program ATMEGAS in assembler (yeah, sure). For C/C++ you must install the WINAVR (AVR GCC). It will automatically fuse with AVR Studio, so don't worry about anything else... The main page is here, and the direct download here. After download, install it please.4.-Now plug you AVRISP programmer and make sure the drivers are well installed, if you want to know more about AVR studio and AVRISP please read here (very suggested).5.-Download the Fail Safe firmware (or code), to download the one i'm using in the video click here. Lasted updates will be published here. You can also download the HEX directly here, if you want... ;-)6.-Watch my quick-made video:
Read more…

video of quadro

nothing new since last post, but here's a video:it might look stressful but keeping it this way was really easy, easier than my rc helicopter.
Read more…