What is CSI?
CSI (Camera Serial Interface) is a serial bus designed for high-resolution cameras in mobile devices and embedded systems. This interface was developed by the MIPI (Mobile Industry Processor Interface) Alliance and enables high-speed, reliable transfer of image and video data between the processor and the camera sensor. It is commonly preferred in cameras used in smartphones, drones, and mini handheld computers.Steps
Making the Cable Connection
The cable between the camera and the Gemstone O1 development board must be connected correctly.
Adding an Overlay
The relevant overlay must be added to the uEnv.txt file located in the boot partition for the CSI camera to work.
1. Making the Cable Connection
To properly connect the cable between the camera and the Gemstone O1 development board, you must make a connection as shown in the photo below. You can connect the CSI cable to either socket; the important thing here is that you must add the overlay that activates the CSI of the socket you plugged into.
2. Adding an Overlay
You can view the overlays of supported cameras using the following command.uEnv.txt file located in the boot directory using the nano text editor from the terminal interface.
uEnv.txt file will contain definitions like these.
overlays= leaving a space. For example, when you connect the IMX219 camera to the CSI0 connector (the connector that is far from the Ethernet port).
uEnv.txt file will look like this. You must place the appropriate file name in the <file-name> section.
3. Rebooting the Board
The development board should be restarted using thereboot command.
4. Running the gem-camera-setup Script
The camera connected to the board should be initialized via the following command.
5. Camera Settings
Initially, the following command is used to establish proper communication between the kernel driver of a camera sensor and user space applications. When the command is executed, the video output of the IMX219 camera sensor is set to a resolution of 640x480 and the SRGGB8 format. This setting ensures that applications that will use this data stream in the next step (e.g., a camera application or gstreamer) receive the correct data.Indoor Lighting
Natural Light

