DIY GPS with Cellular Telemetry

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

jms

Well-Known Member
Joined
Jun 5, 2011
Messages
298
Reaction score
0
Alright! Since I've been slowly winding down my rocketry social network experiment, I thought I'd begin a build thread/how to on a DIY rocket tracker. Here are some highlights and I'll post code/findings as I go:

1) It's a prototype so far. So it's big and its pretty heavy. I don't have a final weight, because as of this writing I haven't taken one.

2) It's Arduino based, currently using the AT328 microcontroller on an Arduino Duemilinove.

3) Sports a 66-channel GPS module, 3-axis accelerometer, digital compass, cellular (GSM) communication and logs to a micro Sd card that you can pop into any computer.

The whole notion is to be able to SMS (txt) your rocket when it's on the pad, and have it begin logging information. As the launch occurs, and the rocket is travelling through the air, it can be txting you lat/lng information once a second (or however frequently). Now I know all the problems of high altitude cellular madness, but the real thing you want is when it's drifting down towards the ground to be receiving updates on its position. Obviously if you're at a launch site with cell coverage this will work like a charm, if not, then you're SoL :)

Currently I am testing it with a pay-as-you-go Rogers card ($10 for the card, $10 for 250 text messages outbound).

I had tested some Li-Po batteries with it, but I wasn't overly satisfied, and a 9v seemed to power the whole thing just fine, but I haven't done any longevity testing with it yet. I'll take some pictures and post some code/updates as I go. If anyone is interested in building their own just fire me a PM.

Eventually I'd like to slim the whole thing down into one board, which would reduce the massive amount of weight, and not require a 4" airframe to fly in but that's down the road.
 
An extension to this whole thing is if you have the ability to pop your own SIM card into the badboy, and you have an unlimited data plan, the rocket can actually be streaming (using the word "streaming" very loosely) live data to the Internetz. I thought it would be cool to have a Google map of say sodmeister launching in Manitoba and I can watch the flight in real time on Google earth, complete with altitude, tracking, etc.

Any thoughts on this or prior art would be awesome.
 
What do you mean by winding down? Is it going away?
 
Yeah, I didn't have a ton of active folks on it, and it's a Ning network which costs about 10 times that of normal web hosting per month. To be honest I really spent more time hanging out here than my own site, if anyone wants to take it over, be my guest, I can help get you setup as an administrator and move the billing over.
 
So here are some pictures of the rig, without any build enclosure yet.

Here is the unit fully "assembled". The beauty of the Arduino way of doing things is the notion of "shields" which are fully independent circuits that typically have male headers on them that you plug into the female headers on the Arduino.

In this case we have the following stacked together

Liquidware GeoShield (GPS,accelerometer, compass)
|
CuteDigi SMB5100 Cellular Shield (with the cellular module pre soldered)
|
DFRobot Interface Shield (provides us with SD card logging capabilities)
|
Arduino Duemilinove (Arduino Uno would work as well)

Whenever you're picking shields for rapid prototyping, and you plan on stacking them, make sure you do your homework first. For example, the GeoShield above doesn't have female headers on it, so you have to make sure it's top of the stack. The other thing is that you can't have any pin conflicts. Each of those Arduino female headers are numbered for digital and analog pins. If one of your shields is going to be using pin 3 then for simplicity it's better to figure out how to buy your shields with minimal pin conflict.

If you do have conflicts, you can always leave the shield unplugged and just use female to male jumper wires to re-route the pins, and then you'll just have to adjust your code. The other method is to use shiftouts or shift registers but that's a case study for another day.

You'll also want an additional power adapter to plug into the Arduino when you're testing. The reason is that the cellular module draws a lot of power and the USB off of your computer can't provide enough, so you'll just end up with gibberish on your serial line instead of real data. Don't purchase the one at CuteDigi, if you're going to mess with electronics/Arduinos, buy one from Radio Shack that has a little switch on it for 3.3v to 12v and then you buy little heads that you plug into them. The head for the Arduino is 2.1mm ID (Type K) and is center-positive.

Liquidware GeoShield Enhanced
https://www.liquidware.com/shop/show/SEN-GEO/GeoShield

CuteDigi Cellular Shield
https://www.cutedigi.com/product_info.php?products_id=4424

DFRobot Interface Shield
https://www.dfrobot.com/index.php?route=product/product&path=35_39&product_id=166

