HDMI TO CSI-2

From Geekworm Wiki
Jump to navigation Jump to search


HDMI to CSI-2 size
HDMI to CSI-2 pin description
HDMI to CSI-2

Overview

  • This is a raspberry pi HDMI to CSI-2 Module with Toshiba TC358743XBG chip, HDMI input supports up to 1080p25fps.

According to the customer feedback, this module does not support OctoPi.

The model of module is C779.[1]

Packing List

  • 1 x Raspberry Pi HDMI to CSI-2 Module
  • 1 x FFC Cable(14cm/5.51inch length)

Features

  • Input signal: HDMI;
  • Output signal: CSI;
  • HDMI Input: 720p50\720p60\1080i50\1080p25
  • Function: HDMI to CSI-2
  • Limitation: HDMI input supports up to 1080p25fps
  • Usage: Same as standard Raspberry Pi camera
  • Chip: Toshiba TC358743XBG
  • Compatible with: Raspberry Pi 4B/3B+/3B/2B/B+/3A+/Pi Zero/Zero W

Document

How to check whether this module is driven correctly?

step1. Check this module if be driven?

After connecting all the cables, power on the Raspberry Pi, the C779 indicator light is normally green, and after opening the Raspberry Pi terminal, enter the following command:

ls /dev

then check if video0 appears. If it appears correctly, it means that the module has been successfully driven and is working normally.

Please try the following oreration if you can't find 'video0'

step2. update & upgrade the raspberry pi system (It may be necessary to update the software source according to your country, and this will take a long time)

sudo apt-get update
sudo apt-get upgrade

step3. Open camera module via raspi-config command;

sudo raspi-config
Raspi-camera1.png
Raspi-camera2.png

Enable camera & reboot the raspberry pi.

step4: goto step1

step5: if you still can't find 'video0' file in the /dev path, please try the following methods:

A: Confirm whether the HDMI input device has a signal, (you can test whether it is displayed normally by connecting to the screen)

B. Confirm whether the resolution and frame rate of the HDMI input device are below the maximum input resolution and frame rate(720p50\720p60\1080i50\1080p25);

C: We recommend that you download the lastest official image of Raspberry pi if you still don't solve your questions. Download URL: https://www.raspberrypi.org/downloads/raspberry-pi-os/

Driver configuration

1、edit / boot / config.txt, and add the line to the end of the file. Sudo is required.

dtoverlay=tc358743

2、Use "dmesg | grep CMA" to check the amount of memory allocated to the CMA heap.

dmesg | grep cma

Output: [ 0.000000] cma: Reserved 256 MiB at 0x000000001ec00000

If the report has less than 96MB of files assigned to CMA, edit / boot / config.txt and add.

dtoverlay=cma,cma-128

3、Restart raspberry pi.

sudo reboot

If all goes well, you should get a /dev/video0 device.Using "arecord - L" will tell you whether the sound card of tc358743 is loaded correctly.

sudo arecord - L

Use raspistill to take photos

Raspistil function: run the camera at a specified time, and capture jpg images if necessary.

Format:raspistill [options]

Main image parameters and commands:

-?, --Help: help document

-w. -- width: set the image width < size > width

-h. -- height: set image height < size > height

-q. -- Quality: set JPEG quality < 0 to 100 >

-r. -- raw: add raw raw Bayer data to JPEG metadata

-o. -- output: output file name < file name >,

-l. -- Latest: link the latest complete image to the specified file < file name >

-v. -- verb: output details when running the camera

-t. -- timeout: the time delay is specified when photographing and closing. If it is not specified, the default is 5S

-e. -- encoding: encode to output the specified format file (jpg, BMP, GIF, PNG)

-TL, - timelapse: take one picture every < MS > at intervals

-k. -- keypress: press the key to trigger, press' Enter 'to take a picture, press' x' and then 'Enter' to exit

-s. - signal: signal triggered, waiting for another process signal to take a picture

-GC, - glcapture: capture GL frame buffer instead of camera image

-Set, - settings: retrieve the camera settings and write them to stdout

-CS, - camselect: select camera device < digital >, default 0


The above is just a list of some common commands. More detailed commands can be used by Baidu, Google or viewing help documents. Here are some specific examples:

After a delay of two seconds (in milliseconds), take a picture and save it as

image.jpg.raspistill -t 2000 -o image.jpg

Take a custom size photo.raspistill -t 2000 -o image.jpg -w 640 -h 480

Record a 5 second video clip (1080p25) using the default settings.raspivid -t 5000 -o

video.h264

Save to file a 5 second encoded camera stream image raspivid - t 5000 - O - >

My_file.h264

Use gstreamer to call camera and audio

NOTE: C779 does not support audio

The driver of the Raspberry Pi transfers all controls to the user or the user's application. By default, there is no EDID loaded on the chip so that it can tell the resolution supported by the HDMI source. If you do not have an EDID file, you can create a file edid.txt and copy the following content to edid.txt.

