Thread Tools
Jul 08, 2015, 06:36 AM
Stuart
srnet's Avatar
Discussion

Arduino LoRa Long Range Lost Model Tracker


I have built a few trackers using other micro platforms based on LoRa and they have worked well, see some details here for real world tests on its capability;


https://www.rcgroups.com/forums/show....php?t=2341299

https://www.rcgroups.com/forums/show....php?t=2430269

http://www.southgatearc.org/news/201...m#.VZz-zC7UUzw

Trackers preferably should be small and these days this is easy enough with modern SMT components. I don’t have a problem assembling even the small stuff by hand, but it’s not every ones cup of tea and time consuming for all.

I have thought for while on how it would be possible to build a small LoRa tracker that could be easily built with a minimum of components. It occurred to me that an Arduino Pro Mini had most of the parts for a tracker ready assembled on a cheap, small and light PCB, but using pin headers to mount it would require a fairly large PCB because of interference from the pads on the RFM98.

So I thought of the possibility of surface mounting the Pro Mini on one side of a PCB and putting the RFM98 on the other. A tracker needs to be robust to survive crashes, so a PCB is almost mandatory. Surface mounting the Pro Mini does work and is not difficult to solder.

This tracker can be built with very few components, the Pro Mini an RFM98 and some connectors. It uses the 434 MHz version of the RFM98, which is suitable for licence exempt use in the UK at 10mW\10dBm.

The minimum recommended circuit of the tracker transmitter is as attached, note the two diodes which allow the tracker to power itself from the 5V supply from the RC receiver or a backup Lithium battery. The initial PCB design also has an optional charger fitted (3 extra SMT components) so the 5V supply can keep the Lithium battery charged.

The PCB has pads for fitting an Ublox MAX 8 and ceramic antenna so it can be used as a HAB tracker. There is also a temperature sensor, SPI FRAM or RAM, a u.fl co-ax socket for an external antenna, SMA edge connector socket for antenna and resistors and pads to allow external voltages to be monitored so the results can be sent as telemetry.

Note the PCB has the Pro Mini pins replicated to a row of holes so that additional stuff (or PCBs) can be easily added. For the flight version of the tracker the board was trimmed to remove these holes.
The same PCB can be used for both transmitter and receiver, both should operate with most GPSs, 9600baud is assumed. Recommended are the Global Top GPSs with integrated antenna, these are small and light.

The receiver drives a Nokia 5110 backpack display (code and circuit provided) via a 3 wire interface, 2 for power and one for serial at 9600baud, this approach was chosen so that with the same hardware setup and code there is the option of using one of the Digole LCDs as an alternative to the 5110 if you want\need more test output or pretty colours.

http://www.digole.com/

The working transmitter software (in the ZIP file) provides a basic tracking function, it reads the GPS and sends out the GPS co-ordinates and altitude as LoRa telemetry about once every 10 seconds. This tracker PCB and software has been flight tested.

The bare bones receiver is also working, that displays the received telemetry from the tracker as Latitude, Longitude and altitude on the 5110 LCD, this option is for those that don’t want the expense of a second GPS in the receiver. I will post the code for this option shortly.

There are some issues getting the combination of the receiver software and background serial for the GPS (so the distance and direction to tracker can be calculated and displayed) to co-operate, this need further investigation.

The tracker can also send out a series of ‘find me’ FM tones which you can hear on a UHF Handheld.

The program files, including those for the receiver have been moved to a Dropbox;

https://goo.gl/TYsFBf

.
Last edited by srnet; Oct 12, 2015 at 12:41 PM. Reason: Changed Schematic
Sign up now
to remove ads between posts
Jul 08, 2015, 06:36 AM
Stuart
srnet's Avatar
So whats next ?

Add code to read servo pulses from the RC receiver so that a lost condition can be detected. If the tracker knows it’s lost it can readily adapt from in-flight mode to lost mode.

Save last know location in EEPROM\FRAM in case of resets or power upsets.

The PCB as shown is working, but it does need a couple of changes to make it easier to assemble.
Last edited by srnet; Jul 11, 2015 at 12:16 PM.
Jul 08, 2015, 07:52 AM
Registered User
Quote:
Originally Posted by srnet View Post
There are some issues getting the combination of the receiver software and background serial for the GPS (so the distance and direction to tracker can be calculated and displayed) to co-operate, this need further investigation.
Are you using a GPS on the receiver? If so, the best solution I found is to disable all the NMEA messages, and use the GPS module in poll mode. It sends a serial message (with position) only when you send a request command to the GPS. Especially if you are using SofwareSerial on the Arduino, the use of polling simplifies things inmmensely
Jul 08, 2015, 08:00 AM
Stuart
srnet's Avatar
Quote:
Originally Posted by robca View Post
Are you using a GPS on the receiver? If so, the best solution I found is to disable all the NMEA messages, and use the GPS module in poll mode. It sends a serial message (with position) only when you send a request command to the GPS. Especially if you are using SofwareSerial on the Arduino, the use of polling simplifies things inmmensely
Well the transmitter runs software serial in the background, picks up a fix, stores it and then transmits the data, this works just fine.

The receiver does much the same thing, runs software serial in the background, picks up a fix, then checks if a packet has been received in the background (which is independant of Arduino) and deals with it.

It probably something to do with the code, I will work from the TX setup and add in the RX bits as well to see what happens.

I realise that disabling the NMEA messages makes things somewhat easier, but how to do this tends to be specific to each particular GPS. Better to avoid being tied to a particular GPS in my view, if possible.
Jul 10, 2015, 12:50 AM
Stuart
srnet's Avatar
The receiver code, which displays latitude, longitude and altitude on the 5110 display is now on the dropbox, link on the first page.

