From 146930279cef5a053102ae697c589ac3153934db Mon Sep 17 00:00:00 2001
From: sctanf <36978460+sctanf@users.noreply.github.com>
Date: Sat, 13 Dec 2025 17:19:50 -0600
Subject: [PATCH] add firmware date to new field
---
gui/public/i18n/en/translation.ftl | 1 +
gui/src/components/tracker/TrackerSettings.tsx | 9 +++++++++
.../protocol/datafeed/DataFeedBuilder.java | 7 +++++++
.../java/dev/slimevr/tracking/trackers/Device.kt | 1 +
.../slimevr/tracking/trackers/hid/HIDCommon.kt | 16 ++++++++--------
5 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/gui/public/i18n/en/translation.ftl b/gui/public/i18n/en/translation.ftl
index a02c9dab3..6f1dfd768 100644
--- a/gui/public/i18n/en/translation.ftl
+++ b/gui/public/i18n/en/translation.ftl
@@ -407,6 +407,7 @@ tracker-settings-update = Update now
tracker-settings-update-title = Firmware version
tracker-settings-current-version = Current
tracker-settings-latest-version = Latest
+tracker-settings-build-date = Build Date
## Tracker part card info
diff --git a/gui/src/components/tracker/TrackerSettings.tsx b/gui/src/components/tracker/TrackerSettings.tsx
index ead4288e2..f4c62807d 100644
--- a/gui/src/components/tracker/TrackerSettings.tsx
+++ b/gui/src/components/tracker/TrackerSettings.tsx
@@ -208,6 +208,15 @@ export function TrackerSettingsPage() {
Firmware version
+
+
+
+ {tracker?.device?.hardwareInfo?.firmwareDate}
+
+
= ConcurrentHashMap()
diff --git a/server/core/src/main/java/dev/slimevr/tracking/trackers/hid/HIDCommon.kt b/server/core/src/main/java/dev/slimevr/tracking/trackers/hid/HIDCommon.kt
index 4253ac871..3ff51290c 100644
--- a/server/core/src/main/java/dev/slimevr/tracking/trackers/hid/HIDCommon.kt
+++ b/server/core/src/main/java/dev/slimevr/tracking/trackers/hid/HIDCommon.kt
@@ -146,7 +146,7 @@ class HIDCommon {
var button: Int? = null
// var imu_id: Int? = null
// var mag_id: Int? = null
- // var fw_date: Int? = null
+ var fw_date: Int? = null
var fw_major: Int? = null
var fw_minor: Int? = null
var fw_patch: Int? = null
@@ -165,7 +165,7 @@ class HIDCommon {
// imu_id = dataReceived[i + 8].toUByte().toInt()
// mag_id = dataReceived[i + 9].toUByte().toInt()
// ushort little endian
- // fw_date = dataReceived[i + 11].toUByte().toInt() shl 8 or dataReceived[i + 10].toUByte().toInt()
+ fw_date = dataReceived[i + 11].toUByte().toInt() shl 8 or dataReceived[i + 10].toUByte().toInt()
fw_major = dataReceived[i + 12].toUByte().toInt()
fw_minor = dataReceived[i + 13].toUByte().toInt()
fw_patch = dataReceived[i + 14].toUByte().toInt()
@@ -280,12 +280,12 @@ class HIDCommon {
// Nothing to do now..
}
}
- // if (fw_date != null) {
- // val firmwareYear = 2020 + (fw_date shr 9 and 127)
- // val firmwareMonth = fw_date shr 5 and 15
- // val firmwareDay = fw_date and 31
- // val firmwareDate = String.format("%04d-%02d-%02d", firmwareYear, firmwareMonth, firmwareDay)
- // }
+ if (fw_date != null) {
+ val firmwareYear = 2020 + (fw_date shr 9 and 127)
+ val firmwareMonth = fw_date shr 5 and 15
+ val firmwareDay = fw_date and 31
+ device.firmwareDate = String.format("%04d-%02d-%02d", firmwareYear, firmwareMonth, firmwareDay)
+ }
if (fw_major != null && fw_minor != null && fw_patch != null) {
device.firmwareVersion = "$fw_major.$fw_minor.$fw_patch"
}