CHEAPO budget self etched SMD GPS tracker

I have been working on a SMD tracker for a fair few weeks now, but today the last part fell into place making it ready for flight!

The PCB is the second board I have designed in EAGLE, only a few minor details weren’t quite right, but these could be rectified.
It is a topside only single layer board, making it possible to etch at home using the toner transfer method.

$$CHEAPO Pico Board Rendering

Once the board was etched I could solder on the TQFP ATMega168 micro controller, along with its crystal, loading capacitors and 10k pull up reset resistor (a feature I missed on the test breakout board design).

Untitled

I chose to use the TITLV70032DDCR 3.3v low dropout regulator to power the board. It has a good current output of 200ma and very low drop out, allowing every last drop of power to be drained from the batteries. The thing is tiny, however the pin spacing is reasonable and proved quite nice to solder in comparison with the TQFP which was tricky and requires some practice.

The GPS module is a uBlox NEO-6. It is one of the few modules that continue to work at high altitude, however its software must be put into an airborne mode to allow this. The code on the ATmega waits until the GPS gets a valid fix before putting it into this mode, allowing for a faster time to first fix. The module has built in USB functionality along with lots of other features that go unused in this application. The communication between the GPS and ATmega is a hardware UART port. The GPS gets its signal using a surface mount JTI 1575AT43A40 Chip Antenna. I expected these tiny chips to get a very poor signal. However after leaving the board out to get its first ever fix for an hour or so, the chip can pick up a fix in a few minutes, and usually reports back 7 or 8 satellites.

I ran into problems with the exposed ground plane touching vias on the underside of the ublox. I removed that area of copper with a scalpel and soldering iron which solved the problem. I found the uBlox chip even more tricky to solder than the ATmega, the pins are small and easy to bridge to the metal casing so care should be taken. I actually missed a connection so i had trouble sending the flight mode command, as it simply didn’t make it into the GPS chip. A blob of solder connecting the GPS to the board solved that problem.

For a radio transmitter i am using a RFM22B module. These use the SPI protocol to communicate and have configurable frequency and power output via software. this makes every aspect of the transmission customizable, including shift. The module also has a built in receiver, making it possible for two way communication. However this is unused in my setup. The sending of RTTY is interrupt driven to free up the processor and give it time to handle the serial data. Also timing is more accurate for if i ever want to use a higher baud rate than 50.

Untitled

If all goes according to plan I will be flying this tracker for testing and as a backup alongside my main payload (NSE) in April. Possibly Saturday the 13th depending on weather, updates to follow!

NSE1 Launch Planning (April 2013)

I have heard back from the CAA that the preliminary approval will be issued tomorrow, which is fantastic news! The proper permission should be issued closer to our launch window in April (every weekend, in the hope that one will be good to launch in).

In the meantime I have been working on a SMD tracker board that, if finished in time, will fly as backup on the same flight. The objective of the tracker is to make a board for domlins pico flights as cheap as possible. Hence the payload name $$CHEAPO.

Untitled

$$CHEAPO Pico Board Rendering

NSE1’s flight code has been adjusted to enable flight mode as soon as it gets a GPS fix. This is because the uBlox chip seems to get a fix much faster if left in default mode. Once the fix has been acquired it sends the command to switch to airborne flight mode.

NSE1 outputs telemetry strings on 434.650(ish)MHz at 50 baud, 7 bit ascii, 2 stop bits and 350Hz carrier shift. The format is as follows:

$$NSE,message_ID,time,lng,lat,altitude,satelites,battery,flight_mode,temp_internal*99A6

Self Etched SMD PCB (ATMega168PA Breakout) and programming

With tracker v2 complete and ready to fly. I decided to start work on v3 and I really wanted to try out a SMD board, properly etched in a PCB house.

PCB etching is super affordable now thanks to Hackvana. You can get some great quality boards for well under £20. But while I’m just messing about testing connections and code I thought i could put together a little breakout board. This will also help me practice my EAGLE skills and make sure I don’t miss any vital components on the final design.

I went for an interesting take on the tried and tested toner transfer method. This time I printed my design onto a sheet of paper lined with Kapton tape. The results were pretty good with outstanding toner density in the middle, but needed touching up a little around the edges.

