User Tools

Site Tools


Firmware revision history

Compatibility matrix

  • - fully compatible
  • - mostly compatible (a feature or two may be inaccessible but otherwise “ol iz vel”)
  • empty cell - not supported (major differences in how the two modules interact with each other)
\(_{FX3}\) \ \(^{FPGA}\) 70 71 72


2020-05-05: 56

  • a whole slew of additional FPS options
  • removed unnecessary video pipeline start when handling USB CLEAR FEATURE request, improving the stability somewhat
  • fixed an issue with FPGA firmware upgrade code

2020-04-29: 55

  • Color Grading “bulk” API (a single table's load time is reduced 10x, from 23ms to 2ms along with replacing 193 separate USB calls with a single one!) requires SCC v.2.4.2+
  • fixed 4K@30fps NV12 video streaming
  • (final?) massive code refactoring
  • start FPGA in “off” mode until a request for a video stream comes in (keep the device a bit cooler!)
  • make the initial CG tables' load onto FPGA an asynchronous task

2020-04-19: 54

  • bugfix - there was a regression in 53 that caused FPS to be lower than expected as a result of UVC's probe-control negotiation caused by incorrect USB speed values (by mistake a USB 2.0 speed was used for USB 3 calculations!)

2020-04-16: 53

  • “SysInfo” API
  • UVC White Balance temperature limit increased to 7000°K
  • improved stability (no more race condition in UVC handler code)
  • on-board fan now turns on if a module is plugged into SFP+ cage and is active (requires FPGA v.72+)
  • a lot of code refactoring

2020-03-15: 52

  • Previous camera settings' files (*.fws)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


2020-04-16: 72

  • on-board fan is now controlled via bit #6 of control register (0x06)
  • the code is now built using Vivado 2019 (and uses some fewer transistors as a result)

2020-03-15: 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
  • Saturation is no longer done as Vibrancy - that change affected UVC, HvS, LvS
  • 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
/home/adminsub2r/public_html/dokuwiki/data/pages/support/firware_revision_history.txt · Last modified: 2020/05/28 03:34 by Igor Yefmov