Tracking platform
Squeak is growing to be an open-source platform for LoRaWAN GPS tracking. Its goal is to be small enough to be easily carried around by a pet and have such a long battery life that it's not a hassle to keep it working.
Latest hardware revision is smaller and has more features than the original prototype. A comprehensive comparison is in the following table, but the general functionality of the device is similar to the original, described further down.
------------------- Original description -------------------
Dimensions
The size is 38mm x 20mm x 12mm. This does not include battery and antenna
Architecture
The tracker uses the RN2483 module from Microchip as an application processor, thanks to Microchip publishing the source code to the module. The general architecture of the tracker is the following:
The module is always powered by the top LDO but is kept in sleep most of the time. On request it can switch on the LDO to the GPS module and wait to get a fix that it can then uplink through LoRaWAN. The GPS module's RAM is always kept powered through its V_BACKUP line (not shown here) and there's also a battery voltage measurement circuit.
Schematic
Project hardware available on EasyEDA.
Components:
- Microchip RN2483 LoRaWAN modem running custom firmware. I kept the LoRaWAN part as developed by Microchip, but wrote my custom application that runs on the PIC in the modem
- Quectel L80 GPS module
- Microchip MCP73831 LiPo battery charger IC
- Torex XC6215 LDOs
Uplink data
Measurements are periodically reported through uplink messages that use the lowest data rate possible (DR0 - SF12BW125 in EU), to maximise the chances of a packet being picked up by a gateway. Packet structure is, in bytes:
[0] - Header: 0x80 - GPS off; 0x81 - GPS on for N transmissions then will be switched off; 0x82 - GPS switched on every M transmissions. GPS mode, N and M are set via downlink config messages
[1-2] - 16 bit counter of number of packets sent. Can be used to check if packets have been missed (e.g. bad network coverage)
[3] - Battery charge state, roughly in %
[4] - Temperature in deg. C. Signed int, 1 degree resolution.
[5-8] - Time of last valid GPS fix. 27 packed bits: (7 bits year), (4 bits month), (5 bits day), (5 bits hour), (6 bits minute)
[9-12] - GPS Latitude
[13-16] - GPS Longitude
Downlink data
Downlinks configure the behaviour - how often uplinks are sent and which of these uplinks should contain GPS measurements. Packet structure:
[0] - Uplink interval, in multiples of 2 minutes
[2] - GPS mode. 0x00 - GPS off; 0x01 - GPS on for N transmissions then will be switched off; 0x02 - GPS switched on every M transmissions
[3] - N or M, depending on GPS mode
Firmware
The firmware is available on GitHub.
Cloud data service
For pet owners to actually interact with the tracker there's a Telegram bot that one can ask to share the location of the tracker
I am interested in building one of these to track my cat. But am thinking having a raspberry pi base station with good antenna on my roof vs having lora transmit through third party network. I imagine my cat would probably only go several blocks away 3-400m. With a good receiver at my house in a residential area, 4-6 houses per block, and trees/fences, would this tracker reach that distance?
The other option is an LTE tracker, traction etc... but i dont want to pay $10 a month to track my cat lol.