Using kapton tape for toner transfer

Untitled

Untitled

In this tracker I will be using the RFM22B board from UPU’s store. It is an interesting transmitter working in the 430mhz range with an output of up to 100mw. The frequency can also be set in software which is a handy feature to avoid interference etc. The module communicates with the arduino over SPI.

I am also planning to solder a Ublox 6 chip and SMD antenna straight to the final board.

Its worth noting that this board is entirely 3.3v to work with the Ublox and RFM22B.

Turns out i missed the smoothing cap from the output of the 3v3 regulator and the 10k pullup on the reset pin. Glad this was only a practice board as they could be bug-soldered on.

Untitled

All soldered up with my great new iron. Fantastic price from the site recommended by Hix.

New soldering iron

Programming the ATMega168p was a bit of a pain. But here’s how i did it in the end:

The chip was initially programmed with the arduino bootloader using another arduino as an ISP programmer. To do this you need to ensure the chips signature matches what the arduino IDE is expecting. I ended up modifying the boards.txt entry for the pro mini 3.3v as it was the closest match to my setup. I simply appended a P onto the end of the MCU name.

Once the bootloader was is programmed you can then program the chip over TTL/serial using the arduino IDE’s upload button. However i found that the chips signature had changed and i needed to remove the P i added to boards.txt earlier.

Device signature can be checked with:

C:\WinAVR-20100110\bin\avrdude.exe -p Atmega168p -c avrisp -P com8 -b 19200

CUSF hourly predictor install

A few days ago i was introduced to the hourly predictor by the guys on #highaltitude IRC.
It is a handy lump of software that is built around the normal balloon flight predictor, however it runs a forecast for a launch at each hour of the next week.
This allows you to pick out the best date/time to launch.
The setup was reasonable to understand but the documentation pretty much consisted of a list of terminal commands.
I have put together a video outlining how to set this up in a vmware player virtual machine, going through each command and what (I think) it does.

If you find the video below useful, or have any other questions please leave me a message or find me on IRC (chrisstubbs) #highaltitude

I am slowly uploading a copy of the VM for people to download… so that will appear here shortly…. but might not work properly on other machines!

Instructions: cusf_install

 

NSE1 – Tracker v0.2

This is the second version of my Ublox6 NTX2 ATMega328 tracker.

It is built around the TinyGPS library and reports back its GPS Time, Coordinates, Battery voltage and Temperature over a 434.65Mhz RTTY radio link.

Tracker Specification:
Chip: Atmel ATMega328P-PU
Chip bootloader: Arduino
PCB Design: ExpressPCB
PCB Etching: Toner Transfer
Voltage Measurement: Voltage divider and 1.1v internal analog reference
5V Regulator: TS2950CT low drop out regulator
Transmission mode: RTTY, 50 Baud, 425mhz shift, 7-bit ASCII, no parity with 2 stop bits on 434.650MHZ
Antenna: 1/4 wave with 4 radials
Battery: 4x Energizer Lithium AA cells
Radio Module: Radiometrix NTX2 (From HabSupplies)
GPS Module: Ublox 6 (From HabSupplies)

Find the highest point in a given radius

I have recently built a quick tool using the google maps API to find the highest point within a radius of a given coordinate.
The tool can be found at http://chris-stubbs.co.uk/extras/maps/alt/

Gregory has since made a much prettier version. Check it out: http://gregoryalary.xyz/apex/ https://github.com/gregoryalary/summit-finderhttps://gregoryalary.github.io/summit-finder/

Other tools include the Solwise elevation tool and HeyWhatsThat profiler.

NSE1 – High Altitude Balloon

This has been on the back burner for years. Those that do not know much about high altitude ballooning I suggest you check out http://ukhas.org .

NSE1 is currently in development and will contain:
GPS/RTTY tracker – Sends GPS location over a radio signal.
GPS/GSM tracker – Sends GPS location over SMS as a backup.
808 camera – Cheap mini camera to record the flight
Energizer Lithium AA Batteries – Work well at low temperature and are very light.
Foam payload box – keeps everything insulated and together.

Photos can be seen on Flickr