Open-source hardware USB Type-C industrial camera features Lattice Crosslink NX FPGA

Gaurav Singh, acting as Circuit Valley, has designed an open-source hardware USB 3.0 Type-C industrial camera with three boards: one to capture data through a CMOS sensor,  another based on a Lattice Crosslink NX FPGA to handle image processing, and finally, a board equipped with an Infineon FX3 USB 3.0 controller for sending the video data to the host.

This design allows the DIY camera to be extremely flexible, as for instance, you could keep the FPGA and USB board, and simply change the sensor board for a better/different camera. A 3D printable enclosure is also provided, and the camera supports C-mount lenses, so the lens can also be easily changed as required. Here’s what the final result looks like.

Open-source hardware USB Type-C camera

Camera specifications:

  • Sensor board
    • Sensor for example Sony IMX290, IMX327, or IMX462
    • Oscillator
    • FPGA/Host board interface – High-density connector with I2C, 4-lane MIPI with clock, I2C, a few other control signals, and power.
    • Voltages – 1.2V, 1.8V, and 2.9V
  • FPGA board
    • FPGA – Lattice Crosslink NX LIFCL-40 with 39k logic cells in 256caBGA package
    • System Memory – 2x 16Mybte RAM
    • FPGA config flash memory
    • 2x high-density connectors to connect to the sensor and USB boards
    • Voltages – 1.0V and 1.8V
  • USB board
    • USB 3.0 controller – Infineon (previously Cypress Semi) CYUSB3014 USB 3.0 Superspeed controller
    • Storag – EEPROM (for configuration)
    • USB – 1x USB 3.0 Type-C connector + USB 3.0 mux to support connector reversal
    • Voltages – 1.2V, 1.8V, and 3.0V
    • Power Input – 5V via USB-C port

Open-source hardware camera block diagrams

You’ll find the hardware design files (PDF and Protel schematics, PCB layout, Gerber) for all three boards, as well as the firmware running on the USB 3.0 controller on Github. The FPGA code is supposed to be there too, but I could not find it at the time of writing. He also designed an enclosure and a mount fitted with a CS to C mount ring in Fusion 360 which you’ll also find in the “hardware” folder of the Github repo.

He’s tested the camera with an IMX219 sensor that outputs raw Bayer data over MIPI CSI, and the FPGA will convert that to RGB data first through a Debayer, before converting the RGB data to YUV, and sending that to the USB 3.0 board. The FPGA will also manage automatic control over exposure and white balance.
FPGA USB 3.0 camera

More details, and plenty of photos, can also be found on Circuit Valley website. There does not seem to be any plan to manufacture or crowdfund the open-source hardware camera.


Share this:

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

ROCK 5 ITX RK3588 mini-ITX motherboard
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
1 year ago

More details

1 year ago

i went thorugh the project, if i am not wrong, i could not find the code or project of FX3 or the HDL of FPGA, in what way this can be called open source,you mean just hardware ?

Khadas VIM4 SBC