v1.10.6 - Text Command Response Format Standardization (2025-12-06)¶
What Changed?¶
This release standardizes the response format across all text commands for consistency and simplicity.
The main changes are: simplifying GET_UPTIME to return only uptime milliseconds (delegating time parsing to clients), standardizing RTC_TIME response fields to use consistent naming, and ensuring all command responses follow the unified
{"type":"response","status":"..."}
format.
What's New¶
GET_UPTIME Simplified¶
What it does: The GET_UPTIME command now returns only the raw uptime in milliseconds, eliminating complex time conversion logic from the firmware.
Old response (v1.10.5):
{
"type": "response",
"status": "ok",
"uptime_ms": 12345,
"days": 0,
"hours": 0,
"minutes": 0,
"seconds": 12,
"milliseconds": 345
}
New response (v1.10.6):
{
"type": "response",
"status": "ok",
"uptime_ms": 12345
}
Benefits:
- Reduces firmware code complexity
- Smaller JSON payload size
- Clients can implement custom time formatting as needed
- Keeps embedded system responses minimal and focused
RTC_TIME Response Standardized¶
What it does: Both SET_RTC_TIME and GET_RTC_TIME now use consistent field naming and response format.
Updated response format:
{
"type": "response",
"status": "ok",
"rtc_timestamp": 1732046789
}
Changes:
- Added missing
"type":"response"field to both commands - Unified field name as
"rtc_timestamp"(was"timestamp"for SET,"time"for GET) - Aligns with standard response format used across all commands
Response Format Consistency¶
All 19 text commands now follow unified response structure:
{
"type": "response",
"status": "ok|error",
...data fields...
}
Affected commands: GET_UPTIME, SET_RTC_TIME, GET_RTC_TIME
Benefit: Clients can parse all command responses with a single, predictable schema.
Installation¶
Quick Start¶
# Get the release
git checkout v1.10.6
# Build development version
task dev:build && task dev:upload
# Or production version
task prod:build && task prod:upload
# Monitor output
task monitor
What's Different from the Last Version?¶
✅ Changed¶
- GET_UPTIME response: Simplified from 6 fields to 1 field (
uptime_msonly) - SET_RTC_TIME response: Added
"type":"response"field, renamed field to"rtc_timestamp" - GET_RTC_TIME response: Added
"type":"response"field, renamed field to"rtc_timestamp"
Performance Impact¶
- Firmware size: Reduced by ~30 bytes (removed time conversion code)
- JSON payload: Reduced by ~60% for GET_UPTIME (from ~120 to ~50 bytes)
- Runtime overhead: Eliminated time conversion calculations
Backward Compatibility¶
⚠️ Breaking changes for clients using GET_UPTIME or RTC_TIME commands:
- GET_UPTIME clients must update to use only
uptime_msfield - RTC_TIME clients must handle new field names (
rtc_timestampinstead oftimestamp/time) - RTC_TIME clients must handle new
"type":"response"field
All other commands remain unchanged.
Testing Checklist¶
- GET_UPTIME returns
{"type":"response","status":"ok","uptime_ms":value} - SET_RTC_TIME returns
{"type":"response","status":"ok","rtc_timestamp":value} - GET_RTC_TIME returns
{"type":"response","status":"ok","rtc_timestamp":value} - All 19 text commands include
"type":"response"field - Serial output format validated with existing protocol
Is It Safe to Upgrade?¶
For production systems: ⚠️ Only if you don't use GET_UPTIME or RTC_TIME commands in your data pipeline.
For development: ✅ Yes, safe to upgrade.
Known Issues¶
None reported.