We have a new stretch goal for our LoRaONE Kickstarter. When we reach €75.000 we will preload all the boards with a complete CPS tracker application.
With your support we can reach this target.
Below you will find the specs for this application as we have drafted it now. This is based on our experiences in Africa last week with our Rhino Tracker that we tested in a 400 sq. km National Park covered by 2 Kerlink gateways.
Please comment if you have ideas for improvement.
Configuration Menu
There will be a configuration menu to configure the device over the USB port. The menu displays at startup and times out in 10 seconds or when the OK command is given.
The following parameters will be configurable through the menu:
Configuration Parameters
Fix Interval default in Minutes
Fix Interval alternate in Minutes (optional)
From time HH:MM (optional)
To time HH:MM (optional)
GPS_Fix_Timeout seconds
DEVADDR
APPSKEY
NWSKEY
Number of coordinates to upload, Value of 1 to 4
Repeat count (default 0)
The LoRa communication must only start when the device address and keys are not 0 (which is the default)
Sleep
After the startup the device by default will be in deep sleep mode. It should wake from this deep sleep using the RTC Timers. In deep sleep the estimated power draw will be around 30uA.
Timers and Watchdog
The application will be using the RTCTimer library. At startup the application will try to obtain a GPS fix until GPS_Fix_Timeout.
There will be a system watchdog running in case the application hangs it should be restarted by the watchdog as is implemented in the library Sodaq_wdt
GPS fixes
As seen in the configuration menu we allow for two different schedules for GPS fixes based on UTC time. The default could for instance be that we want a GPS fix every 30 minutes during the night, but during the day we want a fix every 5 minutes. In that case we configure the default to be 30 minutes, but the optional fix timer to be 5 minutes from 06:00 UTC to 18:00 UTC.
After the GPS fix is obtained (or the timeout reached) a LoRa packet must be sent.
For redundance we can configure a repeat count. The value of the repeat count tells us to send the Lora frame an additional number of times (default 0) for redundancy.
The Lora frame will contain the below data. The minimum frame size is 21 bytes, the maximum frame size 51 bytes, depending on the number of coordinates we have configured to be sent.
LoRa Frame content
Epoch Timestamp, 4 bytes
Battery voltage (between 3 and 4.5 V),1 byte
Board Temperature (degrees celcius), 1 byte
Lat, 4 bytes
Long, 4 bytes
Altitude (MSL in meters below sea level is set to FFFF), 2 bytes
Speed (SOG * 100 km/h), 2 bytes
Course (COG), 1 byte
Number of satellites, 1 byte
Time to fix (seconds, FF = no fix), 1 byte
In addition to the above 21 bytes we can add 0 - 3 of the following 10 bytes being the last known positions. This can be added for redundancy purpose. (In case previous packets didn't arrive because of poor LoRa coverage)
Lat, 4 bytes
Long, 4 bytes
Previous fix (seconds ago, FFFF means longer than), 2 bytes