v1.9.8 - Enhanced STATUS Command with Build Flags (2025-11-30)¶
What Changed?¶
This release enhances the STATUS command to expose build-time configuration flags, enabling users to remotely verify firmware capabilities without inspecting code. The STATUS JSON response now includes 9 compile-time flag values (enable_adcmv, enable_bme280, enable_gpio_abstraction, enable_queue, enable_rtc, enable_timestamp, enable_wifi) alongside existing configuration values. Additionally, new text commands GET_MAC_ADDRESS and improved adc_channel reporting enable device identification in multi-unit deployments.
What's New¶
Feature 1: Extended STATUS Command with Build Flags¶
What it does: STATUS command now returns complete build configuration including all ENABLE_* flags and hardware jumper settings.
How to use it:
STATUS
Response example:
{
"type": "response",
"status": "ok",
"adc_channel": 1,
"deadtime_ms": 0,
"enable_adcmv": 1,
"enable_bme280": 1,
"enable_gpio_abstraction": 1,
"enable_queue": 1,
"enable_rtc": 1,
"enable_timestamp": 1,
"enable_wifi": 0,
"poll_count": 100,
"threshold1": 512,
"threshold2": 512,
"threshold3": 512,
"uptime_ms": 12345,
"version": "1.9.7"
}
Feature 2: GET_MAC_ADDRESS Command¶
What it does: Returns the device's MAC address in standard XX:XX:XX:XX:XX:XX format. Works regardless of ENABLE_WIFI setting.
How to use it:
GET_MAC_ADDRESS
Response example:
{"type":"response","status":"ok","mac_address":"A4:CF:12:3D:4A:BC"}
Use cases:
- Device identification in multi-unit deployments
- Network provisioning and device registration
- Debugging hardware connectivity issues
Feature 3: ADC Channel Reporting¶
What it does:
STATUS command includes adc_channel field showing which detection channel (1-3) is connected to the ADC via hardware jumper.
How to use it:
STATUS # adc_channel field indicates current jumper setting (1, 2, or 3)
Installation¶
Quick Start¶
# Get the release
git checkout v1.9.8
# Build
task build
# Upload
task upload
# Test new commands
task monitor
# Type: STATUS
# Type: GET_MAC_ADDRESS
What's Different from the Last Version?¶
✅ Added¶
- STATUS command now includes 9 build-time flag values
- enable_adcmv
- enable_bme280
- enable_gpio_abstraction
- enable_queue
- enable_rtc
- enable_timestamp
- enable_wifi
- adc_channel field in STATUS response (ADC_JUMPER_CHANNEL value)
- GET_MAC_ADDRESS text command for device identification
- GET_MAC_ADDRESS included in HELP command output
🔧 Changed¶
- STATUS response fields reorganized alphabetically for consistency
- STATUS JSON now includes 17 configuration/metadata fields
🐛 Fixed¶
- Simplified GET_MAC_ADDRESS implementation (String format vs byte array conversion)
Is It Safe to Upgrade?¶
Backward Compatible: Yes
- STATUS response structure unchanged, only new fields added
- Existing fields maintain identical values and positions (alphabetically ordered)
- No behavior changes to detection, firmware, or existing commands
- GET_MAC_ADDRESS is new command (no conflicts with existing commands)
Tests Passed¶
- ✅ Builds without errors (esp32dev-dev, esp32dev-release, esp32dev-wifi)
- ✅ STATUS command returns valid JSON with all fields populated
- ✅ GET_MAC_ADDRESS returns correctly formatted MAC address
- ✅ Pre-commit hooks pass (trailing whitespace, JSON syntax, etc.)
- ✅ Flash usage: 24.7% (within safe limits)
- ✅ RAM usage: 8.3% (within safe limits)
Release Details¶
- Date: 2025-11-30
- Version: v1.9.8
- Files Changed: 2 (src/text_command_handlers.cpp, platformio.ini)
- Commits: 13 commits
- feat(status): add ADC_JUMPER_CHANNEL to STATUS response
- feat(text-command): add GET_MAC_ADDRESS command
- refactor(text-command): simplify GET_MAC_ADDRESS implementation
- feat(status): add enable_bme280 build flag to STATUS response
- feat(status): add enable_queue build flag to STATUS response
- feat(status): add enable_gpio_abstraction build flag to STATUS response
- feat(status): add enable_rtc build flag to STATUS response
- feat(status): add enable_timestamp build flag to STATUS response
- feat(status): add enable_wifi build flag to STATUS response
- feat(status): add enable_adcmv build flag to STATUS response
- refactor(status): sort STATUS response fields alphabetically
Next Steps¶
Potential enhancements for future releases:
- ENABLE_TEXT_COMMAND flag in STATUS
- STREAM_FORMAT value in STATUS
- Dynamic build flag query commands
- Remote firmware version/configuration repository