00ffffffffffff005262888800888888
1c150103800000780aEE91A3544C9926
0F505400000001010101010101010101
010101010101011d007251d01e206e28
5500c48e2100001e8c0ad08a20e02d10
103e9600138e2100001e000000fc0054
6f73686962612d4832430a20000000FD
003b3d0f2e0f1e0a2020202020200100
020321434e041303021211012021a23c
3d3e1f2309070766030c00300080E300
7F8c0ad08a20e02d10103e9600c48e21
0000188c0ad08a20e02d10103e960013
8e210000188c0aa01451f01600267c43
00138e21000098000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000

1. create edid.txt

cd ~
touch edid.txt
nano edid.txt

Copy the above comment to edit.txt, save&exit;

Then use the following command to push it to the device.

v4l2-ctl --set-edid=file=edid.txt --fix-edid-checksums

2. The driver will not automatically switch to the detected resolution. Use the following command to view the current input resolution.

v4l2-ctl --query-dv-timings

3. Use the following command to set

v4l2-ctl --set-dv-bt-timings query

4. Use gstreamer to save video and audio[1]

gst-launch-1.0 v4l2src io-mode=5 ! video/x-raw, format=UYVY, framerate=25/1 ! v4l2h264enc output-io-mode=4 ! video/x-h264,profile=high ! h264parse ! queue ! matroskamux name=mux ! filesink location=foo.mkv alsasrc device=hw:1 ! audio/x-raw,rate=48000,channels=2 ! audioconvert ! avenc_aac bitrate=48000 ! aacparse ! queue ! mux.

If the video and audio are well connected, you can get a playable video foo.kmv after running the above command. If the input video source has sound, you will be able to hear the corresponding sound. Note that the version of the gst command tested here is below 1.8. If your gstreamer is version 1.8 or above, you can try the following test statement. In addition, alsasrc device=hw:1 represents the sound card of TC358743, you can use "arecord -l" to query.

gst-launch-1.0 -vvv v4l2src ! "video/x-raw,framerate=30/1,format=UYVY" ! v4l2h264enc extra-controls="controls,h264_profile=4,h264_level=13,video_bitrate=256000;" ! "video/x-h264,profile=high, level=(string)4.2" ! h264parse ! queue ! matroskamux name=mux ! filesink location=foo.mkv alsasrc device=hw:1 ! audio/x-raw,rate=48000,channels=2 ! audioconvert ! avenc_aac bitrate=48000 ! aacparse ! queue ! mux.

Video

https://youtu.be/L5qbZPrpPp0

Test video: https://youtu.be/yoAsw189yPI

FAQ

Q1: What to do if the module can't work normally?

A1:

  • 1. Please use monitor to test, DO NOT use VNC.(Customer Feedback: During the VNC it spend some of gpu and there is not enough for camera.Based on RPi 4 + Hawkeye Firefly Mini)
  • 2. First the HDMI device should be plugged in and have signal output before the Raspberry Pi is started.
  • 3. Please check if there is a video related file in the /dev file.
  • 4. Please provide us more details for us to confirm the issue.

a. First please send us your order number and tell us "Call command" "Input Device" and "Using Device".

b. What is the HDMI input device, resolution and frequency?

c. Which version of Raspberry Pi you use?

d. What is the specific calling command?

e. What is the terminal error notification?

Q2: Some python sample code

A2: The HDMI source supported by Raspberry Pi with the module is 720p/50fps,720p/60fps,1080i/50fps,1080p/24fps,1080p/25fps. Lower resolution is also working.

This is the python code used in my video.The Pi uses an official image with no other changes.

from picamera import PiCamera
from time import
camera = PiCamera()
camera.start_preview()
sleep(1000)
camera.stop_preview()

