================================================================================
MOGLabs FZW Firmware Changelog
================================================================================
uC v0.10.6 - 2025/09/04
===================================
- bug fix, reported "LOW CONTRAST" instead of "OVER-EXPOSED" in some scenarios
- bug fix, value reported by MEAS,SAT was incorrect when sensor was over-exposed
- improved thermal correction calibration

uC v0.10.4 - 2025/06/16
===================================
- longterm: change wavelength scaling to 1500nm

uC v0.10.3 - 2025/05/12
===================================
- in WIDE mode, don't check multimode on longest etalon
- bug using buttons to change channel on FSW4, FSW8
- bug averaging for times > 1 sec
- bug selecting switch channels to report parameter values
- if gain set manually, auto-expose now disables

uC v0.10.2, IAP v0.2.5 - 2025/01/30
===================================
- fix endless interrupts on TRIG_IN to PE14

v0.10.1 - 2024/12/17
====================
- bug fix, comms response becomes very slow (55ms lag)
- bug fix, timestamp when frame acquired

v0.10.0 - 2024/11/12
====================
- correction for atmospheric pressure change

v0.9.24 - 2024/10/01
====================
- bug fix to correct pushbutton action with multiple switches

v0.9.23 - 2024/09/30
====================
- bug fix, OPTSW,FSW,2 did not select second switch

v0.9.22 - 2024/05/09
====================
- bug fix, was resetting switch every second

v0.9.21 - 2024/05/01
====================
- OPTSW,type now reports FSM2 for FSM, FSW4 or FSW8
- fixed hot-plug of FSW switch

v0.9.20 - 2024/04/30
====================
- FSM2 devices do not have optical bands
- OPTSW,band and OPTSW,dband report error if FSM2

v0.9.19 - 2024/03/30
====================
- Further stability improvements for changing switch channels

v0.9.18 - 2024/03/11
====================
- Improved behaviour when changing switch channels, particularly 2x1 switches
  Stop sensor, then switch, then restart
  Correctly initialise switch lag from EEPROM on startup

v0.9.17 - 2024/01/04
====================
- Fixed external triggering
- Added active-high external trigger capability (meas,extrig,hi)

v0.9.16 - 2023/10/31
====================
- Bug fixes for FAST mode

v0.9.14 - 2023/07/01
====================
- Bug fixes for auto-stepping

v0.9.13 - 2023/05/15
====================
- Fixed MEAS,SAT (was multiplying by 100 twice)
- Added WIDE mode
- Fixed bug in OPTSW_chmod, writing fibre switch MEMS values

v0.9.12 - 2023/03/12
====================
- Added check for Rev5 board ID
- Updated IAP 0.2.3 for Rev5
- Faster default operation using continuous mode, 150 meas/sec
- Fast mode, 300 meas/sec using only etalons 2 and 3

v0.9.11 - 2023/02/01
====================
- Added meas,extrig command to enable external hardware trigger.
  Disables internal generation of hardware trigger in WM_CAM_start.
- Added meas,pulse command to switch from rolling shutter to global shutter
- Added meas,softrig command to generate hardware trigger pulse.

v0.9.10 - 2022/11/25
===================
- Added MEAS,SHIFT command to define volatile frequency offset
  for drift correction using stabilised laser on one port of fibre switch
- Added OPTSW,gain and OPTSW,exp to set those for selected port

v0.9.9 - 2022/09/27
===================
- Bug fix; falsely reporting switch attached
- Added functional SPI (32 byte commands, 64 byte responses)
- Fixed time-series on LCD display

v0.9.8 - 2022/08/02
===================
- bug fix with optsw,id and optsw,fsw commands

v0.9.7 - 2022/06/29
===================
- Add capability to control multiple FSW units

v0.9.6 - 2022/05/03
===================
- Minor fix to PID,SET

v0.9.5 - 2022/01/24
=========================
- Numerous bug fixes for multi-channel PID and auto-stepping

v0.9.4 - 2022/01/16
=========================
- Numerous fixes for multi-channel PID and auto-stepping

v0.9.4 - 2021/11/21
=========================
- Implemented 2x1 simple TTL switches
- New command: OPTSW,2x1 to change to using 2x1 switches (TTL port selection)
               OPTSW,set,1 or OPTSW,set,2 to select port
  (can also use  OPTSW,2x1,0 to set 0v out, OPTSW,2x1,1 to set 5v out)
- New command: OPTSW,FSW to change to using FSW switches (I2C comms to B8810)
- New command: OPTSW,POW to turn off/on the +/-5v supplies to switch
- New command: OPTSW,AUTO to enable/disable auto-stepping

v0.9.3 - 2021/11/13
=========================
- Update checking of hardware ID/Rev number
- Fixed time-averaging
- PID now working (single channel)

v0.9.2 - 2021/11/03
=========================
- Reduced compiler optimization to allow correct operation on older devices

v0.9.1 - 2021/10/28
=========================
- Major overhaul of PID code
- Some changes to command language, in particular no averaging

v0.8.15 - 2021/10/19
=========================
- Bug in PID enable, set offset to -2.5v

v0.8.14 - 2021/09/19
=========================
- Fixed board ID in ukit-iap and app_main 

v0.8.13 - 2021/06/05
=========================
- Expanded optical switch control to allow factory reprogramming for blue light

v0.8.12 - 2021/04/22
=========================
- Fixed problem with sensor initialisation on startup

v0.8.11 - 2021/03/18
=========================
- Fixed issue with communication timeout at boot
- Fixed issue where DAC outputs might get stuck at -2.5V
- Resolved optical switcher identification issue


v0.8.10 - 2021/03/02
=========================
- Improved support for optical switcher
- Fixed issue causing timeout for sudden change in input power
- Fixed bug causing error message to be displayed at boot
- Fixed scenario that could potentially cause device to halt


v0.8.9 - 2021/02/01
=========================
- Adjustments for Rev4 hardware
- Support for 8-channel optical switch, added OPTSW,TYPE 
- Fixed MEAS,CONTRAST calculation
- Adjusted auto-exposure algorithm for faster convergence
- Implemented multi-mode estimation algorithm
- Fixed scenario where measurement failure produced no error
- Changed PID,MIN and PID,MAX to ensure min <= max
- Changed PID,OUTPUT to truncate to output limits


v0.8.4 - 2020/08/12
=========================
- Fixed floating-point precision loss in measurement backlog
- Fixed CAL,CORRECT for making adjustments to device calibration
- Fixed measurement averaging
- Updated PID diagnostics to always calculate output values


v0.8.1 - 2020/06/15
=========================
- Fixed PID voltage saturation limit calculation
- Fixed bug causing PID to switch itself off
- Added PID,MIN and PID,MAX settings to restrict analog output range
- Added PID,ERR and PID,REPORT commands to help debug PID applications


v0.8.0 - 2020/05/29
=========================
- Added support for optical switch
- Corrected auto-exposure calculation for large dark counts
- Fixed wavenumber calculation
- Fixed bug preventing CAL,CORRECT,RESET from working
- Increased number of digits shown on integrated display


v0.7.9 - 2020/03/16
=========================
- Fixed bug where device gets stuck in "firmware update mode"
- Improved edge-case detection in auto-exposure calculation
- Improved "starting guess" measurement for more reliable convergence 


v0.7.8 - 2020/02/20
=========================
- Changes to measurement algorithm to improve broadband calibration accuracy
- Changed start-up mode to "general purpose" instead of "fast"


v0.7.4 - 2019/11/15
=========================
- Initial public release