Arduino Inventors Kit
https://www.sparkfun.com/products/10173
** the inventors kit has all you need to get started and get comfortable with an Arduino, it's an awesome way to learn electronics, and then pretty soon you'll realize you can buy any $5.00 sensor you want and hook it up to do cool stuff. The Arduino board by itself is about $30.00 depending on the supplier.

Female to Male Jumpers
https://www.sparkfun.com/products/9139

9v to Barrel Jack Connector
https://www.sparkfun.com/products/9518
** obviously so you can cruise around and have your wife/husband text your cool gadget and find out your exact location. Oh, and so you can fly it in a rocket someday :)

IMG_0505.jpg

IMG_0509.jpg

IMG_0510.jpg

IMG_0511.jpg
 
"if you're at a launch site with cell coverage this will work like a charm,
if not, then you're SoL"



I suppose that might be a major factor on deciding to go cellular or radio.
I guess if you can squeeze a BeeLine GPS into that 2"x3" sandwich, it'll
be the perfect dual stack Cellular/Radio combo.
 
Just having a peek at the BeeLine TX it seems like I could simply replicate the serial data that I send to the cellular module directly to the BeeLine module. If this is something folks would want to see, let me know, as I'll have to start studying for the HAM license here in Canada.

If you're one of the lucky folks who already owns a BeeLine TX and you have the budget, I'd love to see you rig up my Arduino solution to it to see how if it will work.
 
Not subscribed, but watching closely with interest.

No faith?

I have been swamped at work, I would like to start posting and explaining some of the code that goes into it, but I haven't finished testing/debugging it to the point where I can say it's relatively ironclad.

My goal is to keep the weight of the whole brick, which is obviously its nastiness form, to come in under the 8+ oz that the Garmin Astro comes in at.
 
Hi,

You might be interested in our recent project where we had a real-time radio link that streamed telemetry (two GPS units, barometric altitude, break pins) to the ground station. I made software that took the data and created a real-time 3D plot into Google Earth, so we could follow the flight on the monitor as well.

And since anything that is worth doing is worth overdoing, we also streamed the data to the Internet. Over 20 people followed the flight real-time in Google Earth and listened in to our PMR radio conversations and photo stream.

The rocket also contained an experimental active roll control system that worked extremely well this time.

More info is available at https://eetu.tunk.org/haisunaata/ (seems to be having problems right now, I'll have to go kick the server), and a collage of the seven on-board video cameras at https://www.youtube.com/watch?v=3Lhv978UPMI

If you're interested I could share the code I've used. The data streaming system is in Java and the roll controller in C.

Cheers,
Sampo N.
 
That is awesome! What did you fly all those electronics in? I also PM'd you about doing some OR work :)
 
That rocks.. I like the camera angles from Rear View to Side View.
Nice touch.
 
Hi,

We have a modified HyperLOC 1600 rocket that was launched with HyperTek L540 motor. We had the roll controller, a few flight computers and video control systems in the midsection, and the GPS telemetry and radio system in the nose cone.

The site is now up again: https://eetu.tunk.org/haisunaata/

Cheers,
Sampo N.
 
Sorry for the hijack......

Sampo; looks like the gain on your gyros for the roll control are a tad to high; turn down the gain by 10%, and increase your servo throws by 2-3 degrees.
The square canards may be a bit touchy; try a standard delta fin with the control axis 1/3 from the tip along the root length.

JMS,

Still subscribed; keep up the great work, it looks like a winner!

PT
 
Hi,

Sampo; looks like the gain on your gyros for the roll control are a tad to high; turn down the gain by 10%, and increase your servo throws by 2-3 degrees.
The square canards may be a bit touchy; try a standard delta fin with the control axis 1/3 from the tip along the root length.

Actually we have neither gyros and nor canards. :)

We had the canards on our first launch a year ago, and the picture is from that launch. On that launch the control system worked for a few seconds, but then the rocket started rolling wildly. Only later on we learned that canards that are in front of the main fins cause interference effects to the main fins that may completely negate the control effect and even make it opposite. For this launch we removed the canards and created a flat on one of the main fins that was controlled.

We were also worried how well gyros would work in the vibrations of a hybrid rocket. As an alternative we decided to obtain the roll from a two-axis magnetometer - and it seemed like an interesting experiment in any case. We compute the roll rate and direction from the magnetometer data and use a PI-controller to minimize that.

The low jitter back and forth is because the roll rate cannot be accurately computed for very low roll rates. I plan on modifying the control software so that instead of seeking zero roll rate, it would seek a specific roll angle. This would allow immediate response to the controller instead of a delayed response.

Cheers,
Sampo N.
 
Back
Top