Head tracker firmware release notes

see also: Bridgehead release notes.

image-0.70 (2023-10-30)

  • More work to improve top sensor start-up behaviour.
  • Improved behaviour for units with corrupted device info page.

image-0.69 (2023-10-25)

  • Old gestures (shake-to-calibrate, tap-to-zero) removed.
  • Gesture code reappraised and shake-to-zero added.
  • An attempt to improve boot-up performance.

image-0.68 (2023-03-20)

  • Bug fixed in 0.67: USB now actually wakes up properly from suspend mode.
  • I2C library updated for stability / memory footprint improvements.
  • Power-up self-test bug fix, which was causing a test stage to be ignored.

image-0.67 (2023-02-15)

  • USB now wakes up properly from suspend mode.
  • fixed a failure to transmit longer serial numbers.

image-0.66 (2022-10-02)

  • released for v8 hardware.
  • security improvements together with bootloader 1.16 in case head tracker is unplugged mid-FLASH write.
  • freed up some memory.

image-0.65 (2022-06-11)

  • revised specification to provide option to turn off slow central pull.
  • slow central pull is slowed from 0.5 to 0.3 degrees per second.

image-0.64 (2022-06-10)

  • fixed bug in arctangent routine, causing travel mode to correct in the wrong direction occasionally.
  • improved accuracy of gyroscope sensing at high speeds.

image-0.63 (2022-06-03)

  • quaternions now always have positive w.
  • magnetometer status is correctly returned even if the magnetometer is turned off.

image-0.62 (2022-04-07)

  • flipped option byte from production: what is good for factory test (where we want to pass if electronically correct) is not good for production (where we want to fail if misconfigured, and not risk breaking existing head trackers).

image-0.61 (2022-04-06)

  • production test only. Production now uses a mix of STM32F042 and STM32F070, which have different clock trees.

image-0.60 (2021-09-20)

  • fixed a status return bug that was reporting the compass calibrating forever.
  • improved integration of central accelerometer.
  • improved sensor fusion so the drifting-about-in-a-square bug is fixed, and the magnetometer drift seems to be too.
  • travel mode now works with the magnetometer on.

image-0.59 (2021-07-05)

  • fixed magnetometer calibration bug that caused it to drift.

image-0.58 (2021-04-29)

  • ISM303DAC driver works properly now I’ve actually seen one.
  • verbose mode produces an initial data point when it is turned on, and magnetometer calibration is no longer interrupted by data quality messages.

image-0.57 (2021-04-20)

  • fixed bug in non-volatile RAM: when it filled up, it stayed full, and wouldn’t accept new data.
  • slightly remodelled USB driver.

image-0.56 (2021-03-29)

  • universal firmware, so that a single build supports all head tracker hardware from v2 onwards.
  • fixes multiple issues in pre-production v2 units running later firmware.

image-0.55 (2021-02-18)

  • fixed a potential bricking issue when changing certain configuration settings once too often.
  • FORCE_CAL has been fixed.
  • quaternion output conversion has been improved.

image-0.54 (2021-01-28)

  • chipageddon: LSM303AGR (accelerometer / eCompass chip) may now be a ISM303DAC, which does the same thing more expensively, and is mostly compatible.

image-0.53 (2020-12-23)

  • fixed bug in non-volatile memory storage/saving.
  • added LED driver for factory testing.
  • added power-on self test mode for factory programming.

image-0.52 (2020-10-06)

  • fixed bug in MIDI Device Inquiry that made the message terminate erroneously.
  • reinstated travel mode.

image-0.51 (2020-10-01)

  • added gyroscope drift calibration.

image-0.50 (2020-09-23)

  • complete processing pipeline overhaul, with many bug fixes.
  • control gestures added as a replacement for physical buttons.
  • feature-complete apart from travel mode.
  • large version increment to imply readiness for pre-production evaluation.

image-0.14 (2020-06-06)

  • elaborated UART mode so as not to disturb performance with Dell XPS 15 laptop.
  • fixed UART mode to work with the headphone amplifier.

image-0.13 (2020-03-22)

  • UART mode.
  • minor improvements to USB handling.

image-0.12 (2020-02-21)

  • fixed a race condition that could corrupt operation, degrading data and drastically slowing response times.
  • made some changes to improve MIDI parsing.

image-0.11 (2020-01-15)

  • compatible with version 3 hardware.
  • updated CMSIS library.

image-0.10 (2020-01-08)

  • fixed travel mode bug (starting in the wrong state).
  • fixed compatibility issues when upgrading over previous versions (magnetometer incorrectly switched on).
  • button protocol changed.

image-0.09 (2019-12-04)

  • probably the last major feature upgrade to the version 2 head tracker.
  • added working travel (fast, slow) and 6DOF (data-driven, neck, and spine) modes.
  • fully compatible with what will become version 3 hardware, including its two buttons.
  • supports MIDI Device Inquiry, for simple remote hardware/firmware version detection.
  • improved accuracy of zeroing, and initial zeroing has been properly instated.
  • experimental data-driven 6DOF code exists, but is currently unusable.
  • trigonometry now has better interpolation.
  • interrupt pins are pulled down properly, simplifying the diagnosis of unreliable sensors.

image-0.08 (2019-10-14)

  • breaking change: moved from Q3.10 arithmetic to Q2.11, adding a bit of precision.
  • new extended protocol, which should not constitute other breaking changes.
  • added experimental quaternion and orthogonal modes.
  • button MIDI and magnetometer on/off settings are now saveable.
  • magnetometer calibration mode runs on the head tracker.
  • added a read-back function for saveable parameters, which replaces the message that provided remote control of magnetometer calibration.
  • many smaller dynamic improvements to head tracker performance.

image-0.07 (2019-08-23)

  • experimental build of a work-in-progress.
  • completely rewritten processing pipeline: fixes wander caused by complex head movements.
  • new magnetometer calibration required.
  • a few known issues to be fixed and features to be documented.

image-0.06 (2019-07-09)

  • suppresses the first two samples of data from each sensor, as it’s always bad data.
  • upped gyroscope activity threshold to attempt to fix drift seen in unit 03W.
  • output is now in the range 0..2π for yaw, pitch, and roll.

image-0.05 (2019-06-25)

  • tightened up filters to improve responsiveness.
  • changed internal calculation of pitch and roll orientation.
  • further magnetometer performance improvements.
  • vestiges of 6DOF pipeline used to tighten up accelerometer data.

image-0.04 (2019-06-13)

  • improved the magnetometer and gyroscope logic by making angular compensation work a little better.
  • improved handling of magnetometer on/off toggling.
  • bug fix: gyroscope drift correction (it now works in both directions).

image-0.03 (2019-06-12)

  • bug fix: Holds off sending output and zeros head tracker first, to prevent erratic behaviour.

image-0.02 (2019-06-10)

  • first release.