arrow-left

All pages
gitbookPowered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Raspberry Pi CSI

⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

📖 View Updated Version of This Page →arrow-up-right


⚠️ Important Note: OpenHD does not support ANY autofocus cameras due to their impracticality on equipment with vibrations, such as drones. This restriction includes the official Raspberry Pi V3 lineup.

On the Raspberry Pi, you have the option to choose between two CSI camera modes.

hashtag
1. Broadcom MMAL (Legacy Camera Stack)

The Broadcom MMAL mode is the legacy camera stack. It only works with original Raspberry Pi Foundation cameras or clones that have the security chip. While it offers better latency compared to libcamera, it has been deprecated by the Raspberry Pi Foundation in favor of libcamera. OpenHD uses Broadcom MMAL as the default option, as done in previous OpenHD releases.

hashtag
2. Libcamera

The libcamera mode works with both original Raspberry Pi Foundation cameras and a wide range of other cameras. Generally, you can achieve the same or even better image quality using libcamera by selecting the appropriate CSI camera. However, it might not provide the same latency as broadcom mmal.

You can switch between Cameras using QOpenHD (V_OS_CAM_CONFIG), but it requires a reboot.

Note: Autodetection is not available for identifying whether you've connected a camera supported only by libcamera/libcamera-ardu. You must manually select the appropriate CSI camera mode in QOpenHD for OpenHD to detect your CSI camera.

Note: We use a proprietary version of the libcamera library, which ensures compatibility with arducam and normal libcamera while also providing image adjustments which are normally excluded in gstreamer-libcamera. This version is licenced to OpenHD and not Open Source.

Tip: When choosing between the camera modes, consider your latency and image quality requirements along with the compatibility of the camera you are using.

RPI HDMI to CSI

⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

📖 View Updated Version of This Page →arrow-up-right


Name
Sensor
Field of Use
Price

CMOS

hashtag
Overlay

HDMI cameras require the MMAL Overlay.

hashtag
HDMI Input

To use an HDMI Camera, you need an HDMI-CSI Adapter. These adapters enable you to connect cameras with HDMI outputs, allowing the use of a wider variety of cameras beyond the usual Raspberry Pi camera sensor boards. Depending on the camera, this may result in improved picture quality, including support for features like WDR.

Most small/cheap Toshiba chip boards support up to 1080p25 or 1080p30 HDMI camera resolutions on most Raspberry Pi models. The Raspberry Pi Compute Module boards are technically capable of 1080p60, but the necessary driver change to support 1080p60 has not been implemented yet.

Note: If your camera only supports 1080p60 or 4k60 HDMI output, it will not work with the Toshiba boards.

hashtag
Latency Test

A latency test was conducted by Bortek using the Auvidea B102 with a GoPro4 camera.

hashtag
Camera Compatibility

  • GoPro4

  • SJcam M10

  • Canon EOS 700D

Cameras That Do Not Work:

  • Samsung NX500 (1080p60, framerate too high)

  • Canon EOS M (1080i, interlaced output is not supported by these adapters)

hashtag
DCDZ HDMI CSI-2 Adapter

AliExpress link:

This adapter is widely used for OpenHD. It's available through AliExpress and Taobao. Users in the U.S. or Europe may experience delays in obtaining them. For those regions, consider the similar geekworm board mentioned below, available on Amazon.

The adapter is compatible with both Raspberry Pi Zero and full-size Raspberry Pi models, setting it apart from other cards.

hashtag
Geekworm HDMI CSI2 Adapter

Available on Amazon in the U.S., this adapter is similar to the DCDZ adapter mentioned above. Amazon store link: Geekworm store link:

The adapter is compatible with full-size Raspberry Pi models.

hashtag
Auvidea B102

More info:

The Auvidea B102 shares similar capabilities with other adapters, but it's only compatible with the Pi Zero.

hashtag
Auvidea B101

More info:

Similar to other adapters, the Auvidea B101 is compatible with full-size Raspberry Pi models.

hashtag
Lintest Systems PiCapture HD1

More info:

This more complex (and expensive) card supports HDMI like other adapters, as well as analog component input. However, it's unlikely that any drone-worthy camera uses component connections. The adapter includes LEDs to indicate the status of the camera connection.

hashtag
HDMI Cameras

hashtag

A drone-specific HDMI camera with onboard recording to MicroSD, WDR support, and a weight of 60g.

Note that some cameras were shipped without HDMI output. The provided link is reported to be the correct HDMI model.

