Skip to content

v2.3.1 - DAC Settling Time Fix (2026-01-07)

What Changed?

This release adds a 10ms settling time delay to DAC threshold commands. After SPI transmission completes, the DAC now has sufficient time to apply the threshold value internally before subsequent operations (e.g., detection events or Vref monitoring).


What's New

Fix: DAC Settling Time Delay

What it does: Ensures DAC hardware completes internal configuration after receiving threshold commands. The 10ms delay is typical for DAC response time and guarantees stable operation.

When it matters:

  • After SET_THRESHOLD commands (automatic)
  • Before GET_VREF checks for Vcc monitoring
  • Improves reliability of threshold verification workflows

Code change:

// dac_send() now includes settling time
void dac_send(int channel, byte data1, byte data2) {
  // ... SPI transaction ...
  delay(10);  // Wait for DAC settling
}

Installation

Quick Start

# Get the release
git checkout v2.3.1

# Build
task v2:build

# Upload
task v2:upload

# Check it works
task monitor

What's Different from the Last Version?

🐛 Fixed

  • dac_send: Add 10ms settling time delay after SPI transmission to ensure threshold values are fully applied

Is It Safe to Upgrade?

Backward Compatible: Yes ✅

  • No API changes
  • No behavior changes to detection logic
  • Only affects timing of internal DAC operations
  • All existing code works unchanged

Tests Passed

  • ✅ Builds without errors (v2 profile)
  • ✅ RAM usage: 31.4% (102KB / 327KB)
  • ✅ Flash usage: 27.8% (365KB / 1311KB)
  • ✅ Pre-commit hooks validated

Release Details

  • Date: 2026-01-07
  • Version: v2.3.1
  • Release Type: PATCH (bug fix)
  • Files Changed: 3 (dac_manager.cpp, dac_manager.h, auto-generated build files)

Next Steps

  • Consider adding explicit DAC health checks via Vref monitoring
  • Monitor threshold stability in production deployment
  • Evaluate if settling time needs adjustment based on field experience