I will use this to share my experiences, point out what I did differently, and mention some things that I would have found helpful knowing ahead of time. Repeating the full details of putting this together would be redundant. The build process is covered, much more effectively than I could hope to, on the ArduPilot wiki. The build and upload process is covered both in the ArduPilot docs, and in the Arduino docs.
Since this is a DIY thing, and you'll need to get some things, let's start off with the pieces I used to assemble this monstrosity.
ArduPilot shield expansion
uBlox5 GPS (alternate source)
uBlox5 to EM406 adapter
xBee 900 Pro w/RPSMA connector (x2)
Adafruit xBee adapter (similar Sparkfun module)
Sparkfun xBee Explorer USB
900 MHz antenna (x2)
FTDI adapter (3.3v)
7.4v LiPo Battery (any 1000+ mAh will do)
XT60 connectors (or whatever type is appropriate for the LiPo you choose)
3.7v LiPo Battery (optional - 1000+ mAh recommended)
Sparkfun jumper wires
G10/FRP fiberglass board (McMaster-Carr is one place to find this)
First you'll want to solder all the connectors to the appropriate boards. You can skip the following two parts, unless you're planning to use this in a plane as well.
1) Trottle (no throttling a solid rocket motor)
2) IR port (pitch/yaw/attitude control isn't needed)
IMPORTANT xBee NOTE: The electrolytic capacitor and voltage regulator both stand too tall on the board to accommodate an xBee Pro (non Pro modules are apparently ok). You'll want to bend their wires slightly to the outside of the adapter board. The Sparkfun board mentioned above does not have this same issue.
If you didn't buy your uBlox from the DIY Drones store, you'll need to configure the uBlox5 GPS module. The tutorial for this is here. Note that they use an FTDI cable. The Sparkfun module I used has the same pinout. The jumper wires mentioned above will come in quite handy here.
Once you've finished configuring your uBlox, connect it to the EM406 adapter and connect the adapter to the ArduPilot.
The Sparkfun USB board is the best xBee adapter to use for configuring your modules. Simply plug in the xBee, then connect the USB cable to the computer. Then, follow the ArduPilot instructions on the telemetry page.
NOTE: Do NOT plug the RX pin on the non-USB xBee adapter into the 'out' pin on the ArduPilot until after the xBee has powered on. If you're using a single battery for the whole system, this means you should power the system on, wait a few seconds, and then plug in the communication line. This is due to an xBee issue with receiving data during power on. No worries though, if this does happen, instructions for resetting the xBee are on the bottom of the telemetry page.
Once you've got everything put together, it's time to do some minor configuration, and load the code.
In the easystar_25 file, make sure the following #define statements are set to these values.
#define SHIELD_VERSION 1
#define AIRSPEED_SENSOR 0
#define GPS_PROTOCOL 2
#define ENABLE_Z_SENSOR 0
#define THROTTLE_IN 0
#define THROTTLE_OUT 0
If you're running a different firmware version, or are using a different setup, the code is commented well and will tell you the right to use.
If you're running the 2.5.04, take a look at the print file. The altitude was divided by 10 instead of 100, make sure that line looks like this:
Finally, save your changes, connect the FTDI adapter, and follow the usual method of compiling and uploading to an Arduino unit.
There isn't really much field setup needed. Here are the differences from the ArduPilot docs.
- Since you won't be controlling the rocket's flight (I hope!), there is no need to set waypoints. Also, the Bind plug/Remove before flight jumper isn't really needed.
- I did solder the jumper connectors and leave it plugged in, but I don't think it's necessary to mess with this for simple tracking.
The one issue I struggled with a bit was power. I started out using a 9V battery, which is ok, however the system draws a good amount of power. Up to 300 mA was measured, higher current draw is likely at certain times, such as boot up. In the end, a 9V really isn't up to the task. Here's my power setup:
2200 mAh, 7.4V LiPo for main power (everything except radio)
1000 mAh, 3.7V LiPo for xBee radio (MUST be <6V due to power regulator used on the xBee adapter)
Basically, use a LiPo. In ground testing I have run the system just fine on the single 7.4V LiPo. I chose to use two batteries to avoid the xBee power-on issue. If you're looking to save weight, I would suggest getting two of the 1000 mAh LiPo batteries. I haven't tested this, but based on the specs it should work, and I do plan to test this configuration.