Controlling the camera is done via writing “registers” - think of them as address locations. There are generally 4 ways to interface with the camera from a host:
- this one is automagically supported by any UVC
1.1 compliant OS
, which in the year 2017 would be “any modern OS
”. This interface covers the universally standardized controls for USB Video Class
direct I²C access via Cypress's FX3 interface, using control port
. This allows access to all sensor's registers (at your own risk!). For more information search the web for documentation on the sensor in your camera (as of October 2017 that would be OmniVision 10823 sensor
FX3 Host Vendor Command Interface - this interfaces with the Cypress's FX3
I²C Access - a “window” into a host of additional commands that are performed on FPGA
and (sometimes) are just a pass-through to the sensor's I²C
The last two (FX3 HVCI and FPGA I²C) are described in FX3 HVCI and FPGA I²C commands.
If you are set on writing your own UI and don't want to be bothered too much with figuring out how to communicate with the camera you have an option of using the SUB2r-lib library.