G62 LoRaWAN® Configuration and Usage Guide
The G62 LoRaWAN provides a number of configurable parameters, to allow its behavior to be tailored to specific applications. Factors affecting the configuration you might choose include:
- How many messages per day your network will allow
- What external devices need monitoring
- How detailed a bread-crumb trail you require, or the required time between updates
- How good the GPS reception is in your installation
How The G62 Connects (OTAA)
By default, the G62 connects to a local LoRaWAN network using Over The Air Activation. Each G62 is provisioned with:
- A read-only DevEUI - a 16 digit code uniquely identifying the G62 (printed on the label)
- A configurable JoinEUI / AppEUI - a 16 digit code identifying the server the device is registered with
- A configurable NwkKey (1.1) / AppKey (1.0) - a 32 digit code that authenticates the G62 to the network server
- A configurable AppKey (1.1) - a 32 digit code that authenticates the G62 to the application server
- The default JoinEUI is 70-B3-D5-70-50-00-00-05
- Each G62 is provisioned with a random default NwkKey and AppKey (1.1)
- A configurable Region and optional Channel Mask
- The channel mask is used in the US915 and AU915 regions, to set the network frequencies
- Other regions don't need the channel mask, as all their networks use the same OTAA frequencies
Once the region has been configured, the G62 will attempt to join local networks by transmitting join requests. Any network that hears the join requests and has knowledge of the G62's DevEUI, JoinEUI and keys, will allow the G62 to join the network and transmit data.
The G62 rejoins the network once every two weeks by default. This renegotiates encryption keys for enhanced security, and ensures continued operation in the event of a network losing the keys (for instance, if the device is mistakenly deleted).
How The G62 Connects (ABP)
The G62 can also be configured to connect using Activation By Personalization. When using ABP, each G62 must be configured with some additional numbers:
- A configurable DevAddr - an 8 digit code identifying the G62 to the network
- 32 digit session keys FNwkSIntKey (also known as NwkSKey)and AppSKey,on LoRaWAN 1.0
- 32 digit session keys FNwkSIntKey, SNwkSIntKey, NwkSEncKey, and AppSKey, on LoRaWAN 1.1
ABP allows a LoRaWAN device to connect without exchanging the usual join request and join response, which can save on downlink bandwidth, and allow the device to work when downlink reception is difficult. However, in LoRaWAN 1.0, the ABP mechanism is somewhat problematic. It either suffers from a lack of security (if you configure your device to reset it's uplink frame counts when it resets), or difficulty with configuration (if you don't reset the frame counts, and are in a region requiring dynamic channel configuration). These issues are fixed in the LoRaWAN 1.1 specification, but since the fix negates the chief advantage of ABP by requiring some downlink traffic, we recommend OTAA.
How The G62 Locates
The G62 uses 3 sources of data to determine when it is in-trip (or the asset is in use). These are:
- Accelerometer & GPS - 'Movement trips' are based on movements from the accelerometer and GPS
- Ignition input - 'Ignition trips' are based on an external on/off input, like an ignition switch
- External voltage - 'Run detect' trips are based on the external voltage input crossing thresholds
Each of these can be enabled or disabled separately, or be used together. Be aware that a source must end a trip before another can start a new one. During a trip, the G62 will periodically send position updates at the rate set in the parameters. Runtime and odometer readings will also be incremented while in a trip.
Outside of a trip, the G62 can also be programmed to send position and/or runtime/odometer updates at a set interval.
How The G62 Uses LoRaWAN Airtime
LoRaWAN devices can transmit at various data rates, usually denoted DR0, DR1, DR2, and so forth. The lowest data rate (DR0) takes the longest to transmit, but has the longest range. As the data rate goes up, the range goes down a bit, and the transmission time goes down a lot. G62s can be configured to use a particular data rate, or a range of data rates (ie. DR2-DR4). Lower data rates will have the longest range, but also use the most energy and airtime. When configured to use a range of data rates, the G62 spends an equal amount of airtime using each data rate. The G62 also has optional Adaptive Data Rate support, which allows the network server to intelligently control the data rate.
There are several factors limiting the maximum transmission rate of an G62:
- Radio regulations may limit the transmission time
- In Europe the law limits you to 36 seconds of transmit time per hour on most frequencies
- Whereas in Australia there is no legal limit
- Networks may limit the transmission time, to prevent congestion
- The Things Network for instance limits you to 30 seconds of transmit time per day
- At DR0, this gives you 20 messages with 100% range
- At DR1, this gives you 36 messages with 75% range
- At DR2, this gives you 80 messages with 50% range
- At DR3, this gives you 145 messages with 37% range
- At DR4, this gives you 265 messages with 28% range
- At DR5, this gives you 486 messages with 21% range
- In America, data rates are all two increments higher, so DR0 corresponds to DR2 in the above list
- Networks may limit the number of messages, for billing purposes
- Your network might require you to pay more for higher throughput
The radio regulations are automatically enforced by inserting delays between messages where required. It is up to the user to configure their G62 with a low enough transmission rate to meet network and battery life requirements.
How The G62 is Configured
The G62 is configurable over-the-air using downlinks. Websites integrating the G62 can find the complete protocol specification here. Initial configuration of the region and JoinEUI, as well as firmware updates, are performed with a plug-in USB adapter and a Windows configuration app. An adapter can be obtained from your G62 distributor. The adapter plugs into the four pin connector on the top side of the printed circuit board.
To read the available parameters, select your adapter from the drop-down list in the top right, and click Start. The configuration tool will read continuously, and display the existing parameters in the center column. To program new parameters and firmware, enter the desired parameters in the right hand column, and check the Program Parameters checkbox. To update the firmwares only, check the Program Firmware checkbox, and leave the Program Parameters checkbox clear.
If you click the DevEUI List button, a list of scanned DevEUIs will pop up. You can hot-plug the adapter into many G62s in sequence to populate the list. Each time a G62 is programmed the parameter list will flash, the DevEUI list will update, and a chime will sound. The list is in CSV format, so it can be imported into a spreadsheet easily.
The top line in the display shows the DevEUI and version string. In the screenshot above, the DevEUI is 70B3D57050002DA6, and the firmware version is 188.8.131.52 (product, hardware revision, major, minor). The configured encryption keys and EUIs can be found in the DevEUI list on the right. Hovering the cursor over a line reveals an action menu ('...') and a help pop-up ('?'), from which you can copy, reset, and inspect parameters and sections. Save and load functions are available in both the File menu and the All Parameters action menu.
There are many settings, but only a handful require customization. These are highlighted below.
This selects the radio frequencies to use according to your country. Please be sure to select the correct region, to maintain compliance with your country's radio regulations. G62s leaving the factory are currently pre-configured for either the European 868 MHz band, US915 or AS923 1.0.3, depending on their hardware type. However, this is subject to change, and in the future the region may be left unset. If the region is unset, the G62 will not transmit until configured. Otherwise, to prevent the G62 from transmitting before configuration, click the Start button on the tool, and plug the cable into the G62, before inserting the battery or applying external power. The region cannot be reconfigured over the air.
Next to the region you will see the associated LoRaWAN Regional Parameters revision. Currently only AS923 and AU915 have multiple revisions to choose from:
- In AS923, the 1.0.3 version uses both SF10 and SF9 for join requests, rather than just SF10 in the 1.0.2 version
- In AU915, the 1.0.3 version supports the new 'uplink dwell time' restriction, so it joins at SF10 instead of SF12
Sub-Band / Channel Mask:
In fixed channel regions (US915 and AU915) you can select a sub-band or channel mask, instead of using all 72 channels at startup. Strict compliance with the LoRaWAN standard requires enabling all channels, but if you are confident that your network will not change its operating frequencies, choosing a sub-band speeds up the join process. If you choose a custom channel mask, the hex string you must provide has the lower numbered channels on the right hand side. For instance, 010F in hex is 100001111 in binary, and selects channels 0-3 and 8. On some older network servers, choosing a sub-band might be mandatory to avoid packet loss. The default is 'All'.
This chooses between the default (and recommended) Over The Air Activation, and Activation By Personalization. In OTAA, the G62 and the network server generate the session encryption keys and device address during a join request / join response exchange. In ABP, you have to generate the encryption keys and device address beforehand, and configure them. When choosing ABP, you also have to choose your LoRaWAN version.
This option is available in ABP 1.0 only, and resets the uplink and downlink frame counts whenever the device is reset. This defeats the encryption entirely, but is required by many networks in LoRaWAN 1.0, so that the network server can detect the device reset and reconfigure the device's channels. It is vital that you pick the setting appropriate to your network, or your device may stop connecting after a reset. If you're not sure, you should probably choose 'Yes'. The default however is 'No', for strict compliance and security.
JoinEUI / AppEUI:
In OTAA, this identifies the server your device is registered with. If you don't set a custom JoinEUI, the default for the G62 LoRaWAN (70-B3-D5-70-50-00-00-05) will be used. In LoRaWAN 1.1, changing the JoinEUI resets the cryptographic counters used by the join server (RJCnt1, DevNonce and JoinNonce). So if you reset the counters on your join server without changing the JoinEUI there, you can reset them on the device by choosing a temporary JoinEUI, writing it to the device, and then configuring it back again.
NwkKey (1.1) / AppKey (1.0):
In OTAA, this 32 character key authenticates the G62 with the network server. If you don't set a custom key, the G62 will use a unique random key, which was written to it in the factory. This default key can be read from the DevEUI list dialog, or the label on the box. It is not printed on the G62's label. This key cannot be reconfigured over the air. Please note that this key was renamed by the LoRaWAN standard in the 1.0 to 1.1 upgrade, in the most confusing way possible. So the label on your G62 will either read AppKey (with no version number), or NwkKey.
In OTAA, this 32 character key authenticates the G62 with the LoRaWAN 1.1 application server. This key isn't needed in LoRaWAN 1.0. If you don't set a custom key, the G62 will use a unique random key, which was written to it in the factory. This default key can be read from the DevEUI list dialog. If your G62 is new enough, it will be written on the label on the box. On older devices, only the AppKey (1.0) is on the label.
This 8 character number identifies the G62 with the network server. It is only applicable to ABP activation.
FNwkSIntKey / SNwkSIntKey / NwkSEncKey / AppSKey:
These are the 32 character ABP session keys. Only the first and last are required in LoRaWAN 1.0. They may be referred to as the Network Session Key (NwkSKey) and Application Session Key (AppSKey) on your network server.
Enable Movement Detection:
Enables trip detection from accelerometer + GPS movement. Default is enabled.
Odo/Runtime On Trip End:
Send odometer and runtime data at the end of every trip. Default is disabled (periodic notification only).
Sends an accurate timestamp in uplinks 1 and 3.
In-Trip Update Period (0-7620 s):
Period between updates while in-trip. Alarms also count as updates, and will restart update period timer. Care must be taken to ensure region and network limits are not reached. 0 disables in trip updates. Default is 10 minutes.
Heartbeat Period (0-2550 min):
Period between updates while out-of-trip. 0 to disable. Default is 2 hours.
Odo/Runtime Send Period (0-255 hrs):
Period between odometer and runtime data updates. 0 disables. Default is 1 day.
Movement Speed Threshold (0-255 km/h):
The minimum speed, in km/h, that the G62 must be moving before a movement trip is started. The device must also move greater than 150 m from the start position for a trip to be started. Default is 10 km/h.
Enable Ignition Input:
Allow the ignition input to start and end trips. This does not disable ignition input detection, so it can be used as a digital input when this is disabled. Default is enabled.
Alarm on High:
Send an update if the ignition input changes to high (on). This should only be enabled if 'Enable Ignition Input' above is disabled. Default is disabled.
Alarm on Low:
Send an update if the ignition input changes to low (off). This should only be enabled if 'Enable Ignition Input' above is disabled. Default is disabled.
Debounce Time (0-65535 ms):
Time the ignition input needs to stay in a state (on or off), before it gets counted as a change. Default is 1 s.
Enable Run Detect:
Allow external voltage changes to start and end a trip.
High Voltage Threshold (0-36000 mV):
External power input voltage that needs to be reached to start a run detect trip. Default is 10 V.
Low Voltage Threshold (0-36000 mV):
External power input voltage that will end a run detect trip. Default is 5 V.
Start Time (0-255 s):
External voltage must be above the high threshold for this amount of time to start a run detect trip. Default is 5 s.
End Time (0-255 s):
External voltage must be below the low threshold for this amount of time to end a run detect trip. Default is 20 s.
External Voltage Good
Alarm on High:
Send an update if the external voltage goes above ~7 V. Default is enabled.
Alarm on Low:
Send an update if the external voltage goes below ~7 V. Default is enabled.
Digital Input 1/2
Alarm on High:
Send an update if a digital input changes to high (on). Default is disabled.
Alarm on Low:
Send an update if a digital input changes to low (off). Default is disabled.
Whether the input should be set to pull up or pull down. See here for more information. Default is pull up.
Debounce Time (0-65535 ms):
Time a digital input needs to stay in a state (on or off), before it gets counted as a change. Default is 1 s.
High Threshold (0-30000 mV):
Send an update when the analog input voltage goes above this value. There is a small amount of hysteresis so that voltages close to the threshold do not trigger multiple uploads. This value may be lower than the low threshold, to allow for an internal alarm range. 0 disables. Default is disabled.
Low Threshold (0-30000 mV):
Send an update when the analog input voltage goes below this value. There is a small amount of hysteresis so that voltages close to the threshold do not trigger multiple uploads. This value may be higher than the high threshold, to allow for an internal alarm range. 0 disables. Default is disabled.
Reset Hysteresis (10-65535 mV):
When a High Threshold alarm triggers at the High Threshold, it will reset at the High Threshold less the Reset Hysteresis. Likewise, a Low Threshold alarm resets at the Low Threshold plus the Reset Hysteresis. Default is 0.1 V.
Alarm Upload on Reset:
Send an update when the analog input voltage goes back inside the threshold range. Default is enabled.
Coarse Accuracy Mask (5-100 m):
This is the required position accuracy for a position fix to be considered valid. It provides a lower bound on accuracy. Please note that it works on the estimated accuracy, and it is not uncommon for position fix errors to occasionally be two or three times larger than the mask. Also note that values lower than 20 will be difficult to achieve in practice. The default is 75 meters.
Speed Accuracy Mask (3-20 km/h):
This is the required accuracy of the speed component of a fix, before the fix is considered valid. The default is 9.7 km/h.
Require 3D Fix:
This requires that a position fix use 4 satellites, and calculate a height as well as latitude and longitude, before being considered valid. It is recommended, as using only 3 satellites gives less redundancy in the rare event of a satellite failure, increasing the risk of a position fix giving an erroneous result. However, disabling this option can allow fixes to proceed faster, and in adverse conditions such as urban canyons. The default is true.
Discard First Fixes (0-32):
This option discards the first few valid position fixes from the GPS module. This gives the module some time to refine and cross-check its estimate, reducing the risk of an erroneous fix in the rare event of a satellite failure. We recommend the default value of 3.
PDOP Mask (2.5-10):
The PDOP is a measure of how imprecise a GPS fix is, due to the satellites used being too close together to triangulate effectively. This parameter sets an upper bound on the imprecision, for a fix to be considered valid. You can safely use the default value, and specify the Coarse Accuracy Mask instead. The default is 10.
Static Hold Threshold (0-9.18 km/h):
This tells the GPS module how fast it needs to be going to register movement, if the location doesn't seem to be changing very much. The default setting of 4.97 km/h helps to prevent 'nesting' when an asset is stopped at an intersection. With the threshold set to a non-zero value, the GPS module will report all of the points at the same location, instead of reporting lots of noisy positions.
This informs the GPS module of what sort of motion to expect from the asset, allowing it to make better estimates when moving. The Automotive setting is a safe default, but the Pedestrian and Stationary settings may be useful as well. Setting the model appropriately allows the GPS to filter out noise more effectively.
This enables a GPS feature that predicts future satellite movements, so that position fixes can proceed without listening for all of the satellite information the next time the satellite is in view. It can help fixes succeed in low signal levels, but greatly decreases the accuracy of the fixes. The default is disabled.
Max Aiding Error (5-1000 m):
This provides a rough limit on the additional error introduced by the Autonomous Aiding feature. This error cannot be detected by the GPS module, so it can't be filtered out by the Coarse Acc Mask setting. The actual error can be several times the value set here. Autonomous Aiding is unlikely to be of any use if this value is set below 50. The default is 100 meters.
Wakeup Threshold (0.0625-15.9375 G):
This sets the amount of force that will wake the accelerometer up. Setting it too high might result in trips being missed. Increase this value if you have a problem with small vibrations setting off spurious trips. The default is 62.5 mG.
Wakeup Duration (0-2550 ms):
This is the required time duration of the force that will wake the accelerometer up. Increasing this value will make the accelerometer less sensitive to short, sharp forces, but increases the chances of a trip start being missed. It is currently rounded to a non-zero multiple of 80 ms by the G62. The default is 0 ms.
Adaptive Data Rate:
ADR is a server side mechanism for controlling the data rate, to optimize network capacity and battery life. By default, the G62 doesn't use ADR, choosing instead to control its data rate according to the configured range. However, you may wish to enable ADR when the tracked asset is mostly stationary, to optimize power usage and network capacity. You can also force ADR on at all times, in order to control it using a policy on the network server. If the G62 is configured to enable ADR when out-of-trip, it will switch to its lowest configured data rate, and highest transmit power, whenever a trip ends. Thereafter, the network server will configure it to a lower power mode if appropriate.
Min / Max Data Rate:
These parameters select the minimum and maximum data rates to transmit at, when ADR is not active. A '0' selects DR0, the lowest data rate with the longest range. If you set both parameters to the same value, the G62 will always use that rate. If you choose a range, the G62 will alternate between the allowed data rates in such a way as to spread the transmit time evenly. This means it will use the higher data rates more often. Using a range of data rates allows the network to support more devices per gateway, but reduces your guaranteed range to the range of the highest data rate. Using higher data rates may allow you to send more messages per day. Please see the section 'How The G62 Uses LoRaWAN Airtime' above. The default is DR0-DR2.
Roaming Rejoin Uplink Period / Time Period:
This sets the initial maximum number of uplinks / minutes between Rejoin0 Requests in LoRaWAN 1.1. These requests facilitate roaming, and can be reconfigured by the network server at runtime. The default values are the maximums, effectively disabling these requests until the server asks for them.
Rejoin / Reset Time Period:
By default, the G62 rejoins the network once every two weeks, in case the network server has somehow forgotten the session keys. This period can be extended to up to 255 days, or disabled entirely (0). However, if a device is accidentally deleted on the network server, or the network server suffers a database failure and loses the session keys, the server will be unable to decrypt any device data until it has rejoined. Rejoining weekly generates several extra transmissions, but lowers the time spent out of service in the event of an accident. The exact rejoin behavior depends on the Activation and LoRaWAN version:
- In ABP, the rejoin is equivalent to removing and reinserting the batteries. All protocol state is reset, with the exception of the uplink and downlink counters (unless you have chosen to reset them as well, in LoRaWAN 1.0)
- In OTAA 1.0, the rejoin is also equivalent to removing and reinserting the batteries. A regular Join Request will be sent.
- In OTAA 1.1, a Rejoin1 Request is used to rejoin without resetting any protocol state. Please note that older network servers might not support this mechanism.
ADR Ack Limit / Delay:
This parameter control the number of uplinks between checks that the server can still hear the device when ADR is active. The device starts asking for a response once the Limit is reached, and if no response if heard after Delay attempts, the device switches to a lower data rate. The default values (64 and 32) are very slow. Please consult your network support before choosing more aggressive settings, as they may have policies forbidding lower values. In LoRaWAN 1.1, these values can also be set dynamically by the network server.
Receive / Join Delay:
These setting control the timing between a request and a response on the network. You shouldn't change them from the defaults unless instructed to by your network. The defaults are 1 and 5 seconds respectively.
This sets the default number of frame repetitions (called NbTrans in the standard). Usually this value is one, until the server requests a higher number. You shouldn't change this value unless you have special requirements (for instance, a transmit-only ABP configuration).
Tx EIRP Limit:
This setting restricts the transmit power to the given value, in dBm EIRP. This allows you to save a small amount of battery on the transmission, and limit the peak current draw from the batteries. Limiting the current may be useful in cold weather (less than 0°), where batteries begin to struggle. A setting of 11 dBm drops the peak current from 127 mA down to 34 mA, which is roughly the same as the GPS module current. Lower values are not recommended. Your network server may require knowledge of the maximum power to correctly operate its ADR algorithm. In this case, be sure to configure the device accordingly on the server. The default is maximum power.
Random Tx Delay:
This parameter allows you to insert a random delay before transmission. This may be useful in applications involving a large number of G62s. The random delay spreads the transmissions out, so they don’t interfere with each other.
- The amount of delay required depends on the data rates in use. For a single spreading factor, you need approximately (Number of units) / 1500 * 1.9^SF). For instance, for 100 units at SF10, you'd need 100 / 1500 * 1.9^10) = 613 / 15 = 41 seconds.
- For multiple spreading factors, the formula is (1/DelayA + 1/DelayB + 1/DelayC + ...)^-1, where DelayX is the delay required for one of the spreading factors. So for 100 units at both SF10 (41 seconds) and SF9 (22 seconds), you'd need (1/41 + 1/22)^-1 = 14 seconds.
The default is 1 second.