Line 102: |
Line 102: |
| | | |
| === V4L2 mode manual === | | === V4L2 mode manual === |
| + | We have saved the code for v4l2 mode in this [https://github.com/veyeimaging/raspberrypi_v4l2 github repository]. |
| + | |
| + | ====Download the driver package==== |
| + | <code>wget <nowiki>https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz</nowiki></code> |
| + | ====Install driver==== |
| + | <code>tar -xzvf raspberrypi_v4l2.tgz</code> |
| + | |
| + | <code>cd raspberrypi_v4l2/release/</code> |
| + | |
| + | <code>chmod +x *</code> |
| + | |
| + | <code>sudo ./install_driver.sh veye_mvcam</code> |
| + | |
| + | ==== Use the suitable veye_vbyone.dtbo ==== |
| + | V-by-One has many configuration options, such as the MIPI rate, the number of MIPI lanes for the camera, the number of V-by-One-HS-TX output lanes, whether IO uses the local mode or remote mode, and the number of coaxial cables used. |
| + | |
| + | The default configuration is as follows: |
| + | |
| + | * MIPI rate: 1.5Gbps/lane |
| + | * Camera MIPI signal: 2 lanes |
| + | * IO mode: Near-end mode |
| + | * Number of coaxial cables: 1 |
| + | |
| + | Please note that these are the default settings, and they can be customized based on specific requirements or preferences. |
| + | |
| + | You can choose the appropriate "veye_vbyone-[option].dtbo" file, rename it to "veye_vbyone.dtbo," and then copy it to the "/boot/overlay" directory. |
| + | |
| + | Alternatively, if you need to use a different configuration for the V-by-One setup, simply refer to the [[Build drivers from source for rpi|camera driver source code compilation guide for the Raspberry Pi platform]]. Modify the "veye_vbyone.dts" file according to your requirements, recompile it to obtain the "veye_vbyone.dtbo" file, and then copy it to the "/boot/overlay" directory. |
| + | |
| + | Once the installation is complete, reboot your Raspberry Pi to apply the changes. |
| + | |
| + | ====Uninstall the driver==== |
| + | If you need to change to Legacy mode, or want to change to another camera module model driver, you must uninstall the current driver first. |
| + | |
| + | <code>sudo ./uninstall_driver.sh veye_vbyone</code> |
| + | |
| + | <code>sudo ./uninstall_driver.sh veye_mvcam</code> |
| + | ====Check system status==== |
| + | Take MV-MIPI-IMX178M as an example. |
| + | |
| + | <code>dmesg | grep mvcam</code> |
| + | |
| + | You can see the camera model and the version of the camera probed during the Linux boot phase. |
| + | |
| + | <code>camera is: MV-MIPI-IMX178M</code> |
| + | |
| + | <code>firmware version: 0x1080102</code> |
| + | |
| + | And the /dev/video0 node exists, which proves that the camera status is normal. |
| + | ====v4l2-ctl application examples==== |
| + | Please refer to the corresponding section in the article on [[Mv series camera appnotes 4 rpi|How to use MV series camera modules on the Raspberry Pi platform]]. |
| + | |
| + | === Legacy mode manual === |
| + | We store the code for legacy patterns in this [https://github.com/veyeimaging/mvcam_raspberrypi github repository]. |
| + | |
| + | ====Download the software package==== |
| + | <code>git clone <nowiki>https://github.com/veyeimaging/mvcam_raspberrypi.git</nowiki></code> |
| + | |
| + | Add executable permissions: |
| + | |
| + | <code>chmod +x -R ./mvcam_raspberrypi/</code> |
| + | ====Software package main content introduction==== |
| + | camera_i2c_config:Automatically recognizes different Raspberry Pi board types and controls the power on pins to power the camera. |
| + | |
| + | vbyone_i2c_init.sh: Script for initializing and configuring the V-by-One link. |
| + | |
| + | mv_raspicam:Realize image preview, image saving and other functions. |
| + | |
| + | mv_mipi_i2c.sh:Scripts for reading and setting camera parameters via i2c protocol. |
| + | |
| + | ==== Initialize the V-by-One link ==== |
| + | First, execute the vbyone_i2c_init.sh script. |
| + | |
| + | Instructions for using the vbyone_i2c_init.sh script: |
| + | |
| + | <code>Use the I2C command to initialize the SERDES channel of V-by-One.</code> |
| + | |
| + | <code>Usage: ./vbyone_i2c_init.sh</code> |
| + | |
| + | <code>options:</code> |
| + | |
| + | <code> -b [i2c bus num] i2c bus number,default 10</code> |
| + | |
| + | <code> -n [coax number] coax number [1,2],default 1</code> |
| + | |
| + | <code> -s [camera mipi datarate] 1500 means:1500Mbps/lan; 1188 means: 1188Mbps/lan</code> |
| + | |
| + | <code> -l [camera lan number] 2 or 4</code> |
| + | |
| + | <code> -r [io remote or local] 0 means use io locally(on TX side); 1 means use io remotely(on RX side)</code> |
| + | |
| + | <code> -h print this help</code> |
| + | |
| + | Once the V-by-One link is initialized, you can use the mv_mipi_i2c.sh script to read the camera's version number and confirm whether the camera registers are accessible correctly. |
| + | |
| + | Please refer to [[Mv series camera appnotes 4 rpi|How to use MV series camera modules on the Raspberry Pi platform]] for more usage. |
| + | |
| + | === Local mode and Remote mode of IO === |
| + | The IO of V-by-One-HS_KIT can be configured to local mode and remote. These two modes are only applicable to MV series cameras. |
| + | |
| + | ====Local mode==== |
| + | Access the corresponding IO of the MV camera locally at the TX end of V-by-One. |
| + | {| class="wikitable" |
| + | !MV Cam pin |
| + | !TX pin |
| + | !function |
| + | |- |
| + | |TriggerIN_IO |
| + | |GPIO0 |
| + | |trigger in |
| + | |- |
| + | |OUT_IO1 |
| + | |GPIO2 |
| + | |Strobe/userout |
| + | |- |
| + | |OUT_IO2 |
| + | |GPIO3 |
| + | |Strobe/userout/triggerout |
| + | |} |
| + | ====Remote mode==== |
| + | Remote access to the corresponding IO of the MV camera is possible at the RX end of V-by-One. |
| + | {| class="wikitable" |
| + | !MV Cam pin |
| + | !TX pin |
| + | !RX pin |
| + | !function |
| + | !Direction |
| + | |- |
| + | |TriggerIN_IO |
| + | |GPIO0 |
| + | |GPIO0 |
| + | |trigger in |
| + | |RX-->TX |
| + | |- |
| + | |OUT_IO1 |
| + | |GPIO2 |
| + | |GPIO2 |
| + | |Strobe/userout |
| + | |TX-->RX |
| + | |- |
| + | |OUT_IO2 |
| + | |GPIO3 |
| + | |GPIO3 |
| + | |Strobe/userout/triggerout |
| + | |TX-->RX |
| + | |} |
| + | |
| + | === Common issue === |
| + | |
| + | * Do not execute i2cdetect |
| + | |
| + | After system initialization, avoid using the i2cdetect command to detect address devices, as it may disrupt the established SerDes link. |
| + | |
| + | ===Document History=== |
| + | |
| + | *2023-07-30 |
| + | |
| + | First release version. |