I am trying to collect synchronized frame captures from two cameras using a TX2. I would like to use small inexpensive CSI-2 cameras if possible.
I have a TX2 dev board, and I am familiar with the products from Leopard and E-Con systems that enable simultaneous triggering and use of multiple CSI-2 cameras on the dev board. However, the dev board is way too big for my eventual application; I will need to use a much smaller carrier board such as a ConnectTech Elroy or something like that. The Leopard and E-Con systems cameras plug into the J-22 connector on the dev board–this connector does not exist in the Connect Tech offerings.
When I asked Leopard about using their cameras on the ConnectTech board, they cast doubt on whether their cameras would work at all on a different board–they seemed to think that ConnectTech would have to provide drivers for their (Leopard’s) camera for it to work. I have asked E-Con similar questions but have not heard back from them yet.
I’m kind of baffled, being primarily a software developer that is used to high level standards like USB and GiGE, where the camera vendors supply API’s that use the interface as a transport–apparently CSI-2 doesn’t fit this description? I’ve done a lot of googling and looking through the forums, and its difficult to know where to find out more information regarding how to approach my goals.
It’s difficult for me to even frame a coherent question, but does anybody have relevant experience or pointers to information that would explain the technical issues with what I am trying to do?
To amplify a little more what I am trying to accomplish, I do not need motion video; simultaneous synchronized frame captures at a reasonably high rate will be OK. I am pretty confident I could acquire the necessary imagery using Point Grey USB3 cameras–but I really need to use something smaller and less expensive.
We use a TX-1 with 3 Leopard Imaging IMX-274 sensors and a small Leopard Imaging carrier card. This config works. We have a TX2 as well, but last I checked drivers were not available.
The Leopard Imaging carrier card replaces the NVidia dev board in our application with the TX-1. It is MUCH more compact, but lacks many of the I/O Options.
ConnectTech offers support for the IMX-274 Leopard Imaging cameras with our TX2 Board Support Package (Current Release is V105 for L4T28.1) on both our Sprocket and Spacely carriers. The Spacely Carrier has 6 I-PEX MicroCoax Interface connectors used on the Leopard imaging cameras, We currently have 6 IMX-274 cameras functioning on the TX1 and 3 (due to the current driver limitation) functioning on the TX2 simultaneously.
For more information please check our product pages for the Sprocket and Spacely
We also had ben able to use the imx219 sensor (the picamera) on the TX1 and TX2. The Leopard imaging boards are also a great option. In terms of the syncronized cameras, you might need special hw to get them to be on perfect sync.
We developed a internal version of the driver for the IMX219 on TX2. We are able to capture properly using V4L2 on Auvidea boards but found some issues capturing nvcamerasrc . We will be happy to share it with the community, please contact us to support@ridgerun.com to get access to it.
By default, e-CAM30_HEXCUTX2 has an adaptor board (e-CAMHEX_TX2ADAP) to interface with the J22 connector on the Jetson TX1/TX2, this cant be directly interfaced with the Connect Tech’s board. We shall design a new adapter board and customize to port the driver for integrating with the Connect Tech’s board. For more information please contact sales@e-consystems.com
@jhowland I’m looking for a synchronized 6 camera setup. Do you mean that you need special sync hw for the Leopard imaging boards, but not for the auvidea/picamera combo? Or do you need it for both setups?
I haven’t gone through all the specs yet but from what I can tell the picameras don’t have their own oscillator, but a PLL from host clock and the GPIO pin (which I assume is used for triggering?) shared for all six cameras so it should be able to synchronize without drift… but then again I might be wrong :)
To synchronize the sensors, you need a camera/sensor with GPIO input for frame start, and you need some timer to generate that pulse, and you need to wire that up, as well as update the driver to start the timer.
This is a camera/sensor issue, not a board issue.
@josejich, thanks, I will ask for the IMX219 driver!
I meant that you need special hardware if you want cameras that capture frames in sync keeping the pacing on the frames captured by the cameras connected to the same board, for example:
Depending on your requirements, if you need to have several cameras across several boards syncronized without a tight pacing a PTP solution might be suitable; but you this relies on a SW based solution for the Auvidea or Leopard boards. We had explore this kind of solutions (SyncSnap Application | Camera SoC | RidgeRun Developer) and, as I said, depending on your requirements it might be suitable.