Radxa Rock5

⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

📖 View Updated Version of This Page →arrow-up-right


hashtag
Overview

As the Rock5 is a distinct platform and MIPI is not a plug-and-play system, we are awaiting official camera releases for compatibility. We are actively dedicating resources to introduce more camera options in the future.

Currently, the camera support is limited to:

Camera
Recommended
Notes

Note 1: There currently appears to be no compatible adapter or camera with this sensor available for the Rock5.

We are working towards expanding the selection of supported cameras and adapters, and we appreciate your patience as we continue to develop and improve camera compatibility

IMX219

1

IMX415*

*

Arducam IMX462 B0333

*

1

Arducam IMX708 B0310

*

1

Good WDR

$75

FF Splitarrow-up-right

Unknown

Good WDR

$75

arrow-up-right
DCDZ HDMI CSI-2 Adapterarrow-up-right
Geekworm HDMI CSI2 Adapterarrow-up-right
Geekworm HDMI CSI2 Adapterarrow-up-right
Auvidea B102arrow-up-right
Auvidea B101arrow-up-right
Technical detailsarrow-up-right
Lintest Systems PiCapture HD1arrow-up-right
FireFly Splitarrow-up-right
Hawkeye Firefly Split Mini Version 4Karrow-up-right

Cameras

⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

📖 View Updated Version of This Page →arrow-up-right


OpenHD supports and recommends the following cameras on the Raspberry Pi:

hashtag
Raspberry Pi CSI cameras

Vendor
Model
Field of use
Price
Overlay

*This cameras use mainly raspivid which is legacy and discontinued. These cameras aren't really recommended for FPV, since V1,V2 of Raspberry cameras do not provide a good image outdoors, and the HQ camera is much bigger and more expensive then smaller versions of it. V1 sensor is also not produced anymore and V2 sensor is about to follow.

hashtag
Thermal/USB Cameras

Name
Lens
Sensor
Resolution
FPS

hashtag
HDMI CSI Adapter

Name
Csi lanes
Resolution

More information about CSI-HDMI can be found .

hashtag
USB Cameras

hashtag
IP Cameras

hashtag
Get your camera supported !

Cameras not listed here may potentionally work, but aren't tested and configured.

We only integrate Cameras which are tested and fitting to the purpose of openhd. If you want to get new cameras supported ask your camera vender to support OpenHD development with their hardware, but contact us first at developer@openhdfpv.org

triangle-exclamation

While many cameras can potentially work, latency is the biggest issue. Please read the Camera pages to fully understand all variables.

triangle-exclamation

When using multiple Cameras you need to choose one Camera-Subsystem, so you can not use libcamera and raspicam at the same time. This means f.e. you can not use an Veye-Camera and an Arducam camera at the same time.

triangle-exclamation

When using multiple Cameras the second camera is using Software decoding and encoding, it is not recommended to use a high quality camera. It is generally made for a thermal camera or something with lower resolutions.

triangle-exclamation

With the upcoming of many new camera's there is one thing we need to mention. OpenHD is not supporting ANY autofocus cameras, since they are basically not usable on equipment with vibrations (like drones), this also includes the Raspberry V3-lineup

We also want to thank our cooperation partners for providing the Team with Prototypes and want to specifically thank for helping us in developing cameras specifically to our need.

circle-info

Supported Cameras *

Can be enabled and used easily (No custom scripting), in case things don't work you can ask us for help.

circle-info

Recommended Cameras **

Among the available options, we highly recommend the top 3 cameras as they offer unparalleled versatility and optimization for OpenHD. These cameras stand out for their exceptional image quality, low latency, extensive feature set, and suitability for professional applications. If you are currently without a preferred camera choice, these top recommendations are guaranteed to provide unique benefits and fulfill your requirements.

HDMI Cameras

⚠️ This documentation is outdated! A current version is available at


