Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
checkpoint
  • Loading branch information
rickkas7 committed Oct 31, 2025
commit 4540f98494c63dfa051bb954f13200502e79c6d6
4 changes: 2 additions & 2 deletions config/sharedBlurbs.json
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@
"hash": "907b5b6844d775cea13ca8f5831bf2014fe8e255c84198855a8748a58f214c24"
},
"c4c1c0b6-028c-47fa-a13d-4b14452f096f": {
"hash": "7e9aa5206d3d117d267254b354633377d8e2a1b10cc5ab3a898f143fcd6d5477"
"hash": "b8a786683cafb5925172c6d07fe4e547565af550b5c75c74a5edab1f9b22a5a6"
},
"47267ac9-0ada-4300-9c07-71b68e532609": {
"hash": "4c30bdd9bc2493b32123c323eceff6d282f4b0879aa2a79b6cd8ed805d2f131f"
Expand Down Expand Up @@ -313,7 +313,7 @@
"hash": "b553792bf80c816ef9894f3ae89514c702d0c8bc2635e2142bee391eebd76d2c"
},
"7380ecbc-cf8b-4498-926c-f74739cafcb9": {
"hash": "a56e4a16aea0dbf676541c59e250d3a0c433b395292859c112c7c02ba364b449"
"hash": "784df5747feb2c7b349302d421a3893e2f610d5efd011578b9a0247d555e7d32"
},
"a33dc9e7-17a7-4a03-87d6-88b8a534600f": {
"hash": "75b65b44942283753757abf9d428cd0ff83264881db78e3eff8331626c80c6b5"
Expand Down
28 changes: 14 additions & 14 deletions config/sitemap.json
Original file line number Diff line number Diff line change
Expand Up @@ -1131,8 +1131,8 @@
"hash": "264776c70a5538439141848e0febae9ecf64814c88342a38137f5a27f6c676b7"
},
"reference/cloud-apis/api.md": {
"date": "2025-06-09",
"hash": "ab80be181dec73d375b716dcfc8604cd95d09f65ee606d8166a7d0a1121d6e3c"
"date": "2025-10-31",
"hash": "a5fb1e7ea17d700045613380db58f479e77111e72dcab99dfced9974837fa420"
},
"reference/cloud-apis/authentication.md": {
"date": "2025-03-18",
Expand Down Expand Up @@ -1247,8 +1247,8 @@
"hash": "c45f0908414aef05824e99d92fa31111fb0e263654f64f2f3afcb1805660e0dd"
},
"reference/tracker/location-fusion.md": {
"date": "2025-01-15",
"hash": "ffab7a8a525327743bfe14d75fe804e37a7161de4cf45a6a693853a034e6158a"
"date": "2025-10-31",
"hash": "44746441760fb7514c128b45449136ec4f7342ab692d745f30944181227f5c66"
},
"reference/tracker/tracker-configuration.md": {
"date": "2024-11-14",
Expand Down Expand Up @@ -8223,8 +8223,8 @@
"date": "2023-11-08"
},
"getting-started/new.md": {
"hash": "271462481c1a65fb034bbd04053794baf630e38e64ff66b4577ef972e0dc9259",
"date": "2025-10-28"
"hash": "21e3d9f3c377a7108a8ca35ef225036ef50e866fd3b0c790b89a966d263237c8",
"date": "2025-10-31"
},
"getting-started/cloud/logic.md": {
"hash": "71a1026986a744d0446ae3a1156cbcb68840de48db731768ccedc6861c035c16",
Expand Down Expand Up @@ -8391,12 +8391,12 @@
"date": "2025-01-07"
},
"reference/datasheets/m-series/msom-datasheet.md": {
"hash": "d5cd05879d594310c9cdb1b8dae166fa22ff9df2db524909263a1078d61e9c42",
"date": "2025-06-25"
"hash": "c1af47abe55b1287aac83c0195e31b04c943f3550c12c544f53fe2fe4d08e096",
"date": "2025-10-31"
},
"reference/datasheets/m-series/muon-datasheet.md": {
"hash": "dbb067f00730d0d16821a4158acf2460f4d84669e47cf2574232fa79e27d0900",
"date": "2025-07-18"
"hash": "10e5e0919676154bd2959ed2d2bbcb67eec0d4da64f2997865b43e382bd8d025",
"date": "2025-10-31"
},
"hardware/expansion/monitor-one-muon-cards.md": {
"hash": "c3972720c018e02b6de030bb3e83fd5d238fe52770d6768c9b43282dceeb3c62",
Expand Down Expand Up @@ -9459,8 +9459,8 @@
"date": "2024-11-01"
},
"reference/datasheets/m-series/m1-enclosure-datasheet.md": {
"hash": "ec8b4255f7fe91e75d88cc2af43e774224f841b44c203e498b6b3626538386d0",
"date": "2025-09-24"
"hash": "f46ff69ca728ffb90fd93403d366e74dcf50a26282289aafd50c9d7a59e6e364",
"date": "2025-10-31"
},
"reference/device-os/libraries/a/Adafruit_SSD1305_RK.md": {
"hash": "0d2103aed0bae02ca0b94dc8bff2c011e9c5f7c3311ba47cb535ac613e3705b4",
Expand Down Expand Up @@ -9619,8 +9619,8 @@
"date": "2025-01-15"
},
"getting-started/cloud/location.md": {
"hash": "309be1deb390a2a617b481d70ebe18308a03e3fcac374d564ac007db25c5c4f9",
"date": "2025-05-07"
"hash": "23c72999852df24f16b113c67d4fb08124d8046849e8958b98756e54adcafb73",
"date": "2025-10-31"
},
"reference/technical-advisory-notices/tan015.md": {
"hash": "dd8860c4fc975fa1161d286a6aa3a8b6d5b295b002f176f0b299694daa1eec04",
Expand Down
Binary file added src/assets/images/console/enable-location.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/content/getting-started/cloud/location.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,8 @@ Location Fusion will not be done. If you do not have valid coordinates, but do h
cell tower information or Wi-Fi access points, Location Fusion will be done, at a cost of {{dataOperationsForLocation}} data operations.
If location can be determined by Location Fusion, a `loc-enhanced` event will be generated.

The [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) can be used to provide Tracker-like location services non-Tracker devices.

### Non-Tracker devices with GNSS capabilities

#### M-SoM
Expand Down
3 changes: 3 additions & 0 deletions src/content/getting-started/new.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ When adding new items to this page:

The header format must be exactly that because the search feature uses that to delimit entries, and determine the date of entries
--}}
### Location services updates 2025-10-31

