About the "imm" location trigger

Hi, I’m currently using the tracker-edge firmware and I was wondering what was the utility of the “imm” trigger in the firmware. I’m using the asset tracker config and i’m basically using the radius feature coupled to the minimal interval (6h in my case) to get some location events. When reseting my device, most of the time when the lock takes time, my device will trigger a location event “imm” which does not contain any lat/lng data (lock: 0). I’d prefer waiting a bit more, because this event is starting my min interval and breaks the radius feature (no geo point, meaning no coordinates to compare with radius).

I’ve removed the line that triggers the “imm” location event, but I was wondering if it might have an impact in another place.

Thanks in advance.

What are your settings in the motion tab. The imm trigger is the IMU motion detection (accelerometer), which is unrelated to your GNSS position which is why it can be triggered when you have no fix yet.

I’m using this configuration:

Is this not “imu_m” and “imu_g” that is the trigger for this config as specified in this doc : Cloud API reference | Reference Documentation | Particle

Oh, sorry. I was thinking of the wrong key. The imm key is used when it takes too long to connect to the cloud. You can comment out that line.

Thanks ! Do you have any idea why It was added in the code? It is not documented in the Cloud API link I referenced.

Huh. It was added in Tracker Edge v10 when sleep support was added, 2 years ago. It was just never documented. Since it doesn’t happen on most connections, apparently no one ever noticed before.

The min and max publish rates set bounds for how often the device should publish. If you have a bunch of triggers that warrant a loc publish then they will be sent out no more frequent than the max update rate which prevents flooding of loc events. Conversely, if no triggers are generated the minimum update rate allows for a guaranteed loc publish so you know the device is alive and can track it. The imm trigger allows the application to break the min/max rules and publish anyways.

The imm trigger can also bypass the max connecting time parameter that generally waits for GNSS lock and connected cellular. The {"cmd":"get_loc"} (doc) is one example to assert an immediate trigger.

Battery alerts and forced publishes before going to sleep are other places in Tracker Edge that use the immediate trigger.

1 Like

Very clear, thank you.