GPS Tracker V3 (LoRaWAN)
This manual describes the current hardware revision HW3 (GPS-LoRaWAN V3), which runs firmware starting with version 7.0.0. For older devices, see Hardware Revisions.


Order numbers: 8000116 (AA variant), 8000135 (D-cell variant).
Overview
The LoRaWAN GPS Tracker (GPS-LoRaWAN V3) is a battery-powered tracking device that uses the satellite-based positioning services GPS and BeiDou to determine its location and transmits the obtained coordinates via LoRaWAN radio technology. Intervals between measurements can be freely configured in order to adjust the device to individual needs.
An integrated motion sensor detects changes in the device's movement (if it is
picked up or transported in a vehicle). This allows the device to switch between
an Active Mode, in which frequent updates are uploaded during phases of
movement, and a Passive Mode that saves battery power by sending only few
updates. While not sending updates, the device enters a sleep mode that only
uses ∼25 µA (or ∼14 µA without motion sensor).
Quickstart
This is a basic guide to get the GPS Tracker running using the free LoRaWAN network The Things Network (TTN). Any LoRaWAN network can be used. Refer to the rest of the manual for detailed information.
- Create an account on The Things Network.
- Create a new application for the Lobaro GPS Tracker V3.
- Copy our reference parser to your application.
- Create a new device in your new application in TTN.
- Adjust the device parameters
DevEUI,AppEUI/JoinEUI, andAppKey. Either change the values in the TTN device entry or change the configuration of the GPS Tracker using the Lobaro Config Adapter. - Make sure you have coverage by a TTN gateway and GPS (outside).
- Insert batteries into the tracker.
- Check for data in TTN.
Operating the GPS Tracker
Once batteries are inserted into the device, it will start working. The tracker will most likely need to be adjusted to your personal LoRaWAN configuration (see Configuration).
Batteries
Please see our page on disposal of Lobaro devices.
The LoRaWAN GPS Tracker default power supply consists of two series-connected off-the-shelf 1.5 V 'AA' sized batteries. Be sure to get the polarity right — see the '+' symbol on the board. In general, only AA cells of the types Alkali-Manganese (1.5 V, LR6) and Lithium-Iron-Sulphide (1.5 V, FR6) are allowed to be inserted in the device. Lobaro recommends the use of FR6 batteries like the Energizer Ultimate Lithium over LR6 types because of the higher capacity and better discharge properties.
On request, we can supply custom product variants with special housings powered by even bigger batteries. For example, a 3.6 V C-sized mono cell typically has a capacity of 9 Ah, which leads to a 3× increased battery life compared to the standard AA cells. With D-sized cells of typically 19 Ah capacity, this value can be doubled once again (6×).
Installation
The device can be fixed on a flat surface using the lateral mounting holes of the case. Alternatively, we offer a mounting clip for a standard 35 mm DIN rail as an accessory. The device can then easily be snapped onto such rails.
For optimal RF performance (e.g. LoRa range), any metal obstacles near the internal antenna should be avoided. In this case 'near' is defined as a keep-out distance of about 3–5 cm around the antenna. The internal helix antenna can be identified by the winding PCB traces on the right side of the board. In any case, mounting the device directly on top of a metal surface is not advisable, since it will degrade the possible RF range. Stone walls, wood, or plastic standoffs are perfectly fine. In case of challenging installation locations (e.g. in basements) or unavoidable long distances to the next LoRaWAN gateway, Lobaro offers a custom product variant equipped with an 'SMA' connector to support an external antenna connection on request.
Work Cycle
The GPS Tracker has a work cycle that adapts to detected motion of the device.
Initial Phase
This is the phase that is executed after the device is started or restarted. The LED flashes once and the configuration is evaluated. If successful, the LoRaWAN join phase is executed next.
LoRaWAN Join Phase
If the device is configured to use over-the-air activation (OTAA), the OTAA join is performed at this point. The device will repeatedly try to join its LoRaWAN network until the process is successful. It then enters the data collection phase. If the device is configured to use ABP instead of OTAA, this phase is left immediately and the data collection phase is entered.
GPS Collection Phase
During the GPS collection phase, the device will try to determine its coordinates (latitude, longitude, and height) using GPS. You can identify this phase by the onboard LED flashing on and off in one-second intervals. Once the position has been determined successfully (or the attempt timed out and failed because of bad GPS reception), the device enters the data transfer phase.
During this phase the tracker gives visual feedback over its LED. See LED Patterns for an explanation.
Data Transfer Phase
During the data transfer phase, the tracker uploads the GPS coordinates to the
LoRaWAN network. The message contains the information whether the measurement was
successful. Some status information about the device is included as well. For a
detailed description of the data sent, refer to
LoRaWAN Data Upload Formats. After data transfer,
the GPS Tracker enters a sleep state to save power. Depending on how much time
passed since the last physical movement of the device (determined by the internal
motion sensor), the tracker enters different sleep phases. If the time since the
last detected motion is less than a timeout value (configurable, standard value
is 65 minutes), the device remains in Active Mode and enters only a short sleep
phase (Active Sleep). If no motion was detected for a time longer than the
timeout, the device enters the Passive Sleep phase, which typically has a much
longer sleeping time, but in which the device will also be activated through
movement.
Active Sleep Phase
Even in Active Mode, the device spends most of its time in a deep sleep state to conserve energy. The frequency with which the tracker wakes up in Active Mode can be configured using a cron expression (see GPS configuration parameters). Typical values for active sleep time are 5 or 15 minutes. When in Active Sleep phase, the device will not be triggered to gather more GPS positions through motion, but movement of the device will still be registered to keep the tracker in Active Mode.
Passive Sleep Phase
When no movement has been detected for a long amount of time (configurable), the device stops sending updates, since there is not much point in sending frequent position information when the device does not change its position. In Passive Mode, only very few updates are sent to keep the network informed about the device's health. Typically one message is sent per day in this mode (frequency can be configured with a cron expression, see GPS configuration parameters). When physical movement is detected by the internal motion sensor during this phase, the GPS Tracker immediately wakes up and switches to Active Mode.
Configuration
The Lobaro Maintenance Tool
The initial device configuration can be done very comfortably from your PC via the serial configuration interface. Besides the needed Lobaro USB-to-UART adapter, the Lobaro Maintenance Tool needs to be installed. This tool is freely available for various operating systems including Windows, Linux, macOS, and Linux-ARM (e.g. Raspberry Pi) and works with all Lobaro sensors.
Technically, this software opens a web server on port 8585 that runs in a background console window. The actual user interface can be accessed normally using a standard web browser at address http://localhost:8585. Additionally to the device setup, the tool can also be used for firmware updates ('Firmware' tab), watching real-time device diagnostic output ('Logs' tab), and initiating device restarts.
Connecting the USB Config Adapter
For configuration and firmware updates we provide a special serial-USB adapter (the Lobaro Config Adapter) that can be connected as shown in the picture below. The corresponding connector on the PCB is marked with the word 'Config'.
The USB adapter will add a virtual serial 'COM' port to your system. Your operating system needs the CP210x USB-to-UART bridge driver installed. While the config adapter is connected, the device will be powered from the USB port with a regulated voltage of 3.3 V. It is not necessary — although it would be no problem — to have batteries inserted or a different supply connected while using the config adapter. All configuration parameters will be kept non-volatile regardless of the power supply.
System Parameters
After being successfully connected to the hardware using the Lobaro Maintenance Tool, you can press 'Reload Config' in the 'Configuration' tab to read the current configuration from the device. For every parameter a default value is stored non-volatile inside the hardware, to which you can revert using the 'Restore default' button in case anything got misconfigured.
LoRaWAN
The connection to the LoRaWAN network is defined by multiple configuration parameters. These need to be set according to your LoRaWAN network and the way your device is supposed to be attached to it, or the device will not be able to send any data.
For a detailed introduction into how these values need to be configured, please refer to the LoRaWAN configuration chapter in our LoRaWAN background article.
| Name | Description | Type | Values |
|---|---|---|---|
OTAA | Activation: OTAA or ABP | bool | true = use OTAA, false = use ABP |
DevEUI | DevEUI used to identify the device | byte[8] | e.g. 0123456789abcdef |
JoinEUI | Used for OTAA (called AppEUI in v1.0) | byte[8] | e.g. 0123456789abcdef |
AppKey | Key used for OTAA (v1.0 and v1.1) | byte[16] | |
NwkKey | Key used for OTAA (v1.1 only) | byte[16] | |
SF | Initial / maximum spreading factor | int | 7-12 |
RndDelay | Random delay before sending | int | max seconds to wait |
RemoteConf | Not supported by this firmware | bool | true = enabled, false = deactivated |
LostReboot | Days without downlink before reboot | int | days, 0 = don't reboot |
GPS Configuration Parameters
The behaviour of the GPS Tracker and how it switches between its two operation modes ('Active' and 'Passive') can be adjusted to your needs. The table explains the configuration parameters used for this.
| Name | Type | Description | Default value |
|---|---|---|---|
statusCron | string | Cron expression defining how often the device will send a status message. | 0 0 0 * * * |
activeCron | string | Cron expression defining how often the device will take a measurement and send its position over LoRaWAN while the tracker is in Active Mode. This should trigger much more frequently than the one for Passive Mode. | 0 0/15 * * * * |
passiveCron | string | Cron expression defining how often the device will wake up when in Passive Mode. This should be less frequent than in Active Mode. | 0 0 0/12 * * * |
gpsTO | int | Time in seconds to wait for GPS to get a fix before timing out. | 180 seconds |
activeTO | int | Time in minutes without movement after which the tracker switches to Passive Mode. | 65 minutes |
timeSyncGps | bool | Update internal clock from GPS signal? | true |
memsTh | int | Threshold for the internal motion detector to register movement. Values range from 2 to 255; a higher value makes the device less sensitive. 2: environment (wind or steps) may trigger. 5: standard, picking up the device will activate it. 20: carefully picking it up will not trigger the device. 50: when carried, running will trigger, walking won't. 100+: shaking will activate, dropping the device might not. | 5 |
maxHDOP | int | Maximum acceptable Horizontal Dilution Of Precision, between 1 and 50, smaller is better. | 2 |
maxDataAfterFix | int | If the HDOP target cannot be matched, this value determines after how many data packets with a fix the position will be accepted. Min. value: 3. | 20 |
moveDist | int | (since 7.1.0) Travelled distance in metres between two GPS measurements that counts as a movement event and triggers Active Mode. | 100 |
The schedules for data-collecting phases are defined using cron expressions. See our Introduction to CRON expressions for details.
LED Patterns
The GPS Tracker gives visual feedback about its operation using a green onboard LED.
| Meaning | Pattern | Explanation |
|---|---|---|
| Device Start | Single ½-second blink | Device just (re-)booted, testing LED |
| GPS active | Short blinks every second | GPS module is active and tracker is trying to get a position fix |
| GPS fix | Two long blinks | GPS process completed, valid position determined |
| GPS failed | One long and 5 short blinks | GPS process timed out, no position determined |
LoRaWAN Data Upload Formats
The device uploads several different message types, each with their own purpose and on their own port.
| Port | Size | Message |
|---|---|---|
1 | 14 bytes | Status message, containing information about the status of the device. |
2 | 23 bytes | Data message, containing positional information gained by GNSS (GPS/BeiDou). |
128-131 | varying | Responses to remote configuration commands. |
Numerical Values
Numerical values are uploaded as integers. If a value needs a higher precision,
it is encoded using a smaller unit; for example, the measured temperature is
transmitted in 10th °C. Integers are used signed or unsigned and in various sizes
as needed, so unusual sizes like int24 or int40 can be found. All multi-byte
values are encoded in
big endian (network byte order). See
our reference parser implementation to see how you can handle those
values.
Status Message
After booting and joining the LoRaWAN network, the device uploads a status
message on port 1 that contains information about the device itself and its
state. This message is sent regularly, configured by the parameter statusCron.
The default behaviour is to send the status message once every day. The message
has a fixed length of 14 bytes. Byte positions are counted starting with 0.
| Name | Bytes | Type | Description | Values |
|---|---|---|---|---|
| Firmware | 0-2 | char[3] | Firmware identifier | constant: GPS |
| Version | 3-5 | uint8[3] | Three numbers indicating firmware version | 0x07000a = v7.0.10 |
| Status | 6 | uint8 | Status code indicating the device's condition | 0 = OK |
| Reboot reason | 7 | uint8 | Code indicating reason for last reboot | 0x06 = reset button pressed |
| Final words | 8 | uint8 | reserved for future use | 0 |
| Voltage | 9-10 | uint16 | Battery voltage in mV | 0x0c38 = 3128 = 3.128 V |
| Temp | 11-12 | int16 | Internal temperature in 10th °C | 0x0102 = 258 = 25.8 °C |
| Flags | 13 | bit[8] | Application state | 0b01 = passive mode, position valid |
Status Code
Status is a numeric code transmitted as uint8 that gives a self-diagnostic:
| Status Code | Status Name | Meaning |
|---|---|---|
0 | OK | Normal operation, no problems detected. |
101 | GPS_ERROR | The device's GPS module does not respond. |
102 | MEMS_ERROR | The motion detector does not respond. |
103 | GPS_AND_MEMS_ERROR | Neither GPS module nor motion detector respond. |
Reboot Reason
Reboot reason is a numeric code transmitted as uint8 that tells why the
device restarted when it last booted. This value is useful for troubleshooting
and error detection.
| Reboot Code | Reboot Reason | Explanation |
|---|---|---|
1 | LOW_POWER_RESET | Supply voltage broke, batteries might need replacing. |
2 | WINDOW_WATCHDOG_RESET | |
3 | INDEPENDENT_WATCHDOG_RESET | |
4 | SOFTWARE_RESET | Firmware triggered a reboot. |
5 | POWER_ON_RESET | Power was turned on / batteries were inserted. |
6 | EXTERNAL_RESET_PIN_RESET | Reset button pressed / reset by config adapter. |
7 | OBL_RESET |
Voltage and Temperature
Supply voltage fed into the device, either from battery or external power source;
gives an indication of the state of the battery used. The voltage is measured in
millivolts (mV) and transmitted as a uint16. The device also has an internal
temperature sensor, measured in 10th °C and transmitted as an int16.
Data Message
After reading coordinates from GPS, the device uploads a data message containing the position data. This happens even when the device did not get a fix on its position. If no new position could be determined, the last known valid position is uploaded (together with a timestamp of when that position was valid). This makes it possible to get position data even if the tracker does not have GPS coverage and LoRaWAN coverage at the same time.
The data message is 28 bytes long and transmitted on port 2. The message is partly compatible with the data message of older firmware (versions 5 and 6); only new values have been appended at the end. Byte positions are counted starting with 0.
| Name | Bytes | Type | Description | Values / Examples |
|---|---|---|---|---|
| Temperature | 0-1 | int16 | Internal temperature in 10th °C | 0x0102 = 258 = 25.8 °C |
| Voltage | 2-3 | uint16 | Battery voltage in mV | 0x0c38 = 3128 = 3.128 V |
| Latitude | 4-7 | int32 | Degrees latitude × 100000 | -9000000 – 9000000 |
| Longitude | 8-11 | int32 | Degrees longitude × 100000 | -18000000 – 18000000 |
| Altitude | 12-14 | int24 | Altitude in cm | 0x0034c6 = 13510 = 135.1 m |
| Flags | 15 | bit[8] | Application state | 0b01 = passive mode, position valid |
| SatCnt | 16 | uint8 | Number of satellites used for fix | 0x06 = 6 |
| HDOP | 17 | uint8 | 1/10 × Horizontal Dilution of Precision | 0x0f = 15 = HDOP 1.5 |
| Timestamp | 18-22 | int40 | UNIX timestamp of position data in message (0 for never) | 0x005eccd15f = 1590481247 = 2020-05-26T08:20:47 UTC |
| Movement | 23-27 | int40 | (since 7.1.0) UNIX timestamp of last movement event (0 for never), either MEMS or GPS movement | 0x005eccd15f = 1590481247 = 2020-05-26T08:20:47 UTC |
Position and Timestamp
The position data is the main purpose of the tracker. It is always combined with
a timestamp taken directly from the GPS data, so it is the exact point in time
that the position was determined, encoded as a
UNIX timestamp. A value of 0 (which
translates to 1970-01-01T00:00:00) indicates that the tracker never got a fix
on its position, so the position data is invalid. If there is a timestamp > 0,
the transmitted position data always refers to a valid position (even if the flag
Position Valid is 0), but at the indicated time — so the position could be
quite outdated.
The position is encoded as signed latitude and longitude with five decimal
digits of precision, in two int32 values; divide by 100000 to get degrees.
Positive values stand for North/East, negative values for South/West. The
altitude is encoded as cm in an int24.
Position Quality
SatCnt and HDOP are indicators of how good the position in the data message
is. SatCnt is a uint8 giving the number of satellites used for calculating
the coordinates (more is better; the minimum for a fix is 4, 10 or more is a good
value). HDOP is the
Horizontal Dilution of Precision,
a dimensionless value indicating how precise the position can be for the current
satellite positions. It is transmitted multiplied by 10 as a uint8, so divide
by 10 to get the actual HDOP; it maxes out at 25.5. Values of 1 and below are
ideal, values up to 5 are considered good.
Flags
The status flag indicates the current conditions inside the application. Only two
bits are used. Bit counting starts with the least significant bit at 0.
| Bit | Meaning | Values |
|---|---|---|
0 | Position currently valid | 0 = not valid, 1 = valid |
1 | Current operation mode | 0 = Passive Mode, 1 = Active Mode |
Parser
Here is a reference message parser written in JavaScript that can be used in The Things Network to parse the status message and data message into JSON objects. If you are using your device with TTN-Mapper, please read the advice under TTN-Mapper.
/**
* Parser for Lobaro GPS-Tracker v3 to be used in The Things Network
*
* When used with TTN-Mapper integration set global variable
* TTN_MAPPER to false. See https://docs.lobaro.com for details.
*
* Copyright 2020 Lobaro GmbH - https://www.lobaro.com
* Free to be used under MIT License.
*/
/* === CONFIG === */
// Set this to true, if you are using TTN-Mapper integration. This avoids sending
// outdated positions that TTN-Mapper would use as new data.
var TTN_MAPPER = false;
/* Helper functions used by this parser */
function signed(val, bits) {
if ((val & 1 << (bits-1)) > 0) { // value is negative (16bit 2's complement)
var mask = Math.pow(2, bits) - 1;
val = (~val & mask) + 1; // invert all bits & add 1 => now positive value
val = val * -1;
}
return val;
}
function uint40_BE(bytes, idx) {
bytes = bytes.slice(idx || 0);
return bytes[0] << 32 |
bytes[1] << 24 | bytes[2] << 16 | bytes[3] << 8 | bytes[4] << 0;
}
function uint32_BE(bytes, idx) {
bytes = bytes.slice(idx || 0);
return bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3] << 0;
}
function uint24_BE(bytes, idx) {
bytes = bytes.slice(idx || 0);
return bytes[0] << 16 | bytes[1] << 8 | bytes[2] << 0;
}
function uint16_BE(bytes, idx) {
bytes = bytes.slice(idx || 0);
return bytes[0] << 8 | bytes[1] << 0;
}
function int40_BE(bytes, idx) {return signed(uint40_BE(bytes, idx), 40);}
function int32_BE(bytes, idx) {return signed(uint32_BE(bytes, idx), 32);}
function int24_BE(bytes, idx) {return signed(uint24_BE(bytes, idx), 24);}
function int16_BE(bytes, idx) {return signed(uint16_BE(bytes, idx), 16);}
function readVersion(bytes, i) {
if (bytes.length < 3) {
return null;
}
return "v" + bytes[i] + "." + bytes[i + 1] + "." + bytes[i + 2];
}
/**
* Decode status/error codes from GPS-Tracker to human readable tags.
*/
function decode_status_code(code) {
switch (code) {
case 0:
return "OK";
case 101:
return "GPS_ERROR";
case 102:
return "MEMS_ERROR";
case 103:
return "GPS_AND_MEMS_ERROR";
default:
return "UNKNOWN";
}
}
/**
* Decode reboot reason explaining last reboot of device.
*/
function decode_reboot_reason(code) {
// STM reboot code from our HAL:
switch (code) {
case 1:
return "LOW_POWER_RESET";
case 2:
return "WINDOW_WATCHDOG_RESET";
case 3:
return "INDEPENDENT_WATCHDOG_RESET";
case 4:
return "SOFTWARE_RESET";
case 5:
return "POWER_ON_RESET";
case 6:
return "EXTERNAL_RESET_PIN_RESET";
case 7:
return "OBL_RESET";
default:
return "UNKNOWN";
}
}
function DecoderPort2(bytes) {
// Data Message containing position data.
var Temp = int16_BE(bytes, 0) / 10;
var VBat = int16_BE(bytes, 2) / 1000;
var Lat = int32_BE(bytes, 4) / 100000;
var Lon = int32_BE(bytes, 8) / 100000;
var Alt = int24_BE(bytes, 12) / 100;
var Valid = !!(bytes[15] & 0x01);
var Active = !!(bytes[15] & 0x02);
var SatCnt = bytes[16];
var Hdop = bytes[17] / 10;
var Time = int40_BE(bytes, 18);
if (TTN_MAPPER && (!Valid)) {
// TTN-Mapper specific:
// Position is not valid, so this is outdated data. TTN-Mapper cannot handle those
// so we drop this packet on purpose:
return {};
}
return {
"temperature": Temp || 0,
"voltage": VBat || 0,
"latitude": Lat || 0,
"longitude": Lon || 0,
"altitude": Alt || 0,
"valid": Valid,
"active": Active,
"satellites": SatCnt,
"hdop": Hdop,
"time": Time * 1000
};
}
function DecoderStatus(bytes) {
var firmware = String.fromCharCode.apply(null, bytes.slice(0, 3));
var version = readVersion(bytes.slice(3, 6));
var status_code = bytes[6];
var status_text = decode_status_code(status_code);
var reboot_code = bytes[7];
var reboot_reason = decode_reboot_reason(reboot_code);
var final_code = bytes[8];
var vcc = (int16_BE(bytes, 9) / 1000) || 0.0;
var temp = (int16_BE(bytes, 11) / 10) || -0x8000;
var app_data = bytes.slice(13);
return {
"firmware": firmware,
"version": version,
"status_code": status_code,
"status_text": status_text,
"reboot_code": reboot_code,
"reboot_reason": reboot_reason,
"final_code": final_code,
"temperature": temp,
"voltage": vcc,
"app_data": app_data
};
}
function DecoderPort1(bytes) {
var d = DecoderStatus(bytes);
var flags = d.app_data[0] || 0x00;
d.valid = !!(flags & 0x01);
d.active = !!(flags & 0x02);
return d;
}
function Decoder(bytes, port) {
switch (port) {
case 1:
// Port 1: Status Message
return DecoderPort1(bytes);
case 2:
// Port 2: Data Message (containing position data)
return DecoderPort2(bytes);
default:
return {"error":"Unsupported port","port":port};
}
}
TTN-Mapper
TTN-Mapper is a community project that tries to create a global map of LoRaWAN coverage of the open LoRaWAN network The Things Network. Anyone with a compatible GPS-capable LoRaWAN device can contribute to the project by submitting their data.
The Lobaro LoRaWAN GPS Tracker can easily be used as a TTN-Mapper node, as it uploads latitude, longitude, altitude, and Horizontal Dilution of Precision (HDOP). The device should be set up with a specific configuration, and the parser used in TTN for the device must be slightly adjusted to stop outdated position data from being used in the mapper.
Configuration
The device can be used either with OTAA or ABP. The EUIs and keys must be set accordingly to activate the device in TTN. The remaining configuration values can mostly remain at default. A few should be adjusted as follows:
| Parameter | Value | Comment |
|---|---|---|
SF | 7 | Spreading factor should be set to 7 according to TTN-Mapper documentation. |
ADR | false | Adaptive Data Rate should be deactivated for mobile devices. |
OpMode | A | No downlinks needed. |
TimeSync | 0 | Not supported by TTN, time is synced from GPS signal. |
RndDelay | 0 | Random delay would distort position while moving. |
activeCron | 0 0/3 * * * * | Suggestion that uploads position while active. Adjust as needed. |
activeTO | 5 | Switch to Passive Mode after 5 minutes without movement. |
Parser
The payload format decoder must be slightly adjusted for the use of TTN-Mapper,
because the Lobaro GPS Tracker will upload its latest known valid position when no
GPS fix can be achieved. TTN-Mapper would parse that as a new valid position, so
the parser must drop those messages in order to stop wrong data points ending
up in TTN-Mapper. Set TTN_MAPPER = true; at the top of the parser to activate
TTN-Mapper conformity.
Integration
Add an integration for your TTN application as described under
https://www.thethingsnetwork.org/docs/applications/ttnmapper/.
The port filter must be set to 2. You can use the TTN-Mapper integration side by
side with other integrations that connect to your backend/platform.
Firmware
Available firmware versions and release notes are listed on the Firmware & Changelog page.
Technical Characteristics
Product
| Property | Value |
|---|---|
| Type name | GPS-LoRaWAN 3 (LOB-S-GPS-LW-3) |
| Description | LoRaWAN GPS Tracker HW3 |
RF transceiver
| Property | Value |
|---|---|
| Chipset | Semtech SX1272 |
| Frequency range | 863 to 870 MHz |
| TX power | ≤ 14 dBm |
| Typical RF range | ≤ 2 km |
| Ideal RF range | ≤ 10 km (free line of sight) |
LoRa communication
| Property | Value |
|---|---|
| LoRaWAN protocol | LoRaWAN 1.0.1, 1.0.3, 1.1.0, Class A/C, EU868 |
| Activation method | Over-the-air activation (OTAA), Activation by personalization (ABP) |
| Encryption | AES128 |
Power
| Property | Value |
|---|---|
| Power supply | 2× AA-sized battery, 1.5 V, LR6/FR6 |
| Supply voltage | U |
| Capacity | ∼ 30000 LoRaWAN messages @ SF11 |
Current consumption @ 3 V
| Property | Value |
|---|---|
| Normal | ≤ 3 mA |
| Wireless M-Bus RX | ≤ 14 mA |
| LoRa RX | ≤ 14 mA |
| LoRa TX | ≤ 80 mA |
| Sleep with GPS standby and MEMS running | ≤ 20 µA |
Mechanical dimensions
| Property | Value |
|---|---|
| Size | 114.3 mm × 59.3 mm × 26.8 mm |
| Housing material | ABS plastic |
Environmental requirements
| Property | Value |
|---|---|
| Operating temperature range | -20 °C to +55 °C |
| Max. installation height | 2 m |
Disposal
For information on disposal of the LoRaWAN GPS Tracker V3, please refer to https://www.lobaro.com/entsorgung-weee-rohs/.
PDF Documentation
- Product Dimensions (PDF)
- CE Declaration of Conformity (PDF)