FFC deployment guide
Overview
OAK FFC baseboards and camera modules are great for prototyping flexibility. Since cameras are modular, you can place them at various stereo baselines and select the camera module based on your project requirements (resolution, shutter type, FPS, optics).OAK FFC Baseboards
OAK FFC baseboards are OAK devices that have onboard VPU and have exposed FFC connectors, to which you can connect OAK FFC camera modules. Additionally they expose interfaces like UART, so further expansion is possible.Here's the list of our current OAK FFC baseboards:PoE devices:USB devices:FFC Camera Modules
Here's the list of already built OAK FFC camera modules, which you can easily connect to any OAK FFC baseboard with a flat flexible cable. We are working towards offering OAK FFC camera modules for all supported CCMs.OAK FFC Camera Module | Shutter | Resolution | Notes |
---|---|---|---|
OAK-FFC-IMX378 (AF) | Rolling | 12MP | Color, Auto-Focus |
OAK-FFC-IMX378-FF | Rolling | 12MP | Color, Fixed-Focus |
OAK-FFC-IMX378-W | Rolling | 12MP | Color, Fixed-Focus, Wide FOV |
OAK-FFC-OV9282 | Global | 1MP | Mono, Fixed-Focus |
OAK-FFC-OV9282-M12 | Global | 1MP | Mono, M12 mount |
OAK-FFC-OV9282-W | Global | 1MP | Mono, Fixed-Focus, Wide FOV |
OAK-FFC-OV9782-M12 | Global | 1MP | Color, M12 mount |
OAK-FFC-OV9782-W | Global | 1MP | Color, Fixed-Focus, Wide FOV |
OAK-FFC IMX582 | Rolling | 32MP | Color, AF |
OAK-FFC-IMX577-M12 | Rolling | 12MP | Color, M12 mount |
OAK-FFC-IMX214-W | Rolling | 13MP | Color, Fixed-Focus, Wide FOV |
OAK-FFC-AR0234-M12 | Global | 2.3MP | Color, M12 mount |
OAK-FFC-IMX462 (M12) | Rolling | 2MP | Color, Fixed-Focus |
Arducam HQ Cam for RPi, IMX477 | Rolling | 12.3MP | Color, CS mount lens |
Raspberry Pi Camera Modules
Raspberry Pi sells a number of camera modules that are compatible with the OAK FFC baseboards. RPi cameras can be connected to the FFC baseboard via the RPi Camera Adapter.RPi Camera Module | Sensor | Shutter | Pixels | Notes |
---|---|---|---|---|
RPi Camera Module 3 | IMX708 | Rolling | 12 MP | Color, Auto-Focus. Initial (WIP) integration |
RPi Camera Module 2 | IMX219 | Rolling | 8 MP | Color, Fixed-Focus. Requires imx219 branch |
RPi High Quality Camera | IMX477 | Rolling | 12 MP | Color, C/CS mount |
RPi Global Shutter Camera | IMX296 | Global | 1.6 MP | Color, C/CS mount. Might have color artifacts, see workaround here |
The UC-244 Adapter doesn't work out-of-the-box with the RPi HQ and Global Shutter cameras. Additional steps are required and described here.
FFC Camera Mounting
OAK-FFC Kit is a great way to mount your OAK FFC camera modules. It allows you to easily customize both horizontal and vertical stereo baseline. You can buy it from our shop. For usage, see instruction here.Mounting adapters can also be found on Github.M12 Mount Lenses
Some of the FFC camera modules above have M12 mount, so you can use a variety of different lenses (for custom FoV), for example:- Kit of 10 different M12 lenses (for testing purposes),
- M25156H14 (HFoV: 141°),
- M40180H10 (HFoV: 100°),
- M2506ZH04 (HFoV: 33°),
- and others.
M12 Selectable FOV
Tests were done using 2x OAK-FFC-IMX477-M12 and two different M12 lenses: 20° FOV and 190° FOV.Side-by-side comparison of narrow and wide FOV M12 lenses on OAK-FFC-IMX477-M12:Test setup from birds view:Test setup from birds view
Developing with the OAK FFC
1
Installing requirements
Depending on which FFC device you are using, you can check the getting started guide for either:After installing the dependencies and depthai library, you can start developing with the OAK FFC devices.
2
Testing the configuration
After connecting cameras to the baseboard, you can use the utilities/cam_test.py script to quickly test whether cameras are working as expected. By default, it will try to run 2x mono cameras on 2-lane MIPI ports B (left) and C (right) and 2x color cameras on port A (RGB) and D (4-lane MIPI ports).If you have different cameras connected, you can specify which camera types to use with the For example, if you have 3x mono cameras connected to ports A, B, and C, you can run the following command:
--cameras
argument:Command Line
1cam_test.py [-h] [--cameras <BoardSocket>,<CameraType>]
Command Line
1python3 cam_test.py --cameras rgb,m right,m left,m
3
Use cameras in code
Similarly, to add such configuration into your script you can use the following code:
Python
C++
Python
Python
1cam_a = pipeline.create(dai.node.MonoCamera)
2cam_a.setBoardSocket(dai.CameraBoardSocket.CAM_A) # Same as CameraBoardSocket.RGB
3cam_a.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P)
4
5cam_b = pipeline.create(dai.node.MonoCamera)
6cam_b.setBoardSocket(dai.CameraBoardSocket.CAM_B) # Same as CameraBoardSocket.LEFT
7
8cam_c = pipeline.create(dai.node.MonoCamera)
9cam_c.setBoardSocket(dai.CameraBoardSocket.CAM_C) # Same as CameraBoardSocket.RIGHT
10
11cam_d = pipeline.create(dai.node.MonoCamera)
12cam_d.setBoardSocket(dai.CameraBoardSocket.CAM_D)
Extending functionality
PSRBS Connector
The OAK-FFC-4P has a PSRBS connector, which allows users to easily connect the OAK camera to the external logic. You can use PSRBS cable to connect to this connector.Pin | Name | Description |
---|---|---|
1 | VDD_5V | 5V power input/output |
2 | STROBE | Strobe signal output, can drive external lighting (projector, illumination lights, etc.) |
3 | MODULE_nRST | Allows resetting the OAK-FFC from an external source (GND will reset the RVC2, same as RST button) |
4 | BOOT_SEL | Allows selecting whether to boot into the bootloader (1.8V will skip bootloader, same as BOOT button) |
5 | COM_AUX_IO2 | 2-lane MIPI FSYNC signal input/output |
6 | FSIN_4LANE | 4-lane MIPI FSYNC signal input/output |
7 | GND | GND power input/output |
Connecting an IR Module
If you have an OAK-FFC-4P R5 or newer and you wish to use the OAK-FFC-IR module, you must first configure which camera will drive the STROBE signal to the connector to which you connect your IR module. The connector is located to the left of the switch (J12, see the image below).If you have a stereo pair on CAM_B and CAM_C and want to have a dot projector synced with the stereo pair, you should move the switch 2 or 3 up (ON). Keep in mind that only one switch can be up at a time.UART
Some OAK FFC devices have UART exposed, so you can use it for communication with other devices. For example, you can connect a GPS module to the UART port and get the GPS data in your application.To use UART in your application, checkout the UART Example.UART Pinout
Pinout depends on the board you are using. Here are the UART pinouts for the OAK-FFC devices:OAK-FFC Device | TX | RX |
---|---|---|
OAK-FFC-4P | 15 | 16 |
OAK-FFC-4P POE | / | / |
OAK-FFC-1P POE | 45 | 46 |
OAK-FFC-3P | / | / |
SD Card support
SD card functionality is community support only and should still work on separate depthai branch but won't be updated frequently.You can use the SD card to store data (logs/images/configs) from the running device - see example.Need assistance?
Head over to Discussion Forum for technical support or any other questions you might have.