This receiver code is the simplest, and cheapest, receiver as it does not need its own GPS.
Jul 21, 2015, 05:51 AM
Stuart
srnet's Avatar
This is the portable receiver, it uses the same PCB as the tracker TX but with the expansion board holes left on to allow wires for the LCD display, switches and buzzer etc. There is a socket for an external 5V supply, could be USB, which charges the Lithium Ion battery via the charger IC on the tracker PCB, see schematic. The Nokia 5110 LCD is driven in Digole backpack mode via a Pro Mini as the controller.

The receiver can display the Latitude, Longitude and altitude of both the tracker TX and the receiver, plus calculate and display the distance and direction to the tracker TX. This setup will receive the GPS location telemetry at circa 1km across a flat urban area, up to 300km with good line of sight between TX and RX.

Currently the tracker TX enters ‘Lost’ mode on expiry of a configurable timer. When in ‘Lost’ mode the LoRa telemetry is sent as well as the FM Audio search tones. I next plan to add RC Servo pulse detection for an additional ‘Lost’ mode. Making a connection to a RC channel that changes often (rudder or elevator for instance) will allow the ‘Lost’ state to be detected as soon as the servo pulses fail or go into hold state.

The RC channel connection also allows the tracker TX to take its power from the main RC battery and still keep the Lithium backup battery charged.
Last edited by srnet; Jul 22, 2015 at 12:10 AM.
Aug 02, 2015, 10:04 AM
Stuart
srnet's Avatar

How to increase search range - a lot.


Simple, put a tracker on a plane and have it relay what it hears back down to the ground.

With the transmitter on a 1M pole in my garden I went to a beach 12km away, at about 300ft above the beach I picked up the telemetry from the remote tracker.
Last edited by srnet; Aug 02, 2015 at 12:05 PM.
Aug 03, 2015, 01:08 PM
Gaftopher
Gary Mortimer's Avatar
I've got a Yellow Baofeng, were do I apply! Thing of beauty Stuart thing of beauty (your radio work not the Baofeng)
Aug 04, 2015, 05:43 AM
Stuart
srnet's Avatar
Why thank you.

The radio stuff is the easy bit really, once you have a basic understanding of antennas and dBs, its straight forward. The rest is just common sense and having enough imagination to come up with ways to test and prove this stuff, given the sceptics and distances involved.

The hard bit is the PCBs and code. The code would be easier to do and change on platforms other than Arduino but in terms of cost and ease of Assembly having 95% of the required parts ready assembled on the Pro Mini, which costs around £1.50, is hard to beat. The PCBs just take a long time to get right, given that you trying to make them small and easy to assemble too.

From the same testing day last Saturday, here is a picture of a ground based search using a yagi. I am on the edge of Cardiff bay, the view is a direct line back to my garden, 7km away with lots of buildings in the way. The link margin was around +3dB, so within 20-30% of the distance limit.
Aug 11, 2015, 12:14 PM
Stuart
srnet's Avatar
Waiting for a new version of the PCB to arrive, about 10days.

I had to spend long time playing with the PCB design to keeping the pads on the PCB that the Pro Mini is soldered to clear of tracks, otherwise they Pro Mini pads can short them out when its soldered in place.

There are two versions of the tracker on on 100mm x 50mm PCB, its 1mm thick so easily broken apart.

The small tracker PCB is intended for airborne model or high altitude balloon use. The other that is for building a receiver as it has the extra pads on the edges for swithches and displays etc.

The third smallest board is a Pro Mini backpack board for the Nokia 5110 display, which is ideal for a very small portable receiver. Adafruit do a library for the large colour ILI9341 OLED, these are 240x320 pixels and cost around £4, so the same backpack could drive one of these too.
Aug 11, 2015, 12:49 PM
S.C.R.A.P.S Member
chargenut's Avatar
These look great! I'm definitely up for buying one of these when you get them! It looks like you get all three boards in one? (and break apart?)

Nice work!

T
Aug 11, 2015, 12:56 PM
Stuart
srnet's Avatar
The 1mm boards are the thinnest before the price goes up (a lot!).

Pannelising the board like that is a bit of a pain in Eagle, but it does make the boards a lot cheaper.

There are 1mm guide holes, you just score the board either side with a sharp blade (Stanley etc), put them over a hard edge and they snap quite cleanly. File smooth with sandpaper.
Aug 11, 2015, 02:13 PM
Registered User
Do you plan to offer the PCBs for sale?
Aug 12, 2015, 12:47 AM
Registered User
I'd be interested also. Too bad we're on different sides of the pond.
Aug 12, 2015, 02:58 AM
Stuart
srnet's Avatar
Quote:
Originally Posted by robca View Post
Do you plan to offer the PCBs for sale?
I shall be selling a few, it would be good to see how people get on.

As for long term, not sure.

There is not a lot of profit in selling PCBs, but a good deal of support is still expected, and however much you try to simplify construction, assembly is not for beginners.


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion Ideas for an Arduino lost model locator robca DIY Electronics 19 Apr 12, 2016 04:21 PM
Mini-HowTo Arduino lost model finder. mlp666 Multirotor Drone Electronics 2 Jun 18, 2015 08:41 AM
Sold Roameo - GPS, Lost (Dog)Model Tracker $80 Captain3D Aircraft - General - Miscellaneous (FS/W) 2 Feb 27, 2015 11:27 AM
Discussion GPS module lost model tracker. martinh Electric Sailplanes 0 Apr 27, 2010 02:03 PM