User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
support:firware_revision_history [2020/03/17 15:30] Igor Yefmovsupport:firware_revision_history [2022/04/04 23:32] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Firmware revision history ====== ====== Firmware revision history ======
 +
 +===== Compatibility matrix =====
 +
 +  * ''✔'' - fully compatible
 +  * ''•'' - mostly compatible (a feature or two may be inaccessible but otherwise [[https://www.youtube.com/watch?v=S-LltgOtFSg|"ol iz vel"]])
 +  * empty cell - not supported (major differences in how the two modules interact with each other)
 +
 +^  \(_{FX3}\) \ \(^{FPGA}\) ^  70  ^  71  ^  72  ^  73  ^
 +^  51 |  ✔  |       |
 +^  52 |    ✔  |  •  |  •  |
 +^  53 |    •  |  ✔  |  •  |
 +^  54 |    •  |  ✔  |  •  |
 +^  55 |    •  |  ✔  |  •  |
 +^  56 |    •  |  ✔  |  •  |
 +^  <del>57</del> |  |  |  |  |
 +^  58 |    ✔  |  ✔  |  ✔  |
  
 ===== FX3 ===== ===== FX3 =====
-==== 52 ==== +==== Upcoming: ==== 
-  * **Previous settings' files are INCOMPATIBLE with this new release** +  * USB descriptors 
-  * Support for the "true" 2x2 binning done on the sensor itself (requires FPGA v. 71+) +    * USB descriptors now correctly conform to UVC 1.1 standard 
-  * Color Grading writes into FPGA are now processed asynchronously (for example an LvL full load results in 1,345 I²C bus requests!)+    * Explicitly specify the Color mode in UVC descriptors 
 +    * the camera is now properly classified as a USB “Composite device” 
 +    * Set the end-point bulk service interval parameter to 0 for Video IN EP (as per USB spec) 
 +    * Preliminary work on supporting (upcoming) USB 2.x High (480 Mbps) and Full (12 Mbps) speeds 
 +      * Specified USB 2.x USB descriptors and supporting structures 
 +      * added handler for GetDescriptor() for "other configuration" 
 +    * Preliminary work on supporting driver-less Windows operation via the use of WINUSB device type 
 +    * Correct the USB BOS descriptor's alignment and padding 
 +    * Correct the %%VideoProbeAndControl's%% alignment and padding 
 +    * Correct the MS OS Platform Capability descriptor's alignment and padding 
 +    * Fixed a few issues reported by USB-IF's “CV testing” conformance testing tool 
 +  * Bug fixes 
 +    * (FINALLY!) Found the root cause for one of the longest standing "random bugs" that was causing video start issues 
 +    * DPC calibration procedure no longer forces the on-board fan to be turned off 
 +    * Fixed a bug in FPGA re-programming ((the code was failing to re-init the I/O matrix to allow the re-programming)) 
 +  * UVC functionality 
 +    * set YUY2 as the preferred video format (instead of NV12) for both USB and SDI/HDMI output 
 +    * introducing support for UVC GAIN control (of course manually modifying the UVC GAIN causes the Auto-exposure to get turned off) 
 +    * Auto white-balance is greatly simplified (and performs better) 
 +      * when turning AWB on - set the initial gains to sensible defaults 
 +      * AWB is noticeably less hectic with the introduction of hysteresis use 
 +      * AWB is not "temperature table-based" and is far less likely to misinterpret the "true white color" even in the craziest of environments lit by some random color LEDs ;-) 
 +    * AE and AWB are much more responsive (for a short time) when a need for correction is detected (dynamically adapt the effective interval based on activity) 
 +    * fixed stroboscope effect caused by ISP running way too fast for its own good (auto-exposure) 
 +    * do not auto-restart the video when handling Clear Feature endpoint request 
 +    * removed UVC eXtension Unit (currently unused) 
 +  * New features and improvements 
 +    * Improved detection of SFP+ module insertion 
 +    * (Better) support for FPGA version 73 
 +      * re-worked ISP defaults for the new video pipeline implementation 
 +      * LVL color grading is now much-much faster 
 +        * With new LVL defaults 
 +    * New API to store Color Grading defaults on FX3 ((in a centralized place, accessible by SUB2r-lib and, consequently, client UI,  
 +like SCC)) ((utilizes [[code:fx3_hvci_and_fpga_i_c_commands#xb1_-_bulk_color_grading|Bulk CG API]] to facilitate this)) 
 +    * a few rounds of stability improvements 
 +    * finally figured out a usable way to display API error code in fatalError() handler by using flashing LED, where red flashes are for the "hundreds" of the error number, green ones are for the number of "tens", and the blue pulses are for single digits of that API error code. So it is now humanly possible to tell the actual internal API error code when the device goes fubar (see "Debugging" section for how to manually trigger an internal fatal error with a code 
 +  * Debugging (you don't really care about this one) 
 +    * a new API (([[code:fx3_hvci_and_fpga_i_c_commands#xfa_-_debug_get_internal_struct|see spec]])) is introduced for debugging purposes that allows access to various USB descriptors 
 +    * (internal) improvements to logging 
 +    * performance stats are available via API (spec to be finalized) 
 +    * yet another new API (spec to be finalized) to access internal global state variables of the FX3 code 
 +    * writing a value into ''wValue'' during "BL check" calls fatalError() with the provided code - mostly for debugging 
 + 
 +==== Cancelled: 58 ==== 
 +  * <del>Preliminary work on supporting USB 2.x High (480 Mbps) and Full (12 Mbps) speeds</del> 
 +  * <del>Preliminary work on supporting driver-less Windows operation via the use of WINUSB device type</del> 
 +  * <del>LVL color grading is now much-much faster (requires FPGA version 73)</del> 
 +  * <del>New "Debug" APIs, [[code:fx3_hvci_and_fpga_i_c_commands#fx3_api_reference|refer to API spec]]</del> 
 +  * <del>Fixed a bug in FPGA re-programming (the code was failing to re-init the I/O matrix to allow the re-programming)</del> 
 +  * <del>Correct the USB BOS descriptor's alignment and padding</del> 
 +  * <del>Correct the //%%VideoProbeAndControl's%%// alignment and padding</del> 
 +  * <del>Correct the //MS OS Platform Capability// descriptor's alignment and padding</del> 
 +  *<del> New LVL defaults</del> 
 +  * <del>New API to store Color Grading defaults on FX3 (in a centralized place, accessible by SUB2r-lib and, consequently, client UI, like SCC)</del> 
 +  * <del>YUY2 is now the preferred video format (was NV12)</del> 
 +  * <del>Explicitly specify the //Color mode// in UVC descriptors</del> 
 +  * <del>Set the //end-point bulk service interval// parameter to ''0'' for Video IN EP (as per USB spec)</del> 
 +  * <del>Fixed a few issues reported by USB-IF's "CV testing" conformance testing tool</del> 
 + 
 +==== 2020-06-01: 57 ==== 
 +  * <del>DPC calibration procedure no longer forces the on-board fan to be turned off</del> 
 +  * <del>introducing support for UVC GAIN control (of course manually modifying the UVC GAIN causes the Auto-exposure to get turned off)</del> 
 +  * <del>USB descriptors now correctly conform to UVC ''1.1'' standard</del> 
 +  * <del>the camera is now properly classified as a USB "Composite device"</del> 
 +  * <del>EP0 control transfer max packet size has been increased from 512 to 1024 bytes for USB %%SuperSpeed%% mode</del> 
 +  * <del>(internal) improvements to logging</del> 
 +  * <del>another round of stability improvements</del> 
 +  * <del>prep. work is done for (upcoming) USB 2.0 support</del> 
 +  * <del>a new (for now undocumented) API is introduced for debugging purposes that allows access to various USB descriptors</del> 
 + 
 +==== 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" 2x2 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 "powerline frequency" support (50/60Hz)
   * UVC "white balance temperature control" support in range 2000°..6500°K   * UVC "white balance temperature control" support in range 2000°..6500°K
Line 31: Line 142:
  
 ===== FPGA ===== ===== FPGA =====
-==== 71 ==== +==== upcoming: ==== 
-  * Support for the "true" 2x2 binning done on the sensor itself (requires FX3 v. 52+)+  * Added SVS and HVL color grading modes (**requires FX3 v. 58+**) 
 +  * LVL interpolation is now done in FPGA, moved from FX3 (**requires FX3 v. 58+**) 
 +  * New UVC and Color Grading defaults 
 +  * UVC Brightness + UVC Contrast + CG LVL are now combined together (optimization) and are at the front of the imaging pipeline 
 +  * A fix for the "first column" de-bayering to get rid of the unwanted visual artifacts 
 +  * LVL and HVL color gradings now operate on relative (adjustment) values, instead of absolute (replace) ones. **This is a breaking change for saved config files** 
 + 
 +==== 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" 2x2 binning done on the sensor itself (**requires FX3 v. 52+**)
   * Corrected "timing" issues introduced some time ago by HSL pipeline implementation   * Corrected "timing" issues introduced some time ago by HSL pipeline implementation
-  * Saturation is no longer done as Vibrancy - that change affected UVC, HvSLvS+  * Saturation is no longer done as Vibrancy - that change affected UVC, HVSLVS
   * ground work is done for "FPGA test patterns" - similar to "sensor test patterns" but generated at various key points in the FPGA imaging pipeline   * 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   * .gitignore enhancements in an effort to bring the size of the repo significantly down

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information