Store and report tracker assignment within firmware #263

Open
opened 2026-04-05 17:52:22 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @nekomona on 7/4/2023

As most user would keep trackers to the first position they assigned along with straps and labels, it's possible to store the assignment on each tracker's local storage.

Tracker will report their stored assignment to the server, so when server config is lost, switching to a new computer, or shipping to a new user, server could pick up tracker's assignment automatically and skip the assigning process. If the assignment is to be changed, new assignment could be sent from server from tracker and updated. No different from current assignment process from the user side.

Implement wise, tracker assignment is performed per-imu thus easily falls into SensorInfo packets. Could append tracker assignment (or also include mounting position) into SensorInfo packets by a few bytes. Upon new connection, server would listen to the sensor state update packet and read assignment from the packets. When the assignment is changed, server could send another SensorInfo packet to the firmware like what sensor state update currently does.

The assignment data could be stored alongside with calibration data or be put in an additional path. Only a few bytes to be stored thus shouldn't be an issue to the storage space.

This feature would change packet format but could be compatible with previous version by either checking packet length or assign a new packet id for the ones with assignment included.

Currently it's still in the draft phase, and the trial implementation of this is currently blocked by the upcoming refactors. How it's actually implemented in firmware / server side, what should be included in the assignment data, and so on could still need some discussion.

*Originally created by @nekomona on 7/4/2023* As most user would keep trackers to the first position they assigned along with straps and labels, it's possible to store the assignment on each tracker's local storage. Tracker will report their stored assignment to the server, so when server config is lost, switching to a new computer, or shipping to a new user, server could pick up tracker's assignment automatically and skip the assigning process. If the assignment is to be changed, new assignment could be sent from server from tracker and updated. No different from current assignment process from the user side. Implement wise, tracker assignment is performed per-imu thus easily falls into `SensorInfo` packets. Could append tracker assignment (or also include mounting position) into `SensorInfo` packets by a few bytes. Upon new connection, server would listen to the sensor state update packet and read assignment from the packets. When the assignment is changed, server could send another `SensorInfo` packet to the firmware like what sensor state update currently does. The assignment data could be stored alongside with calibration data or be put in an additional path. Only a few bytes to be stored thus shouldn't be an issue to the storage space. This feature would change packet format but could be compatible with previous version by either checking packet length or assign a new packet id for the ones with assignment included. Currently it's still in the draft phase, and the trial implementation of this is currently blocked by the upcoming refactors. How it's actually implemented in firmware / server side, what should be included in the assignment data, and so on could still need some discussion.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/SlimeVR-Tracker-ESP#263