Tracker Edge version 18 released

Tracker Edge version 18 has been released with some new great features and bug fixes. Please take a look at https://github.com/particle-iot/tracker-edge/releases/tag/v18

Built against device OS v3.3.0

In Summary

FEATURES

  • Store and Forward feature for saving publish data while offline.
  • Added support for Memfault device monitoring.
  • Added battery charging configuration overrides.

ENHANCEMENTS

  • Added a new log category for TrackerSleep class.
  • Added more control for GNSS module dead reckoning.
  • Added GNSS enhancements for time-to-first-fix (TTFF).

BUGFIXES

  • Fix setting of HDOP to geofence zones.

OTHER CHANGES

  • Add configuration schema file to the project.
  • Cleared several compile warnings.
  • Changes for building under device OS versions above 3.x.
2 Likes

Hey Eric,
Does this mean that if we use this version we should stay at DeviceOS 3.3.0 or one could go for DeviceOS 4.x or even 5.x?
Thanks

I read this but unsure if deviceOS versions above 3.x are supported or advised against.

It will be fine to build against Device OS 4.x LTS but there are breaking HAL API changes that weā€™ll account for when using 5.x (as well as other Tracker Edge developments). The next Tracker Edge release will likely be built upon 4.x after another point release.

1 Like

Is there any documentation on using memfault? I set up a memfault account but I see very little information regarding particle on their site.

I have set up a web hook with the project key and I created my device on the memfault website but it doesnā€™t look like the data is getting through.

Very excited to see the ā€˜Store and Forwardā€™ feature added. Itā€™s something I tried to patch onto my firmware build but had mixed results. Iā€™m digging into the update and it looks like it uses the ā€˜Background Publishā€™ to achieve these features, and I had some questions on this:

  1. Does this handle device powering down? Ex. device loses cell service and starts caching data, then device power cycles, and eventually regains connection. Does it publish everything cached pre and post power cycle?

  2. What is our maximum cache size and how do we adjust this value?

  3. Does a cached publish append any flag (or allow a flag to be appended) to mark the payload as having been the result of caching so we can differentiate the data from events coming in real time?

The saved publishes are stored in flash memory so they are saved across power down.

You can set the size in K bytes in the store and forward configuration in the device fleet settings. You can also set whether to discard new or old events when the size is exceeded.

There is no flag to determine stored events, however the loc event includes a ā€œtimeā€ field which is the time the event was generated (UTC, Unix time seconds since January 1, 1970). Using this can help determine not only saved events, but also events delayed by retransmission.

1 Like

Awesome, thanks for the quick response @rickkas7

Iā€™m interested in using memfault but it appears to be breaking when I try to compile the tracker-edge v18 release. Any tips on getting that working? Trying to compile against DeviceOS 3.3.0 yields:

In file included from lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_event_impl.h:12,
                 from lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_event.h:22,
                 from lib/memfault/src/memfault-firmware-sdk/components/demo/src/memfault_demo_cli_trace_event.c:14:
lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_reason_user.h:65:14: note: '#pragma message: ERROR: "memfault_particle_trace_reason_user_config.def" must be in header search path'
   65 | #     pragma message("ERROR: " MEMFAULT_EXPAND_AND_QUOTE(MEMFAULT_TRACE_REASON_USER_DEFS_FILE) " must be in header search path")
      |              ^~~~~~~
In file included from lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_event_impl.h:12,
                 from lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_event.h:22,
                 from lib/memfault/src/memfault-firmware-sdk/components/demo/src/memfault_demo_cli_trace_event.c:14:
lib/memfault/src/memfault-firmware-sdk/components/include/memfault/core/trace_reason_user.h:66:7: error: #error "See trace_reason_user.h for more details"
   66 | #     error "See trace_reason_user.h for more details"

Itā€™s not possible to build Tracker Edge v18 from the Web IDE, CLI, or Workbench cloud compile. You can currently only build it from Workbench local compile.

1 Like

Ah, good to know, Iā€™ll compile locally for now while Iā€™m testing. Is cloud compiling in the roadmap for Edge v18 and/or future releases?

The problem is that the Memfault feature of Tracker Edge v18 cannot be built with the cloud compilers. Thus it would require one or more of:

  • Changes to Memfault so that it could be cloud compiled.
  • Changes to the cloud compiler to be able to build Memfault as-is.
  • Change so Memfault could be disabled when using the cloud compiler.
  • Not including Memfault by default in Tracker Edge.

Itā€™s not clear which, if any, of these could occur, at this time.

Hi,

since solving the memfault compile error is not on the roadmap, does that include that supplying OTA updates for the tracker one with device-os v18 is also not possible until then?

You can still OTA update the Tracker Edge v18, you just need to generate the binary using Particle Workbench local compile instead of the cloud compilers. You can also upload the Workbench generated binaries to a Tracker product as a fleet firmware update to be flashed OTA.