-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with 2 camera's on M8P with CM4 & CB1 #109
Comments
Hey there 👋 So, first of all, this isnt a bug related to crowsnest, therefor I will drop the bug label. But, we have seen this a lot of times the last days on our discord and I am the one, who have to tell the bad news... Its primarily attached to BTT Manta MCU Boards and it seems the used USB chip isnt capable of delivering the needed bandwith for two cams. There is litterally nothing I can do about besides letting you know the facts. Regards Kwad |
Yeah I was further testing it out and found out that it does appear to be a bandwidth issue on the USB controller. I've emailed BTT about it to see if they can give any more information on it. |
Hi. Just to put my 5 cents here. I'm using 2 usb cameras - one C920 and another is 4k 3do nozzle camera.
The reason is not in controller itself, rather the fact that all USB ports are connected to a single USB 2.0 lane, which is available on CM4 by design |
I tried both of my camera's set at 640x480 and 15 FPS to lower the bandwidth of the camera's to see if that would fix the issue. It didn't. |
Hi. I had the same issue with the manta board and two usb cams. Lowering the frame rate to 10 and resolution to 640x480 seems to make both cams work. Not ideal though... |
Does anyone know if this is 'fixed' on the Manta 2.0 boards? |
@treaves this is a hardware limitation. so we cannot 'fix' this issue. |
To be clear, ‘on the Manta 2.0 boards’ recognizes that this is a hardware issue. I was asking if anyone who’s read this thread has any information as to if it too is using out-dated hardware, or might it now have a USB 3 bus. |
@treaves can't comment on the Manta 2.0, but I can confirm a similar hardware constraint exists on the fairly new Bigtreetech Pad 7 with a CB1. |
Just a heads up that this is not a limitation of the M8P. Rather, it is a known problem with some USB cameras and linux. The camera reports a required bandwidth that is far in excess of what it actually needs and then the driver says that all available bandwidth on the USB 2.0 bus is consumed. There are various hacks that can be used to bypass this limit but boy do I mean "hacks". https://stackoverflow.com/questions/9781770/capturing-multiple-webcams-uvcvideo-with-opencv-on-linux/23881125#23881125 |
The reason why we think it's the M8P is that this issue occurs only with that board and with CB1 and CM4 and it seems to appear always with that combination. So it's possible that this is also a problem with the kernel, but it's still most likely due to the M8P. Furthermore we won't give any help with recompiling the uvc driver, or any problems resulting from it. |
Fundamentally, the error simply can have nothing to do with the M8P because it is a function of the reported available bandwidth for the given USB controller combined with the reported required bandwidth for the given cameras. The CB1/CM4 both use a USB2.0 controller which is exposed via a single USB port on the 200 pin connectors. The M8P exposes this via a high-speed hub that operates at the full 480Mbps. If it was an issue related to the hub not having enough bandwidth then the hub would not enumerate as a USB2.0 high-speed device (which it does). The problem is that the cameras completely over-report what they need in terms of bandwidth and the kernel driver believes them. Counterintuitively, if you set up ustreamer to use YUYV instead of MJPG and use the quirk config of 640 then you will actually be able to run two cameras even though the data is uncompressed. This is because quirks only take effect for uncompressed data (without the driver mod mentioned in my earlier comment). You won't see this same behaviour on other devices as long as you use the USB3.0 controller. E.g. the Rpi4 stand-alone would use the USB3 controller via the PCIE bus and it would not be overloaded. Additionally, it breaks out two controllers. A USB3.0 and a USB 2.0 so you can split the load between them. The issue is therefore simply that the PCIE bus is not implemented on the M8P and there is a single USB2.0 controller to work with. It can be made to work but the cams need to not over request bandwidth or the user needs to switch to YUYV mode and enable the kernel module quirks. |
If that's the case I'm wondering why that issue isn't there on a Pi3B+. If I'm not mistaken it should have only one USB 2.0 controller as well. |
Also as a sidenote: I'm not directly experienced in how this whole stuff plays together. It's just from my experiences supporting this stuff daily, it looks like a limitation of the M8P or maybe the CB1 and CM4 directly, but not because of the one USB 2.0 controller, as the Pi3B+ should then have the same problem, if I'm not mistaken. |
It does only have a single USB controller but is it possible that users are using 1 x MIPI CSI camera and 1 x USB camera in such instances? We are going to run a bunch of comprehensive tests tomorrow morning to get empirical results when using the same cameras with different setups. Will let you know what we find. |
I'm pretty sure there are plenty of users with 2 usb cams on the Pi3B+, I'm pretty sure I already run 2 USB cams and a CSI cam on it myself. |
I can say with the testing I did, exact same cameras, I decided to add a pi3 that I had laying around as a camera server, I haven't had any issues with that. It was when I was running it on a manta board is when I had this issue, regardless of it being CB1 or CM4. Moved the exact same cameras to a pi3, no issues. |
My understanding is that compute modules do not provide USB; that’s up to the host board. That’s why both the CB1 & CM4 experience this. The Manta has the USB controller, and according to the docs, it’s a single USB 2 controller. |
No. The controller is very much within the compute module. The compute module breaks out the USB peripheral which is just a differential pair. Thereafter that pair must be either routed directly out or sent to a hub for expansion. The M8P simply routes it to a high-speed hub for expansion. It can be set to a direct routing but that is for OTG mode to program the compute module if there is onboard mem. |
Thanks for sharing. Will use this info during our testing. |
I opened a discussion about this topic that we continue there. I will lock this issue, as it's not an issue about crowsnest directly. Please post everything regarding this topic in the discussion. Me and the mainsail-crew won't give help directly about fixes to this issue, like the one brought up by @looxonline. We would be grateful if @looxonline or other users here could help non tech-savvy users in that discussion, to get their stuff running. |
We got the test results in the discussion and I wrote a small summary of the solution that should resolve this issue: Big thanks for the in depth testing 😄 If someone needs help with it, please ask in the discussion. |
What happened
Here's the logs on debug and the errors that happens. the last few lines keep repeating.
[05/06/23 13:00:15] crowsnest: Shutdown or Killed by User!
[05/06/23 13:00:15] crowsnest: Please come again :)
[05/06/23 13:00:15] crowsnest: Goodbye...
[05/06/23 13:00:17] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services.
[05/06/23 13:00:17] crowsnest: Version: v3.0.7-3-g20ed6a8
[05/06/23 13:00:17] crowsnest: Prepare Startup ...
[05/06/23 13:00:17] crowsnest: INFO: Host information:
[05/06/23 13:00:17] crowsnest: Host Info: Distribution: Raspbian GNU/Linux 11 (bullseye)
[05/06/23 13:00:17] crowsnest: Host Info: Kernel: Linux 6.1.21-v8+ aarch64
[05/06/23 13:00:17] crowsnest: Host Info: Model: Raspberry Pi Compute Module 4 Rev 1.0
[05/06/23 13:00:17] crowsnest: Host Info: Available CPU Cores: 4
[05/06/23 13:00:17] crowsnest: Host Info: Available Memory: 7819936 kB
[05/06/23 13:00:17] crowsnest: Host Info: Diskspace (avail. / total): 7.6G / 15G
[05/06/23 13:00:17] crowsnest: INFO: Checking Dependencys
[05/06/23 13:00:17] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini.
[05/06/23 13:00:17] crowsnest: Dependency: 'find' found in /usr/bin/find.
[05/06/23 13:00:17] crowsnest: Dependency: 'logger' found in /usr/bin/logger.
[05/06/23 13:00:17] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs.
[05/06/23 13:00:17] crowsnest: Dependency: 'ffmpeg' found in /usr/bin/ffmpeg.
[05/06/23 13:00:17] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/ustreamer.
[05/06/23 13:00:17] crowsnest: Dependency: 'rtsp-simple-server' found in bin/rtsp-simple-server/rtsp-simple-server.
[05/06/23 13:00:17] crowsnest: Version Control: ustreamer is up to date. (v5.38)
[05/06/23 13:00:17] crowsnest: Version Control: rtsp-simple-server is up to date. (v0.20.2)
[05/06/23 13:00:18] crowsnest: Version Control: ffmpeg is up to date. (4.3.6-0+deb11u1+rpt1)
[05/06/23 13:00:18] crowsnest: INFO: Print Configfile: '/home/pi/printer_data/config/crowsnest.conf'
[05/06/23 13:00:18] crowsnest: [crowsnest]
[05/06/23 13:00:18] crowsnest: log_path: ~/printer_data/logs/crowsnest.log
[05/06/23 13:00:18] crowsnest: log_level: debug
[05/06/23 13:00:18] crowsnest: delete_log: false
[05/06/23 13:00:18] crowsnest:
[05/06/23 13:00:18] crowsnest: [cam 1]
[05/06/23 13:00:18] crowsnest: mode: mjpg
[05/06/23 13:00:18] crowsnest: port: 8080
[05/06/23 13:00:18] crowsnest: device: /dev/video0
[05/06/23 13:00:18] crowsnest: resolution: 2592x1944
[05/06/23 13:00:18] crowsnest: max_fps: 15
[05/06/23 13:00:18] crowsnest:
[05/06/23 13:00:18] crowsnest: [cam 2]
[05/06/23 13:00:18] crowsnest: mode: mjpg
[05/06/23 13:00:18] crowsnest: port: 8081
[05/06/23 13:00:18] crowsnest: device: /dev/video2
[05/06/23 13:00:18] crowsnest: resolution: 800x600
[05/06/23 13:00:18] crowsnest: max_fps: 30
[05/06/23 13:00:18] crowsnest: INFO: Detect available Devices
[05/06/23 13:00:18] crowsnest: INFO: Found 2 total available Device(s)
[05/06/23 13:00:18] crowsnest: INFO: Found 2 available camera(s)
[05/06/23 13:00:18] crowsnest: /dev/v4l/by-id/usb-VNV_USB_Camera-video-index0 -> /dev/video0
[05/06/23 13:00:18] crowsnest: Supported Formats:
[05/06/23 13:00:18] crowsnest: [0]: 'MJPG' (Motion-JPEG, compressed)
[05/06/23 13:00:18] crowsnest: Size: Discrete 2592x1944
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:18] crowsnest: Size: Discrete 2048x1536
[05/06/23 13:00:18] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 1600x1200
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 1920x1080
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 1280x960
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 1280x720
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 1024x768
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:19] crowsnest: Size: Discrete 960x720
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:19] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 800x600
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 640x480
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 320x240
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: [1]: 'YUYV' (YUYV 4:2:2)
[05/06/23 13:00:20] crowsnest: Size: Discrete 2592x1944
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 2048x1536
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 1600x1200
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 1920x1080
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 1280x960
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:20] crowsnest: Size: Discrete 1280x720
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:20] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Size: Discrete 1024x768
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Size: Discrete 960x720
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Size: Discrete 800x600
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Size: Discrete 640x480
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Size: Discrete 320x240
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.100s (10.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.133s (7.500 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.200s (5.000 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.267s (3.750 fps)
[05/06/23 13:00:21] crowsnest: Interval: Discrete 0.400s (2.500 fps)
[05/06/23 13:00:21] crowsnest: Supported Controls:
[05/06/23 13:00:21] crowsnest:
[05/06/23 13:00:21] crowsnest: User Controls
[05/06/23 13:00:21] crowsnest:
[05/06/23 13:00:22] crowsnest: brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
[05/06/23 13:00:22] crowsnest: contrast 0x00980901 (int) : min=0 max=64 step=1 default=34 value=34
[05/06/23 13:00:22] crowsnest: saturation 0x00980902 (int) : min=0 max=78 step=1 default=62 value=62
[05/06/23 13:00:22] crowsnest: hue 0x00980903 (int) : min=-2000 max=2000 step=1 default=-86 value=-86
[05/06/23 13:00:22] crowsnest: white_balance_automatic 0x0098090c (bool) : default=1 value=1
[05/06/23 13:00:22] crowsnest: gamma 0x00980910 (int) : min=100 max=300 step=1 default=150 value=150
[05/06/23 13:00:22] crowsnest: gain 0x00980913 (int) : min=0 max=130 step=1 default=32 value=26
[05/06/23 13:00:22] crowsnest: power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
[05/06/23 13:00:22] crowsnest: 0: Disabled
[05/06/23 13:00:22] crowsnest: 1: 50 Hz
[05/06/23 13:00:22] crowsnest: 2: 60 Hz
[05/06/23 13:00:22] crowsnest: white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
[05/06/23 13:00:22] crowsnest: sharpness 0x0098091b (int) : min=1 max=7 step=1 default=4 value=4
[05/06/23 13:00:22] crowsnest: backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
[05/06/23 13:00:22] crowsnest:
[05/06/23 13:00:22] crowsnest: Camera Controls
[05/06/23 13:00:22] crowsnest:
[05/06/23 13:00:22] crowsnest: auto_exposure 0x009a0901 (menu) : min=0 max=3 default=3 value=3
[05/06/23 13:00:22] crowsnest: 1: Manual Mode
[05/06/23 13:00:22] crowsnest: 3: Aperture Priority Mode
[05/06/23 13:00:22] crowsnest: exposure_time_absolute 0x009a0902 (int) : min=1 max=80000 step=1 default=312 value=2496 flags=inactive
[05/06/23 13:00:22] crowsnest: error 5 getting ext_ctrl Exposure, Dynamic Framerate
[05/06/23 13:00:22] crowsnest: focus_absolute 0x009a090a (int) : min=0 max=256 step=1 default=0 value=5 flags=inactive
[05/06/23 13:00:22] crowsnest: focus_automatic_continuous 0x009a090c (bool) : default=1 value=1
[05/06/23 13:00:22] crowsnest: /dev/v4l/by-id/usb-XCG-221208-J_3DO_NOZZLE_CAMERA_FHD_01.00.00-video-index0 -> /dev/video2
[05/06/23 13:00:22] crowsnest: Supported Formats:
[05/06/23 13:00:22] crowsnest: [0]: 'MJPG' (Motion-JPEG, compressed)
[05/06/23 13:00:22] crowsnest: Size: Discrete 1920x1080
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 640x480
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 800x600
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 1024x768
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 1280x720
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 2048x1536
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 2560x1440
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 2592x1944
[05/06/23 13:00:22] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:22] crowsnest: [1]: 'YUYV' (YUYV 4:2:2)
[05/06/23 13:00:22] crowsnest: Size: Discrete 1920x1080
[05/06/23 13:00:22] crowsnest: Interval: Discrete 1.000s (1.000 fps)
[05/06/23 13:00:22] crowsnest: Size: Discrete 640x480
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.033s (30.000 fps)
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.040s (25.000 fps)
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.050s (20.000 fps)
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 800x600
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 1024x768
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 1280x720
[05/06/23 13:00:23] crowsnest: Interval: Discrete 0.067s (15.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 2048x1536
[05/06/23 13:00:23] crowsnest: Interval: Discrete 1.000s (1.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 2560x1440
[05/06/23 13:00:23] crowsnest: Interval: Discrete 1.000s (1.000 fps)
[05/06/23 13:00:23] crowsnest: Size: Discrete 2592x1944
[05/06/23 13:00:23] crowsnest: Interval: Discrete 1.000s (1.000 fps)
[05/06/23 13:00:23] crowsnest: Supported Controls:
[05/06/23 13:00:23] crowsnest:
[05/06/23 13:00:23] crowsnest: User Controls
[05/06/23 13:00:23] crowsnest:
[05/06/23 13:00:23] crowsnest: brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
[05/06/23 13:00:23] crowsnest: contrast 0x00980901 (int) : min=0 max=95 step=1 default=2 value=2
[05/06/23 13:00:23] crowsnest: saturation 0x00980902 (int) : min=0 max=100 step=1 default=64 value=64
[05/06/23 13:00:23] crowsnest: hue 0x00980903 (int) : min=-2000 max=2000 step=1 default=0 value=0
[05/06/23 13:00:23] crowsnest: white_balance_automatic 0x0098090c (bool) : default=1 value=1
[05/06/23 13:00:23] crowsnest: gamma 0x00980910 (int) : min=100 max=300 step=1 default=100 value=100
[05/06/23 13:00:23] crowsnest: power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
[05/06/23 13:00:23] crowsnest: 0: Disabled
[05/06/23 13:00:23] crowsnest: 1: 50 Hz
[05/06/23 13:00:23] crowsnest: 2: 60 Hz
[05/06/23 13:00:23] crowsnest: white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
[05/06/23 13:00:23] crowsnest: sharpness 0x0098091b (int) : min=1 max=7 step=1 default=2 value=2
[05/06/23 13:00:23] crowsnest: backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=1 value=1
[05/06/23 13:00:23] crowsnest:
[05/06/23 13:00:23] crowsnest: Camera Controls
[05/06/23 13:00:23] crowsnest:
[05/06/23 13:00:23] crowsnest: auto_exposure 0x009a0901 (menu) : min=0 max=3 default=3 value=3
[05/06/23 13:00:23] crowsnest: 1: Manual Mode
[05/06/23 13:00:23] crowsnest: 3: Aperture Priority Mode
[05/06/23 13:00:23] crowsnest: exposure_time_absolute 0x009a0902 (int) : min=3 max=2047 step=1 default=166 value=166 flags=inactive
[05/06/23 13:00:23] crowsnest: focus_absolute 0x009a090a (int) : min=0 max=1023 step=1 default=0 value=0 flags=inactive
[05/06/23 13:00:23] crowsnest: focus_automatic_continuous 0x009a090c (bool) : default=0 value=1
[05/06/23 13:00:23] crowsnest: INFO: No usable CSI Devices found.
[05/06/23 13:00:24] crowsnest: V4L2 Control: No parameters set for [cam 1]. Skipped.
[05/06/23 13:00:24] crowsnest: V4L2 Control: No parameters set for [cam 2]. Skipped.
[05/06/23 13:00:25] crowsnest: Try to start configured Cams / Services...
[05/06/23 13:00:26] crowsnest: INFO: Configuration of Section [cam 1] looks good. Continue...
[05/06/23 13:00:26] crowsnest: INFO: Configuration of Section [cam 2] looks good. Continue...
[05/06/23 13:00:28] crowsnest: Starting ustreamer with Device /dev/video2 ...
[05/06/23 13:00:28] crowsnest: Starting ustreamer with Device /dev/video0 ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: Parameters: --host 127.0.0.1 -p 8081 -d /dev/video2 --device-timeout=2 -m MJPEG --encoder=HW -r 800x600 -f 30 --allow-origin=* --static /home/pi/crowsnest/ustreamer-www
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: Parameters: --host 127.0.0.1 -p 8080 -d /dev/video0 --device-timeout=2 -m MJPEG --encoder=HW -r 2592x1944 -f 15 --allow-origin=* --static /home/pi/crowsnest/ustreamer-www
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.015 main] -- Starting PiKVM uStreamer 5.38 ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.018 main] -- Starting PiKVM uStreamer 5.38 ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.015 main] -- Using internal blank placeholder
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.018 main] -- Using internal blank placeholder
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.015 main] -- Enabling HTTP file server: /home/pi/crowsnest/ustreamer-www
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.018 main] -- Enabling HTTP file server: /home/pi/crowsnest/ustreamer-www
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.016 main] -- Listening HTTP on [127.0.0.1]:8081
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.018 main] -- Listening HTTP on [127.0.0.1]:8080
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.016 stream] -- Using V4L2 device: /dev/video2
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.018 stream] -- Using V4L2 device: /dev/video0
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.016 stream] -- Using desired FPS: 30
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.019 stream] -- Using desired FPS: 15
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.016 http] -- Starting HTTP eventloop ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.019 http] -- Starting HTTP eventloop ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: ================================================================================
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: ================================================================================
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.017 stream] -- Device fd=8 opened
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.019 stream] -- Device fd=8 opened
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.017 stream] -- Using input channel: 0
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.019 stream] -- Using input channel: 0
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.046 stream] -- Using resolution: 800x600
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.031 stream] -- Using resolution: 2592x1944
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.046 stream] -- Using format: MJPEG
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.031 stream] -- Using format: MJPEG
[05/06/23 13:00:28] crowsnest: ... Done!
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.075 stream] -- Using HW FPS: 30
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.042 stream] -- Using HW FPS: 15
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- ERROR [1425.075 stream] -- Device doesn't support setting of HW encoding quality parameters
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- ERROR [1425.043 stream] -- Device doesn't support setting of HW encoding quality parameters
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.075 stream] -- Using IO method: MMAP
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.043 stream] -- Using IO method: MMAP
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.080 stream] -- Requested 5 device buffers, got 5
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.093 stream] -- Requested 5 device buffers, got 5
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.100 stream] -- Capturing started
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- ERROR [1425.103 stream] -- Can't start capturing: No space left on device
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.100 stream] -- Using JPEG quality: encoder default
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.120 stream] -- Device fd=8 closed
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.100 stream] -- Creating pool JPEG with 1 workers ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1425.120 stream] -- Sleeping 1 seconds before new stream init ...
[05/06/23 13:00:28] crowsnest: DEBUG: ustreamer [cam 2]: -- INFO [1425.100 stream] -- Capturing ...
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: ================================================================================
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.121 stream] -- Device fd=8 opened
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.121 stream] -- Using input channel: 0
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.132 stream] -- Using resolution: 2592x1944
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.132 stream] -- Using format: MJPEG
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.143 stream] -- Using HW FPS: 15
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- ERROR [1426.144 stream] -- Device doesn't support setting of HW encoding quality parameters
[05/06/23 13:00:29] crowsnest: DEBUG: Value is now: focus_absolute=5
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.144 stream] -- Using IO method: MMAP
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.188 stream] -- Requested 5 device buffers, got 5
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- ERROR [1426.196 stream] -- Can't start capturing: No space left on device
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.214 stream] -- Device fd=8 closed
[05/06/23 13:00:29] crowsnest: DEBUG: ustreamer [cam 1]: -- INFO [1426.214 stream] -- Sleeping 1 seconds before new stream init ...
[05/06/23 13:00:30] crowsnest: DEBUG: Value is now: focus_absolute=0
[05/06/23 13:00:30] crowsnest: DEBUG: ustreamer [cam 1]: ================================================================================
What did you expect to happen
Both camera's working
How to reproduce
n/a
Additional information
I'm not 100% sure if this might be the M8P USB controller isn't able to handle 2 camera's, or if this might be another issue.
The text was updated successfully, but these errors were encountered: