# Version History

## Release Timeline

### v0.3.x — BS2 Support and Eye-Tracking

#### v0.3.19 — 2025-12-17
- RGB LED HID command (`L`) extended with animation mode selector (byte 4)
- New blinking LED mode added (on/off toggle at ~5-tick interval)
- Byte 4 values: 0=color only, 1=static, 2=breathing, 3=blinking

#### v0.3.18 — 2025-12-10
- VXR7200 sleep mode added as a nonvolatile configuration option (config tag `0x0F`)
- Default is no sleep; when enabled, VXR powers down after 30 seconds without video
- Reverted USB PHY boost setting (unnecessary due to external USB booster board)
- Reverted linker script change, re-allowing bootloader space at start of flash

#### v0.3.17 — 2025-11-04
- Added 30% PHY boost to upstream USB3803 hub signaling

#### v0.3.16 — 2025-10-13
- Simplified firmware variant for tracking test station (mic-only, HID disabled)

#### v0.3.15-b — 2025-09-16
- Adds Tundra UART dump to USB HID (forward tracker UART data to host)
- Combines user proximity trim and VXR auto-shutdown features

#### v0.3.15-a — 2025-09-15
- Added VXR7200 status bits to periodic telemetry report (byte 26):
  - Bit 0: VXR powered down (1 = off, 0 = on)
  - Bit 1: VXR startup succeeded (1 = success, 0 = failed or not yet started)

#### v0.3.15 — 2025-09-10
- Added user proximity trim HID command — signed 16-bit threshold adjustment stored in config tag `0x0E`
- Added nonvolatile config for USB hub PHY boost strength and receiver sensitivity (config tags for USB boost and squelch)
- VXR7200 power up fix: I2C peripheral now resets on transaction error; no longer continuously probes VXR when powered down
- Added HID command to disable/enable VXR7200 1.0V power rail
- VXR auto-shutdown: powers down VXR after 30 seconds without video input; Tundra UART activity wakes it back up

#### v0.3.14 — 2025-08-14
- Fan logic reworked into a state machine (Idle / Video / Debug states)
- Overtemperature auto-fan: three-level fan control with hysteresis, active even when video is off
- Fan task now self-contained — other tasks send messages, fan task decides speed
- Deferred fan speed loaded from NVM config at startup

#### v0.3.13 — 2025-08-13
- OLED startup code updated with SeeYA-recommended "OSC Tracking" settings

#### v0.3.12 — 2025-06-03
- Only performs one reconfig if FPGA found in bootloader mode
- Prevents locking up in reconfig cycles (~3 min) when no camera config loaded

#### v0.3.11 — 2025-05-23
- Eye-tracking overcurrent error reporting
- Polls FPGA for latched overcurrent faults; flashes displays with inverted colors if detected

#### v0.3.10 — 2025-05-19
- Increased FPGA boot mode check wait from ~50 ms to 5 seconds
- FPGA configuration takes ~3 sec; MCU wasn't waiting long enough

#### v0.3.9 — 2025-03-28
- Added FPGA read over I2C command to HID
- Changed I2C wait loop to FreeRTOS semaphore (fixes brightness blackouts)
- Reduced I2C interrupt priority for FreeRTOS compatibility
- Corrected bootloader shutdown procedure (was trapped in I2C after FreeRTOS shut down)
- Added FPGA startup configuration check with auto-reconfig from bootloader mode

#### v0.3.8 — 2025-02-27
- Rolled v0.3.7E changes into release (I2C rework complete)

#### v0.3.7E — 2025-02-20
- FreeRTOS scheduling re-enabled for I2C (fixes microphone corruption from v0.3.7D)
- I2C now interrupt-driven (not busy-wait); still fixes proximity glitch

#### v0.3.7D — 2025-02-19
- FreeRTOS scheduling disabled during I2C transactions (fixes proximity glitch but breaks microphone)

#### v0.3.7C — 2025-02-19
- Fixes BS1 incompatibility (no longer incorrectly shuts down 1.8V supply)
- Sanity checks on proximity sensor samples; rejects out-of-range values

#### v0.3.7 — 2025-02-02
- Proximity sensor returns last valid value when disconnected (not zero)

#### v0.3.6 — 2025-01-28
- Added I2C open drain command before OLED read ID

#### v0.3.5 — 2024-12-19
- Added FPGA control commands
- Unified builds for BS1 and BS2 (triple USB3803)