Q3:Customer Feedback 1 for your reference(https://www.amazon.com/gp/product/B0899L6ZXZ#customerReviews)

A3: If you want to use your Raspberry Pi for HDMI capture, this is the only device I'm aware of that will do it. Furthermore you can do some powerful things that would normally require equipment costing many hundreds of dollars. For example, using always-on camera preview and a few lines of Python code you can easily do image flipping, rotation, and rudimentary scaling. Note that you can't adjust color or exposure, and audio is not passed through.

I've tried this with a variety of HDMI devices; half of them work perfectly, half of them don't work at all.

Things that worked just fine:

  • GoPro Hero2
  • Generic no-name HDMI camera
  • OREI HD-102 1x2 HDMI splitter with a Google Chromecast attached to it (but see below)

There's a downside, though. I could not get any of these to work:

  • Canon 6D, which causes a "PiCameraMMALError: Failed to enable connection: Out of resources" error
  • Blackmagic ATEM Mini, which produces a scrambled picture
  • Google Chromecast, because I don't think this device supports HDCP; but it works fine if you strip off the HDCP.

This HDMI input module does what I care about (capturing my generic HDMI camera), but it failed at some things that thankfully I didn't need it to do. Your use case may vary so don't be surprised if some HDMI devices don't work with it.

Q4: Will this work with i2s hats such as hifiberry amp2?

A4: Since this item don't use any GPIO, so we think that it can work with I2S hats.

Q5:How to access using cs-ii output using l language. i need to access the frame buffer of it?

A5:Try to use raspistil -GC command to capture GL frame buffer instead of camera image.

Notes

  1. 1.0 1.1 C779 only supports video, not audio
Add your comment
Geekworm Wiki welcomes all comments. If you do not want to be anonymous, register or log in. It is free.


Anonymous user #12

17 days ago
Score 0++

Hello,

I have a VGA output (analogic signal) from an old pc, if I use an adapter VGA to HDMI, this adapter HDMI to CSI will work correctly?

Lisa

17 days ago
Score 0++
Hello,friend: Sorry we haven't tested like that and cannot guarantee compatibility.

Anonymous user #11

23 days ago
Score 0++

Hello

Which case can you recommend for the PI4 and the raspberry pi HDMI to CSI-2 Module ?

Lisa

20 days ago
Score 0++
Hello, sorry that there is no matching Case at the moment

Anonymous user #10

4 months ago
Score 0++
What if I use this with 4K resolution? It won't work or just resolution will be downgraded?

Lisa

one month ago
Score 0++
Hello,We do not recommend using resolution standards that exceed the requirements.

Anonymous user #9

5 months ago
Score 0++
what if you get the green light and the vifeo0 and it still has no picture and all sources of video have been verified?

Anonymous user #7

6 months ago
Score 0++
Should I unplug the cable after connecting

Lisa

one month ago
Score 0++
Hello,Sorry I didn't understand your question well,could please tell us why you unplug the cable? Which cable to unplug?

Anonymous user #6

6 months ago
Score 0++

I'm trying to use the HDMI card with OctoPi and a GoPro Hero3 but getting this error:

pi@octopi:~ $ raspivid -p -f The driver for the TC358743 HDMI to CSI2 chip you are using is NOT supported. They were written for a demo purposes only, and are in the firmware on an as-is basis and therefore requests for support or changes will not be acted on.

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC mmal: camera component couldn't be enabled mmal: main: Failed to create camera component

mmal: Failed to run camera app. Please check for firmware updates

Anonymous user #8

6 months ago
Score 0++
It says above the OctoPi is not supported.

Anonymous user #5

6 months ago
Score 0++
Can you send the raspberry pi output to the camera? I tried this and am getting errors even though video 0 is showing up. I am using a raspberry pi 4 with two hdmi outputs so I am sending one back into the camera. I know this sounds wierd but I have a reason to do this. I was just wondering if anyone else has tried it and got it to work.

Anonymous user #13

3 hours 13 minutes ago
Score 0++
Dear Anonymous #6 - I tried something similar, connecting the HDMI output from a Pi 2 to the HDMI2CSI board. It didn't work. It appears that the Pi 2 insisted on 60fcs. I don't know if the Pi 4 is smarter, or if there's a way to tell it to use 25fcs for that output.

Anonymous user #13

3 hours 12 minutes ago
Score 0++
Sorry, that should have been anonymous #5.

Anonymous user #4

7 months ago
Score 0++

RPI 8g new install

camera enabled

Anonymous user #4

7 months ago
Score 0++

All setup according to above instructions. run above python code

from picamera import PiCamera from time import sleep camera = PiCamera() camera.start_preview() sleep(1000) camera.stop_preview()

Python 3.7.3 (/usr/bin/python3) >>> %Run TestHDMIinput.py mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM) mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/picamera/camera.py", line 456, in _init_camera self._camera = mo.MMALCamera() File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 2279, in __init__ super(MMALCamera, self).__init__() File "/usr/lib/python3/dist-packages/picamera/mmalobj.py", line 633, in __init__ prefix="Failed to create MMAL component %s" % self.component_type) File "/usr/lib/python3/dist-packages/picamera/exc.py", line 184, in mmal_check raise PiCameraMMALError(status, prefix) picamera.exc.PiCameraMMALError: Failed to create MMAL component b'vc.ril.camera': Out of memory

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/pi/Downloads/TestHDMIinput.py", line 3, in <module> camera = PiCamera() File "/usr/lib/python3/dist-packages/picamera/camera.py", line 431, in __init__ self._init_camera(camera_num, stereo_mode, stereo_decimate) File "/usr/lib/python3/dist-packages/picamera/camera.py", line 460, in _init_camera "Camera is not enabled. Try running 'sudo raspi-config' " picamera.exc.PiCameraError: Camera is not enabled. Try running 'sudo raspi-config' and ensure that the camera has been enabled.

>>>

Anonymous user #3

7 months ago
Score 0++
Does this component send EDID to the connected device to negotiate comparable resolutions?

Anonymous user #2

7 months ago
Score 0++
Does this support audio passthrough?

Xiali

7 months ago
Score 0++
Hi dear ,Yes ,it supports audio passthrough,By the way ,There are many Raspberry Pi fans exchange experiences on our official website, you are welcome to join us https://geek...munity/forum

Anonymous user #1

12 months ago
Score 0++

Hello, What model of Raspi can use this HDMI to CS2 module?

Can I use Raspi 3 model B or must be Raspi 4 ?? Tks

Cindy

11 months ago
Score 0++

Hello sir,

Both Raspberry Pi 3 or Raspberry Pi 4 are OK to use with this HDMI to CS2 .