The RPI HDMI to CSI adapter provides a means of interfacing HDMI output from cameras to the Raspberry Pi platform. However, it's important to note that this adapter is not officially supported by the Raspberry Pi Foundation, and as a result, it presents certain challenges and limitations. Here's a concise rundown of these quirks:

  1. Encoder Bitrate Control: One notable issue is the unreliable performance of the encoder bitrate control. This often results in fluctuations like overshoot and undershoot in the bit rate. To mitigate this problem, it is recommended to disable variable bitrate and instead manually set a conservative bitrate, such as 8 MBit/s for MCS3 encoding.

  • Resolution and Framerate Configuration: Configuring the resolution and framerate through the adapter can be problematic and may even fail in certain instances. To enhance the likelihood of successful configuration, it is advised to set the camera resolution to match exactly the resolution and framerate output by your HDMI source.

  • Maximum Resolution and Framerate: The Raspberry Pi hardware encoder is constrained to a maximum output of 1080p@30fps or 720p@60fps. Consequently, it's important not to select an HDMI output video signal from your camera that exceeds these limits.

  • Reliable Adapter Detection: For consistent and reliable detection of the HDMI to CSI adapter during boot, it is crucial to sequence the power supply. In practice, ensure that the OpenHD system is powered on after your HDMI camera. This ensures that the adapter receives a valid HDMI input signal prior to the initialization of the Air Pi system.

  • While the RPI HDMI to CSI adapter serves as a bridge between HDMI cameras and Raspberry Pi devices, its unofficial nature can lead to these operational quirks. Users seeking to employ this adapter should be aware of these limitations and implement the recommended workarounds for optimal results.

    openhdfpv.orgarrow-up-right
    📖 View Updated Version of This Page →arrow-up-right

    USB Cameras

    ⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

    📖 View Updated Version of This Page →arrow-up-right


    hashtag
    Overview

    OpenHD has the ability to automatically detect and utilize USB cameras that provide either raw uncompressed or pre-encoded (h264, h265, mjpeg) data streams. However, it's important to note the following potential limitations:

    1. Fixed Encode Bitrate: Cameras with a fixed encode bitrate may not support features like variable bitrate. This could necessitate manual tuning of your connection settings.

    2. Suboptimal Encoding Parameters: Some cameras might have encoding parameters that lead to issues such as increased latency or poor error recovery in your stream. Thoughtful adjustment of these parameters is recommended for optimal streaming performance.

    3. RAW Format Challenges: Cameras that deliver RAW data require software-based encoding, which can impose constraints on achievable resolutions and frame rates. This limitation persists even on powerful platforms like the Raspberry Pi 4.

    By being mindful of these potential challenges, users can make informed decisions about camera selection and configuration to ensure the best possible streaming experience with OpenHD.

    High Quality

    $37

    libcamera_imx519

    Arducam

    low weight,small

    $37

    libcamera_imx477

    Raspberry Pi Foundation

    Normal

    $25

    MMAL

    Raspberry Pi Foundation

    Normal

    $25

    MMAL

    Raspberry Pi Foundation

    HQ

    $50

    MMAL

    Arducam

    Normal

    $75

    libcamera_imx477

    Arducam

    Low Light

    $60

    2

    Arducam

    HQ Mini fixed focus

    $35

    libcamera_imx519

    Arducam

    Low Light

    $30

    libcamera_imx290

    Arducam

    Low Light

    $30

    libcamera_imx327

    Arducam

    Ultra Low Light

    $60

    libcamera_imx462

    VEYE

    Low Light

    $90

    veye_cam2m

    VEYE

    Low

    Germanium

    iRay

    256Ă—192

    25hz

    FLIR Boson 320

    Germanium

    FLIR

    320x256

    9hz/60hz

    FLIR Boson 640

    Germanium

    FLIR

    640x512

    9hz/60hz

    Arducam

    SkyMaster HDRarrow-up-right

    Highest Quality

    $37

    libcamera_imx708

    Hti-201

    Chalcogenide

    Raytheon

    320x240

    9hz

    Hti-301

    Germanium

    iRay

    384x288

    25hz

    HC100Farrow-up-right

    2

    up to 1080p@30fps

    Geekworn C779arrow-up-right

    2

    up to 1080p@30fps

    Geekworm C790arrow-up-right

    4

    up to 1080p@30fps

    more informationarrow-up-right
    herearrow-up-right
    Read herearrow-up-right
    Read herearrow-up-right
    Arducamarrow-up-right

    Arducam

    Infiray T2 search

    Custom Hardware

    ⚠️ This documentation is outdated! A current version is available at openhdfpv.orgarrow-up-right

    📖 View Updated Version of This Page →arrow-up-right


    As part of the larger OpenHD ecosystem, the OpenHD custom hardware project aims to develop a specialized camera designed to work seamlessly with the OpenHD Custom Hardware project.

    The custom cameras will be optimized for use in drone racing and aerial videography applications, offering high-quality imaging capabilities and low latency transmission. They will be designed to integrate seamlessly with the OpenHD Custom Hardware system, providing a complete end-to-end solution for drone enthusiasts.

    The OpenHD custom hardware project is currently in development, and prototypes are being tested and refined to ensure optimal performance and reliability. As the project progresses, the team will be working to create a final version of the cameras that meets the needs of drone racing and aerial videography enthusiasts.

    If you would like to learn more about this project and stay up-to-date on its progress, be sure to visit . The team is always looking for new supporters and contributors to help bring this exciting project to life.

    Special Purpose Cameras

    ⚠️ This documentation is outdated! A current version is available at


    hashtag
    Thermal Cameras

    IP Cameras

    hashtag
    IP cameras

    ⚠️ This documentation is outdated! A current version is available at


    https://www.patreon.com/OpenHDarrow-up-right
    SkyVision Proarrow-up-right
    IMX477Marrow-up-right
    Pi Cam V1 (OV5647)*arrow-up-right
    Pi Cam V2 (IMX219)*arrow-up-right
    Pi Cam HQ (IMX477)*arrow-up-right
    IMX477 Miniarrow-up-right
    IMX462arrow-up-right
    IMX519 MINIarrow-up-right
    STARVIS IMX290arrow-up-right
    STARVIS IMX327arrow-up-right
    STARVIS IMX462arrow-up-right
    IMX 327Earrow-up-right
    IMX307arrow-up-right
    LatencyTest
    hashtag
    Camera Overview

    OpenHD supports a variety of thermal cameras, including the Hti-301, Infiray T2, and others.

    Thermal cameras typically connect via USB and need to be enabled as secondary cameras.

    hashtag
    A Warning

    Thermal cameras are not like ordinary cameras. It's important to review available information about each camera before making any purchase decisions.

    Surprisingly, a thermal camera with a resolution of 204x156 can be notably worse than one with an 80x60 resolution. The entire thermal imaging system matters, from lens material and size to the sensor type, sensor resolution, and image post-processing by the camera.

    Any weak link in the system can severely degrade the image, making it unsuitable for specific uses. Sometimes, this trade-off is acceptable to achieve a lower price point.

    Additionally, remember that while a thermal camera might be useful for close-up electronics work or basic household tasks, it may not perform well for drone flight.

    hashtag
    Legal Restrictions

    Thermal cameras are highly regulated items, so legal requirements can impact purchasing decisions. Depending on your location, you may need to pay a higher price, obtain licenses, or face limitations on buying certain cameras.

    Regulations often center around frame rate, not resolution. This is due to the potential use of thermal cameras in weapons.

    For countries part of the Wassenaar agreement, buying 30/60Hz thermal cameras is possible, although prices may be higher if imported from the United States.

    Direct purchase options are available from Chinese companies like Hti Instrument on platforms like AliExpress and TaoBao. If obtaining FLIR or Seek cameras from the U.S. proves difficult, alternatives like Hti might be more accessible.

    hashtag
    Flying with a Thermal Camera

    Consider what you will realistically see with a specific thermal camera in various situations.

    Low-resolution thermal cameras might show a hot object in an area but not identify it. While this could work for search and rescue, situations requiring higher thermal resolution might necessitate better cameras.

    Remember that thermal cameras have much lower resolutions compared to typical FPV cameras. For instance, a 1280x720 FPV camera has 48x the resolution of a 160x120 thermal camera. At greater distances, the main FPV camera might be able to see an object while the thermal camera cannot.

    Also, consider the thermal "span" of the area in view. If everything has nearly the same temperature, the image could be noisy or flat. In such cases, a low NETD rating and a larger lens are necessary.

    hashtag
    Camera Information

    Here are brief descriptions of individual cameras mentioned earlier. Carefully read this information before purchasing any of them.

    hashtag
    Hti-301

    A high-quality thermal camera with 384x288 resolution, a large germanium lens, and a 25Hz frame rate. Though more expensive, its thermal performance is excellent. These cameras work as regular webcams, requiring no special driver.

    Hti-301 Thermal Camera

    hashtag
    FLIR Boson 320

    A 320x256 thermal imager core with a 60Hz frame rate. Expensive but equipped with Germanium lenses. Primarily designed for integration in larger camera systems or drones. Requires an appropriate connection board. Export controlled due to the high frame rate.

    FLIR Boson 320 Thermal Core

    hashtag
    Lenses

    The lens on a thermal camera isn't ordinary glass (which doesn't allow IR wavelengths to pass through).

    Germanium lenses offer high-quality thermal images but are costly. Many lightweight thermal cameras use Silicon or Chalcogenide lenses instead.

    In most cases, you can't replace a thermal camera lens unless it's designed for it. Even cameras with removable lenses often require careful handling to avoid damage.

    openhdfpv.orgarrow-up-right
    📖 View Updated Version of This Page →arrow-up-right
    ⚠️ Important Note: IP camera support has limitations and should be chosen carefully, considering its disadvantages.

    IP cameras cannot be automatically detected, as they lack a common protocol like USB cameras. They also require custom scripting for integration and lack support for bitrate adjustments, making them quite bad for long range sytems. They also don't support adjusting the keyframe interval, which can black out your video for several seconds when having any interference.

    To implement IP cameras, you can utilize the custom_unmanaged_camera.sh script, which needs to be activated through the hardware.conf configuration.

    For advanced users, we have implemented "scripting support," which allows for custom camera pipelines, IP cameras, and general debugging.

    Currently, there are several example pipelines available for:

    Camera

    OpenIPC cameras

    General IP cameras

    Seek Thermal cameras

    This feature requires disabling auto-detection and needs manual activation in the hardware.conf configuration file.

    hashtag
    OpenHD IP Camera instructions

    Step 1 Before setting things in OpenHD, first configure the following things in the IP camera:

    Setup static IP for the camera. Configure a H.264 rtsp stream and test it in a program like VLC.

    After that, you are ready to start with OpenHD configuration.

    Step 2

    To configure the camera, you need to configure a script that starts the network connection to the camera and then starts the Gtreamer pipeline. Over this you also need to create a service that executes this script when the air sbc is turned on.

    To configure the pipeline to the camera you need to modify the script “custom_unmanaged_camera_old.sh” in air sbc. Rename it to “custom_unmanaged_camera.sh”. After that, open the script and you will find different examples of configuration for connection to different cameras. Copy “setup_and_stream_ip_cam_siyi_h264” configuration and rename it to a different name. Now to configure “LOCALIP” and “GATEWAYIP” with the same first 3 numbers as your IP camera IP and with the last number being different in all 3 cases. Then you need to change the stream link in the Gstreamer pipeline command with the correct one of your camera. The configuration should look like this:

    IP example

    Step 3

    At the bottom of the script, comment all the configurations and put the name of the new one you have created and save the file. Finally, open a terminal and execute the following command “sudo chmod +x PATH/custom_unmanaged_camera.sh” with the correct path to the file.

    Step 4

    To create the service that activates the script you must follow the next steps. Download the following file (https://github.com/OpenHD/OpenHD/blob/2.5-evo-rapha/systemd/custom_unmanaged_camera.service) that isn't included in version 2.6.0 of OpenHD. You need to copy that file in /boot/etc/systemd/system/ but you need to do it using the terminal with the command “sudo cp ORIGINPATH/custom_unmanaged_camera.service DESTINATIONPATH/etc/systemd/system/” where both “originpath” and “destinationpath” are correct paths. After that you are ready to turn on air sbc and follow next steps. Connect a monitor and a keyboard to air sbc and exit from kiosk mode using Ctrl+C. After that, activate the new service using “sudo systemctl enable custom_unmanaged_camera” command. Following that, start the service with “sudo systemctl start custom_unmanaged_camera” command and then confirm that it is active with “sudo systemctl status custom_unmanaged_camera” command. Reboot air sbc with “sudo reboot” and it should be ready.

    Step 5

    To configure the visualization in QOpenHD go to the menu and setup the camera as DEV=>External.

    hashtag
    Warning

    Note 1: The custom unmanaged camera service requires careful testing and doesn't provide automatic functionality right away. It is intended for advanced users and developers who understand its intricacies.

    We encourage you to experiment with this feature, but please be aware that it's meant for users with a good understanding of camera pipelines and system integration.

    IP-Cameras are not specifically designed for low latency, and many of them have latency upwards of 500ms+, but there are specific cameras available for purchase that have reasonable latency closer to 100-200ms. Remember this latency will be added to the "normal" latency your system has. So most IP-Camera Setups will have 300-600ms latency. It is not recommended to use an IP-Camera as primary camera. That means the main reason to choose an IP-Camera is to enable some custom features normal Cameras do not support.

    openhdfpv.orgarrow-up-right
    📖 View Updated Version of This Page →arrow-up-right