Skip to content

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