V-Link leverages GMSL2 to extend Raspberry Pi camera with up to 15-meter cable (Crowdfunding)

Videtronic’s V-Link is a compact solution designed to extend the range of Raspberry Pi MIPI DSI cameras using GMSL2 (Gigabit Multimedia Serial Link v2)  technology with up to 15-meter cables. We covered this type of solution in several NVIDIA Jetson Nano development kits and embedded computers, but never for the Raspberry Pi SBC.

The V-Link relies on a MAX96717-based MIPI CSI-to-GSML2 board that connects to the MIPI CSI connector on the Raspberry Pi and a MAX96714-based GSML2-to-MIPI CSI board connected to the Raspberry Pi Camera Module. The solution provides an alternative to THine THSER101 Raspberry Pi camera extension kit that works with LAN cables up to 20 meters long.

V-Link Raspberry Pi GSML2 camera

V-Link specifications

  • Transmitter board
  • Receiver board
    • Analog Devices MAX96714 Single GMSL2/GMSL1 to CSI-2 Deserializer
    • GSLM2 input connector
    • MIPI CSI output connector to Raspberry Pi Camera Module
  • Compatibility
    • SBC – Raspberry Pi 4, 5, Zero 2, and NVIDIA Jetson Orin
    • Cameras – Raspberry Pi Camera Modules 1, 2, 3, AI, and HQ

Raspberry Pi Camera Modules GSML2

While MIPI CSI flat cables are usually limited to a few centimeters, the GSML2 cables can extended up to 15 meters and can be used for robotics, drones, or IoT projects. One practical example, we’ve already seen for camera extension cables is a Raspberry Pi Telescope with the Raspberry Pi SBC staying indoors and the telescope operating outdoors in the cold or heat.

Besides the two boards and the GMSL2/FPC cables, you’ll also need to install the V-Link drivers on Raspberry Pi OS which will soon be available on GitHub along with instructions explaining how to change the /boot/firmware/config.txt configuration files and copy some extra overlay files. Once it’s done you can use the kit with the same software typically used with Raspberry Pi Camera modules such as RPICam-apps or Libcamera2.

Videtronic has launched the V-Link GSML2 solution for Raspberry Pi on Kickstarter with a 1000 Euros funding goad. Rewards start with the 140 Euros ($147) “V-link Hobby kit” that includes one set of V-link boards, a 10-meter Fakra cable, and a set of FPC cables. Other perks feature multiple kits and optionally a Raspberry Pi 5 SBC. Shipping adds 11 Euros to Poland where the product is made, and 35 Euros to other countries. Backers should expect shipping to start in April or May 2025. It’s quite pricier than the THine THSER101 we previously mentioned ($60) but did not work with the Raspberry Pi 5 and Camera Module 3. THine came up with the new THSER102/THSER102A supporting those and sold on Digikey for $58.78 with a 10-meter cable and also listed on Amazon.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

Radxa Orion O6 Armv9 mini-ITX motherboard

2 Replies to “V-Link leverages GMSL2 to extend Raspberry Pi camera with up to 15-meter cable (Crowdfunding)”

  1. I regularly use a MIPI cable that has 50cm, I don’t know if that counts as “few”.

    I would say that if you really need 3+ metres this kind of solution is a necessity. There are also the HDMI cable adaptor boards, which just hande physical cable conversion (i.e. no protocol conversion) and those works for HDMI cable lengths (of 1 to 2 metres).

    It is unfortunate that this needs drivers and doesn’t simply wrap and unwrap MIPI on each side.

    1. Hi, our drivers essentially setup GMSL2 in the “wrap / unwrap” mode. Drivers are required to setup parameters like amount of mipi lanes used and link frequency. Thanks to the driver and media-controller we start / stop our devices when camera is started / stopped. Furthermore, MAX96717 and MAX96714 feature backlink communication channel for configure camera itself. Thanks to this system is able to fully driver image sensor without additional software needed. With this approach and simple devicetree You are able to setup all libcamera supported image sensors. 

      Even though our drivers are not yet public (will at the time of product launch, under GPL license), here is a devicetree snippet which might give some insight on how things work:

      i2c_frag: fragment@100 {
      target = <&i2c_csi_dsi>;
      _overlay_ {
      #address-cells = <1>;
      #size-cells = <0>;
      status = “okay”;

      deserializer: deserializer@4C {
      status = “okay”;
      compatible = “videtronic,v-link-deser”;
      reg = <0x4C>;
      ports {
      #address-cells = <1>;
      #size-cells = <0>;

      port@0 {
      reg = <0>;
      deserialiezr_gmsl_in: endpoint {
      data-lanes = <1 2>;
      remote-endpoint = <&serializer_gmsl_out>;
      };
      };

      port@1 {
      reg = <1>;
      deserializer_csi_out: endpoint {
      data-lanes = <1 2>;
      link-frequencies = /bits/ 64 <500000000>;
      remote-endpoint = <&csi_ep>;
      };
      };
      };

      i2c-gate {
      #address-cells = <1>;
      #size-cells = <0>;
      status = “okay”;
      serializer: serializer@42 {
      status = “okay”;
      compatible = “videtronic,v-link-ser”;
      reg = <0x42>;
      gpio-controller;
      #gpio-cells = <2>;
      #clock-cells = <0>;
      ports {
      #address-cells = <1>;
      #size-cells = <0>;

      port@0 {
      reg = <0>;
      serializer_csi_in: endpoint {
      data-lanes = <1 2>;
      remote-endpoint = <&cam_endpoint>;
      };
      };

      port@1 {
      reg = <1>;
      serializer_gmsl_out: endpoint {
      remote-endpoint = <&deserialiezr_gmsl_in>;
      };
      };
      };

      i2c-gate {
      #address-cells = <1>;
      #size-cells = <0>;
      status = “okay”;

      cam_node: imx477@1a {
      compatible = “sony,imx477”;
      reg = <0x1a>;
      status = “okay”;

      clocks = <&cam1_clk>;
      clock-names = “xclk”;

      VANA-supply = <&cam1_reg>; /* 2.8v */
      VDIG-supply = <&cam_dummy_reg>; /* 1.05v */
      VDDL-supply = <&cam_dummy_reg>; /* 1.8v */

      rotation = <180>;
      orientation = <2>;

      reset-gpios = <&serializer 0 0>;

      port {
      cam_endpoint: endpoint {
      clock-lanes = <0>;
      data-lanes = <1 2>;
      clock-noncontinuous;
      link-frequencies =
      /bits/ 64 <450000000>;
      };
      };
      };
      };
      };
      };
      };
      };
      };

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon EM3562 Rockchip RK3562 SBC with 8 analog camera inputs
Boardcon EM3562 Rockchip RK3562 SBC with 8 analog camera inputs