Documentation for using [location fusion on non-Tracker devices](/reference/tracker/location-fusion) has been updated.

### File system opendir and unlink 2025-10-28

Expand Down
53 changes: 52 additions & 1 deletion src/content/reference/cloud-apis/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,8 @@ To estimate the data usage for location events, see [this page](/getting-started
On some plans, it is possible to use the `loc` event on non-Tracker devices. See [getting started with location](/getting-started/cloud/location/).

This might be done if you have a device with GNSS in the cellular modem (such as the M-SoM and B504), or if you have added an external hardware GNSS to your project.

The [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) can be used to provide Tracker-like location services non-Tracker devices.
{{!-- END shared-blurb --}}

#### cmd
Expand Down Expand Up @@ -962,6 +964,52 @@ Reason for point location publish message, an array of cause enumeration strings
- `outside3`, `inside3`, `enter3`, and `exit3`
- `outside4`, `inside4`, `enter4`, and `exit4`

#### loc_cb

When a device sends a `loc` event with no GNSS location and wants to get the enhanced location delivered back to the device, it sets the `loc_cb` field in the `loc` event to `1`.

```json
{
"cmd": "loc",
"loc": {
"lck": 0
},
"loc_cb": 1,
"req_id": 17,
"time": 1761844433,
"towers": [
{
"cid": 205999999,
"lac": 3339,
"mcc": 310,
"mnc": 410,
"rat": "lte",
"str": -102
}
]
}
```

The device does not really receive the `loc-enhanced` event by subscribe. Instead, the cloud sends a Particle.function call to the `cmd` function. The payload is a JSON object, and within that object are an inner `cmd` of `loc-enhanced` and an object `loc-enhanced` with the JSON data.

This is an example `cmd` function call payload, in formatted JSON. It's actually delivered is compact JSON with no extra spaces in a single line.

```json
{
"cmd": "loc-enhanced",
"loc-enhanced": {
"h_acc": 4.92,
"lat": 42.999,
"lon": -75.9999
},
"req_id": 17
}
```

The [location configuration](/getting-started/console/console/#location-settings) checkbox in the Tracker configuration only affects whether `loc_cb` is set to 1 or not. Non-tracker devices can directly control `loc_cb` without cloud configuration.

An example implementation of the `cmd` handler for non-Tracker devices can be found in the [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) library.

#### req_id

The request identifier, used to make sure the event was received.
Expand All @@ -970,12 +1018,15 @@ The request identifier, used to make sure the event was received.

The `loc-enhanced` event includes Location Fusion information, enhanced geolocation using Wi-Fi and/or cellular tower information. This can occur indoors, and in "urban canyons" where view of the GNSS satellites is obstructed.

`loc-enhanced` events are generated by the Particle cloud, one for every `loc` event sent by the Tracker, with any additional location information added. The enhanced location can be monitored using webhooks or server-sent-events. Optionally, these events can also be sent to devices, to allow the device to act on the enhanced location information. See [location configuration](/getting-started/console/console/#location-settings).
`loc-enhanced` events are generated by the Particle cloud, one for every `loc` event sent by the Tracker, with any additional location information added. The enhanced location can be monitored using webhooks or processed using Logic.

Optionally, the enhanced location can also be sent to the device, to allow the device to act on the enhanced location information. See [loc_cb](#loc_cb), above, for additional information.

The `loc-enhanced` event will have data the same as the original `loc` event, such as: `cmd`, `time`, `loc.lck`, `loc.cell`, `loc.batt`, `loc.temp`, `loc.time`, `loc.lat`, `loc.lon`, `loc.h_acc`, and `trig`.

Note that `loc.alt` (altitude), `loc.v_acc` (vertical accuracy), `loc.hd` (heading), and `loc.spd` (speed) are not available for locations derived from location fusion, but if that information was in the original `loc` event from the GNSS, it will be preserved in the `loc-enhanced` event.


#### loc.src

The sources used for enhanced geolocation, an array. Can be "cell" or "wifi" or both. Added in Tracker Edge v12.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ Single quantity M-SoM units and developer kits include a PARANTGN1EA antenna. Tr

{{!-- BEGIN shared-blurb 7380ecbc-cf8b-4498-926c-f74739cafcb9 --}}
- A [firmware library](https://github.com/particle-iot/particle-som-gnss) is available now for the M404. A future update will add support for the M524.
- Another option is the [QuectelGnssRK](https://github.com/rickkas7/QuectelGnssRK) library that can be used with [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) to provide Tracker-like location services on the M-SoM.
- Features such of high-precision, dead-reckoning, and high updates rates will require an external GNSS chip.
- On the M404 (BG95 cellular modem), radio hardware is shared between the cellular modem and built-in GNSS which limits concurrent use.
{{!-- END shared-blurb --}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ Single quantity M-SoM units and developer kits include a PARANTGN1EA antenna. Tr

{{!-- BEGIN shared-blurb 7380ecbc-cf8b-4498-926c-f74739cafcb9 --}}
- A [firmware library](https://github.com/particle-iot/particle-som-gnss) is available now for the M404. A future update will add support for the M524.
- Another option is the [QuectelGnssRK](https://github.com/rickkas7/QuectelGnssRK) library that can be used with [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) to provide Tracker-like location services on the M-SoM.
- Features such of high-precision, dead-reckoning, and high updates rates will require an external GNSS chip.
- On the M404 (BG95 cellular modem), radio hardware is shared between the cellular modem and built-in GNSS which limits concurrent use.
{{!-- END shared-blurb --}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ Single quantity M-SoM units and developer kits include a PARANTGN1EA antenna. Tr

{{!-- BEGIN shared-blurb 7380ecbc-cf8b-4498-926c-f74739cafcb9 --}}
- A [firmware library](https://github.com/particle-iot/particle-som-gnss) is available now for the M404. A future update will add support for the M524.
- Another option is the [QuectelGnssRK](https://github.com/rickkas7/QuectelGnssRK) library that can be used with [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) to provide Tracker-like location services on the M-SoM.
- Features such of high-precision, dead-reckoning, and high updates rates will require an external GNSS chip.
- On the M404 (BG95 cellular modem), radio hardware is shared between the cellular modem and built-in GNSS which limits concurrent use.
{{!-- END shared-blurb --}}
Expand Down
9 changes: 9 additions & 0 deletions src/content/reference/tracker/location-fusion.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,19 @@ The best-case and worse-case resolution of the various technologies is:

The theoretical worst-case GNSS precision, based on visibility of a minimum number of satellites, combined with multi-path interference is 100 kilometers. Practically speaking, when there is a GNSS lock, the reported location is generally within 500 meters (1640 feet, or 1/3 of a mile) of the actual location, and often within 10 meters.

## Enabling location services

Geolocation services are only available to devices in a product. Additionally, you must enable location services in the Settings (gear) icon for the product.

![Location](/assets/images/console/enable-location.png)


## On non-Tracker devices

{{!-- BEGIN shared-blurb c4c1c0b6-028c-47fa-a13d-4b14452f096f --}}
On some plans, it is possible to use the `loc` event on non-Tracker devices. See [getting started with location](/getting-started/cloud/location/).

This might be done if you have a device with GNSS in the cellular modem (such as the M-SoM and B504), or if you have added an external hardware GNSS to your project.

The [LocationFusionRK](https://github.com/rickkas7/LocationFusionRK) can be used to provide Tracker-like location services non-Tracker devices.
{{!-- END shared-blurb --}}