#### v0.3.4 — 2024-12-06
- Fix for vertical bars on 90 Hz
- Proximity timer bugfix

#### v0.3.3 — 2024-11-13
- Removed USB2517 support
- Added triple USB3803 BS2 board support

#### v0.3.2 — 2024-10-30
- USB2517 driver bugfix

#### v0.3.1 — 2024-10-10
- Initial BS2 changes, USB2517 hub startup, BS1 vs BS2 detection
- New HID commands: OLED power enable/disable, deferred fan speed
- Added display brightness and video status to periodic report

### v0.2.x — Core Features and Refinement

#### v0.2.25 — 2024-01-18
- Changed 2544x2544 60 Hz from black frame insertion to pulsed emission

#### v0.2.24 — 2023-12-21
- New FATP modes (non-DSC 60 Hz and DSC 60 Hz at 2544)
- Requires VXR firmware v03 for 60 Hz 2544

#### v0.2.22 — 2023-11-17
- Fixed microphone popping (bad buffer position update)
- Fixed display usage timers counting when displays are off

#### v0.2.21 — 2023-11-02
- Short delay after OLED display-on before final dimming command

#### v0.2.20 — 2023-11-01
- Fixed OLED startup temperature compensation

#### v0.2.19 — 2023-10-17
- Fixed stuck state when EEPROM page copy triggered
- Increased video_proc stack: 512 -> 1024

#### v0.2.18 — 2023-10-14
- Reset to bootloader command added to crash handler

#### v0.2.17 — 2023-10-13
- Memory readout in crash handler
- FPU registers in processor state
- Hard fault status registers in error message

#### v0.2.16 — 2023-10-10
- Created crash handler with processor state capture and Flash storage

#### v0.2.15 — 2023-09-28
- Increased FreeRTOS timer task stack (was overflowing at 5-min proximity timer)

#### v0.2.14 — 2023-09-15
- Added 72 Hz EDID mode (disabled due to VXR7200 bug)
- Mic gain reduced from 3x to 1.5x (2x integral, 0.75x fractional)

#### v0.2.13 — 2023-09-13
- Added separate right optic usage timer
- Added usage timer set command
- Mic gain reduced from 7x to 3x
- Default EDID preferred changed to 75 Hz (AMD GPU compatibility)

#### v0.2.12 — 2023-07-05
- Mic gain reduced from 10x to 7x
- FATP 30 Hz changed to multi-pulse emission (reduces visible strobing)
- Added proximity re-enable command

#### v0.2.11 — 2023-06-07
- Added 4 KB delete command for VXR7200 firmware (vs previous 64 KB only)

#### v0.2.10 — 2023-05-15
- Added USB HID reset command
- Added colorbar test pattern command (factory use)

#### v0.2.9 — 2023-05-09
- Fixed longest continuous display timer using wrong memory location

#### v0.2.8 — 2023-05-09
- Retry mechanism for brightness setting (prevents uneven brightness across panels)

#### v0.2.7 — 2023-04-20
- Fixed PDM mic fractional gain (wasn't actually used before)
- Single-mode EDID switch added to config
- Proximity: dim first for 5 min, then turn off (reduces blue color shift)

#### v0.2.6 — 2023-04-12
- Proximity disable command
- Fan and LED turn on/off with video signal
- RGB breathing animation tweaks

#### v0.2.5 — 2023-03-31
- EDID switch command for single-mode EDIDs
- Updated USB names from "Generic" to "Bigscreen" / "Beyond"

#### v0.2.4A — 2023-03-07
- Second on-board USB hub for Bluetooth

#### v0.2.4 — 2023-02-28
- Fan soft start (gradual ramp-up)
- OLED ID string read command

#### v0.2.3 — 2023-02-23
- EDID update per Nvidia recommendations
- Proximity sensor switched to FAR photodiode
- Proximity calibration config settings
- Proximity averaging before on/off decision

#### v0.2.2 — 2023-02-02
- Proximity sensor settings control over USB HID

#### v0.2.1 — 2023-01-31
- Mic default changed to mono
- Usage timers in emulated EEPROM
- Startup brightness config setting

#### v0.2.0 — 2022-12-08
- Built-in hardware tests over serial UART (factory)
- FATP video modes without DSC
- New config data format (variable-length TLV tags)

### v0.1.x — Initial Release

#### v0.1.0 — 2022-10-27
- Software version string and HID retrieval command
- Initial firmware release
