# Bigscreen Beyond Firmware Changelog

## [0.2.24][v0224] - 2023-12-21
[v0224]: https://github.com/BigscreenVR/beyond_synaptics/
* Adds new FATP modes, both can be accessed with HID FATP entry command, requires a second byte after the '@'
  * 2nd byte = 1: 60Hz at 1920 (removes 2560 30Hz from this mode) non-DSC
  * 2nd byte = 2: 60Hz at 2544, requires DSC
* NOTE: for 60Hz 2544, new VXR firmware is required [Beyond_v03_20231221.fullrom](https://github.com/BigscreenVR/beyond_synaptics/vxr7200_firmware\Beyond_v03_20231221.fullrom)

## [0.2.22][v0222] - 2023-11-17
[v0222]: https://github.com/BigscreenVR/beyond_synaptics/commit/7caa3019fad4389edb66c73896134a581ce261f6
* Fixes microphone popping due to bad buffer position update.
* Fixes display usage timers counting up even with displays off. Was affected whenever Beyond left powered on, idle after using displays.

## [0.2.21][v0221] - 2023-11-02
[v0221]: https://github.com/BigscreenVR/beyond_synaptics/commit/8e81ed76de9ca1aa90a517441bceeb3cdda65016
* Adds short delay after OLED display on command before sending the final dimming command. Recommended by manufacturer.

## [0.2.20][v0220] - 2023-11-01
[v0220]: https://github.com/BigscreenVR/beyond_synaptics/commit/a7b3646711b412e8c455603c1bae2f156deba61e
* Modifies the OLED startup routine. Fixes the temperature compensation so it is now correctly loaded at startup.

## [0.2.19][v0219] - 2023-10-17
[v0219]: https://github.com/BigscreenVR/beyond_synaptics/commit/cd3f9ebb2076c768afcf1e74dff6463e57c4d9d4
* Fixes a stuck state that occurred every time the usage timers filled a Flash page and needed to be copied to the other blank page.
* Increased the video_proc stack size from 512 to 1024. Remaining stack had been getting scary low after starting video on the displays.

## [0.2.18][v0218] - 2023-10-14
[v0218]: https://github.com/BigscreenVR/beyond_synaptics/commit/0c23f49d709bcae133aa39996b7f3257b1f71db1
* Added reset to bootloader command to error handler

## [0.2.17][v0217] - 2023-10-13
[v0217]: https://github.com/BigscreenVR/beyond_synaptics/commit/1c2568f9fa9c6ab0306417ef02544a5bdc75cac8
* Added memory readout to the error handler
* Included FPU registers in the processor state 
* Added hard fault status registers to the error reason message

## [0.2.16][v0216] - 2023-10-10
[v0216]: https://github.com/BigscreenVR/beyond_synaptics/commit/120b55464c0b64361ea5479d33ce76fcff4aca17
* Created error handler feature which allows for retrieval of processor state after an error

## [0.2.15][v0215] - 2023-09-28
[v0215]: https://github.com/BigscreenVR/beyond_synaptics/commit/99aea080c468585e849b64a79a2512f477f82712
* Increased stack size available to FreeRTOS timer task "Tmr Svc". The original minimal stack size would overflow in certain situations right when the 5 minute proximity timer elapsed.

## [0.2.14][v0214] - 2023-09-15
[v0214]: https://github.com/BigscreenVR/beyond_synaptics/commit/c3efd83db71fa365ae166f7a671c95b2d730b4f5
* Adds 72Hz EDID mode, but not enabled yet for users due to bug in VXR7200 at this video timing.
* Changed mic gain from 3x to 1.5x (technically 2x integral gain and 0.75x fractional gain)

## [0.2.13][v0213] - 2023-09-13
[v0213]: https://github.com/BigscreenVR/beyond_synaptics/commit/b04f1adc6622c6d3a2ab1104d696a3f69d98f287
* Added separate right optic total usage timer. Previous timer used for left optic.
* Added USB HID command to set the current usage timers.
* Mic gain reduced from 7x to 3x.
* Default EDID sets preferred resolution to 75Hz instead of 90Hz. This is helpful on AMD GPUs as SteamVR fails to find the Beyond's monitor if Watchman JSON and Windows OS resolutions do not match. At least for the intial boot. After entering direct mode, Windows OS cannot control resolution.

## [0.2.12][v0212] - 2023-07-05
[v0212]: https://github.com/BigscreenVR/beyond_synaptics/commit/575485fa291c3cbdf5dc73bb91537702b93357b8
* Lowered mic gain from 10x to 7x.
* Changed dimming method on FATP 30Hz from black frame insertion to multi-pulse emission. Not great for real VR usage, but it prevents the obvious strobing seen when using black frame at low frame rates.
* Added proximity enable command, which can undo the proximity disable command without power cycling.

## [0.2.11][v0211] - 2023-06-07
[v0211]: https://github.com/BigscreenVR/beyond_synaptics/commit/96168e0f6517621fa5f5c1148df3f1e6482973ce
* Added 4kB delete command for VXR7200 firmware update. Previous was limited to 64kB delete, which would always mean deleting part of the VXR firmware section even if only the VXR config needed to be updated.

## [0.2.10][v0210] - 2023-05-15
[v0210]: https://github.com/BigscreenVR/beyond_synaptics/commit/bee75405a8a0ca45ab9751f167a2f70725736699
* Added USB HID reset command
* Added USB HID colorbar test pattern command (for use in factory)

## [0.2.9][v029] - 2023-05-09
[v029]: https://github.com/BigscreenVR/beyond_synaptics/commit/226ee7c9d4359e16713fec722f8c63c2a6688761
* Fixes the Longest continuous display on timer. Was incorrectly using the Total time display on timer memory location.

## [0.2.8][v028] - 2023-05-09
[v028]: https://github.com/BigscreenVR/beyond_synaptics/commit/78f56fc6c742a1e52e0af0affe66120414773502
* Adds retry attempts to brightness setting. Previously could fail to correctly set brightness after USB HID command, resulting in uneven brightness across displays.

## [0.2.7][v027] - 2023-04-20
[v027]: https://github.com/BigscreenVR/beyond_synaptics/commit/129a0b4d7322346d9d76e45971a97a21081533ee
### April 20, 2023
* Fixed PDM microphone fractional gain. Wasn't actually used before.
* Single mode EDID switch added to config memory options
* Changes proximity sensor dimming. Instead of immediately turning off displays (which results in a temporary blue hue when they turn back on) it dims them to the minimum possible brightness for 5 minutes. After 5 minute timer elapses, they fully turn off like before. This should reduce the number of times users see that blue color shift.

## [0.2.6][v026] - 2023-04-12
[v026]: https://github.com/BigscreenVR/beyond_synaptics/commit/b3ff8d87c8bf2335c60223d9e4b6a28da349b283
* Added USB HID command to disable proximity sensor until next power cycle
* Fan and LED turn on and off with video signal
* Slight tweaks to RGB breathing animation

## [0.2.5][v025] - 2023-03-31
[v025]: https://github.com/BigscreenVR/beyond_synaptics/commit/dd398f2d7e801e048e8f04400adce94266ff0c19
* Added command to switch for single mode EDIDs
* Updated reported USB manufacturer and product names from "Generic" "Stereo USB Microphone" to "Bigscreen" "Beyond"

## [0.2.4A][v024A] - 2023-03-07
[v024A]: https://github.com/BigscreenVR/beyond_synaptics/commit/2c0bfeb75434a90896112d84869ed5e83c059d85
* Added initialization of second on-board USB hub chip for Bluetooth on HMDs

## [0.2.4][v024] - 2023-02-28
[v024]: https://github.com/BigscreenVR/beyond_synaptics/commit/a58570681f6e94e9ba1ae7c3d09252d1bf2279b3
* Fan soft start instead of slamming to set speed
* Read OLED ID string command added

## [0.2.3][v023] - 2023-02-23
[v023]: https://github.com/BigscreenVR/beyond_synaptics/commit/12302bf2172c3168665d3e059f0e8d9112a4e63b
* EDID update per Nvidia's recommendations
* Change proximity sensor to use FAR photodiode for better sensitivity
* Added config memory settings for proximity calibration
* Proximity sensor performs averaging before determining on/off status

## [0.2.2][v022] - 2023-02-02
[v022]: https://github.com/BigscreenVR/beyond_synaptics/commit/acdbdd71d9de019fe2730a663954db1f03670285
* Added control of proximity sensor settings over USB HID, to match options in the Python prox_config tool.

## [0.2.1][v021] - 2023-01-31
[v021]: https://github.com/BigscreenVR/beyond_synaptics/commit/04d647f7c2f743e3f0cfc765e5e23e6592882b8e
* Mic defaults to Mono instead of Stereo
* Added usage timers in emulated "EEPROM" region of Flash.
* Startup OLED brightness config setting added.

## [0.2.0][v020] - 2022-12-08
[v020]: https://github.com/BigscreenVR/beyond_synaptics/commit/089ba0490bf49dbaec0016c8a78fc2b355eaa72d
* Built-in hardware tests accessible over serial UART port for use in factory.
* Added FATP video modes that avoid using DSC.
* New configuration data format using variable length tags instead of fixed struct.

## [0.1.0][v010] - 2022-10-27
[v010]: https://github.com/BigscreenVR/beyond_synaptics/commit/ed9dd9344e6ea146ff836b6cc7282910ad22fd72
* Added software version string and method to retrieve it over USB HID.