This is an old revision of the document!
Firmware revision history
FX3
52
- Previous settings' files are INCOMPATIBLE with this new release
- Support for the “true” 2×2 binning done on the sensor itself (requires FPGA v. 71+)
- Color Grading writes into FPGA are now processed asynchronously (for example an LvL full load results in 1,345 I²C bus requests!)
- UVC “powerline frequency” support (50/60Hz)
- UVC “white balance temperature control” support in range 2000°..6500°K
- AWB and AE are now auto-disabled when users directly adjust specific sensor's registers (for example AWB goes off if a red gain is changed)
- UVC handlers' cleanup (based on 1.5 spec quite a few are not necessary as their results can be, and are, inferred from others. Like RES can be inferred from MIN/MAX in many cases)
- UVC autoexposure was working more or less accidentally - fixed now by properly using spec-defined control values
- UVC API handling is now done synchronously (Cypress's sample implementation was introducing rare race conditions when host was issuing UVC write requests in a rapid succession)
- Flexible FPS (SCC v. 2.4.0+) support, including via API VR
0xB0
(using an IEEE-754 float x86 LE 4-byte buffer value) - Separate DPC for 4K and 1080p modes (support for this is coming “soon” in SCC)
- Various sensor configuration tables are now consolidated into a manageable set and sorted out and finally made sense of
- LED is now used to indicate some internal error codes (more work on that is planned to be done in the next few releases)
- An internal fatal error now reboots the device after turning LED red and a short delay
- Massive FX3 code cleanup and refactoring, dead code removal, global singletons' elimination, bit manipulations are mostly replaced with the use of structs and unions, improved const-correctness, and more along those lines
- code improvement for raw-video support
- sensor standby mode is now either immediate or at frame boundary, depending on where it is needed to be set in the code
- for video switching the sensor is now put on vblank standby
- properly set UVC defaults
- correct a bunch of UVC controls' “info” responses
- removed quite a few seemingly non-functional delays sprinkled throughout the code
- a number of sensor updates are now governed by a “write group” access pattern for atomicity (gain and exposure are a few such examples)
- improvements in debug logging
- main UVC handler is re-worked to be an easy-to-follow modular code instead of thousands of lines of copy-paste blocks
- autoexposure was broken for extremely dark images (when an “average” Y value was at 0)
- new Color Grading defaults
FPGA
71
- Support for the “true” 2×2 binning done on the sensor itself (requires FX3 v. 52+)
- Corrected “timing” issues introduced some time ago by HSL pipeline implementation
- ground work is done for “FPGA test patterns” - similar to “sensor test patterns” but generated at various key points in the FPGA imaging pipeline
- .gitignore enhancements in an effort to bring the size of the repo significantly down