Skip to content

fw-v0.7

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:25
· 362 commits to main since this release

Tag firmware for the distributed targets. Each image ships with its build manifest, which records the commit, the ChibiOS commit and branch, the toolchain and nanopb versions, and the SHA-256 of the image itself. CI does not bench-test power behaviour; qualification is a separate step before flight, and the table below records it.

CompassTagAT25 is qualified against this release. The other four targets are not yet qualified on fw-v0.7. The CompassTagAT25 figures come from the published image, not a local rebuild, and its session logs are attached as an asset.

Qualification

Supply voltage is given with every current because the targets do not share one: the L432 tags run unregulated from a 2.5 V cell and IMUTag runs from 3.7 V.

Target Qualified Supply Idle Running Finished
CompassTagAT25 2026-10-15 2.496 V 0.23 uA 1.97 uA @ 30 s 0.23 uA
IMUTagNandBmp581 not yet
UIUCTag not yet
BitTag not yet
PresTag not yet

CompassTagAT25

  • Board and image. Board 203633324B4250060022005E. The tag reports githash 169cda2c (fw-v0.7). CompassTagAT25.elf sha256 1e8a891f35967f1dc6d97b235b11f8533e18478117d582a4887d61a4fc628e06, measured with --skip-build.
  • Self-test. tag-test returned ALL_PASSED.
  • Idle. Four trials read 0.2286, 0.2282, 0.2282 and 0.2285 uA.
  • Life cycle. Idle 0.23 uA, running 1.97 uA over a 900 s window, finished 0.23 uA, and idle after a full cycle 0.23 uA. The download held 30 activity rows from the run.
  • No attach storms. The harness now skips them on L432 targets, because these tags sleep in standby between events and an attach just resets them.

Running current is 1% above fw-v0.6 on the same board and supply: 1.95 uA before, 1.97 uA now. That is consistent with the one change on the logging path, which lengthens the magnetometer power-up wait from 1 ms to 2 ms on each 30 s sample. Idle moved from 0.21 to 0.23 uA.

What is in this release

  • CompassTag calibration is pinned to the top L432 flash page. .calibration used to follow the code to the next page boundary, so whenever the image crossed one, a calibrated board read an unwritten page as its constants. It now sits at 0x0803f800 whatever the image size. Other L432 targets link to byte-identical images. .persistent still floats. flash_release.py --keep-calibration erases everything below the calibration page and programs, in one invocation.
  • The accelerometer zero-g offset is stored on the tag. CompassTag and IMUTag calibration slots now hold 12 magnetometer floats and 3 accelerometer floats (layout version 2). The host tools apply the offset wherever logs are read. This changes the calibration record format, so upgrading a calibrated tag from fw-v0.6 needs one mass erase (flash_release.py --erase) and recalibration. After that, later upgrades can use --keep-calibration.
  • The CompassTag magnetometer gets 2 ms to power up, up from 1 ms. A tag on a run-down cell logged corrupted magnetometer and accelerometer reads. The longer wait adds margin; it has not been proven to fix the fault.
  • The IMUTagNandBmp581 magnetometer is mapped into the host's axis frame, using the per-board mounting given in custom.h.

Known limitations

  • tag_release_check.py does not pass --measure-python to the life-cycle check. Set JOULESCOPE_PYTHON to an interpreter that can import pyjoulescope_driver, or the life-cycle step aborts without measuring anything.