IntelRealSense / librealsense

Intel® RealSense™ SDK
https://www.intelrealsense.com/
Apache License 2.0
7.61k stars 4.83k forks source link

Severity: Error Description: USB CAM overflow With some strange behavior #6558

Closed pjmara closed 4 years ago

pjmara commented 4 years ago
Required Info
Camera Model D435
Firmware Version 05.11.15.00
Operating System & Version Ubuntu 18.04
Kernel Version (Linux Only) 5.3.0-53-generic
Platform PC (XPS 15 9570)
SDK Version 2.35.0
Language NA
Segment NA

Issue Description

I'm a new user to the Intel D435. I plugged the camera in, booted up realsense-viewer for the first time, and it worked amazing! I then tried to update the device firmware, and something broke. I've since rolled back to a firmware where I know it was working at some point (5.11.15.00). I'll describe what I've done to try and remedy but I don't know what logs would be most helpful to solve, so I will need some guidance for that

The USB CAM overflow and USB SCP overflow issue seems to be what is happening to me. I have seen this issue produced in many places. When opening realsense viewer, if I try to enable the camera I receive choppy images with lots of errors like the one in the title of this issue. Here is how my system has responded to some of the suggested troubleshooting:

Troubleshooting attempts

Choosing a different cable I've tried a different USB cable than the time I one I used on the first successful attempt. It was a usb 3 cable, I'm sure of it, and I am using the usb 3 ports on my XPS 15. It is not a very long cable either, < 5ft. No change in the issue.

I've also tried increasing the USBFS memory size to 1gb in case that was the issue

I'm currently in Ubuntu, but I am dual booting so I decided to load the device up in Windows with the realsense viewer. Same issue, but it didn't work at all in the windows version.

I cannot try using a different computer as suggested in some other troubleshooting because this is my only one.

The camera is not overheating. It is cool to the touch in every spot of it.

Some other odd behaviors

I can get the video to play with no choppy behavior with ffplay /dev/videoX for the rgb module. However, sometimes I must do ffplay/dev/videoY where Y is the default system webcam before I can get the ffplay for the D435 rgb sensor to work. Very odd behavior.

I suspect the issue might have something to do with loading data from old runs / connections as it just happened to work the first time I ever plugged it in. Not sure how to verify this but its my instinct. Would appreciate any assistance, @MartyG-RealSense have seen you on many of the other posts about this error so tagging you in hopes of getting it seen.

MartyG-RealSense commented 4 years ago

Hi @pjmara Let's start with trying to get the camera working on Windows.

Could you first check if access to the camera hardware and to camera applications is set to On in the Windows privacy settings please, using the instructions in the link below.

https://github.com/IntelRealSense/librealsense/issues/3381#issuecomment-503424789

pjmara commented 4 years ago

Alright, switched back to windows. Yes it is on.

MartyG-RealSense commented 4 years ago

When you installed RealSense on Windows, did you install the complete RealSense SDK please? Doing so places launch icons for the RealSense Viewer and the Depth Quality Tool on your Windows desktop.

The complete SDK can be installed by visiting the link below, scrolling down to the file list headed 'Assets', and left-clicking on the Intel.RealSense.SDK-WIN10-2.35.0.1758.exe link.

https://github.com/IntelRealSense/librealsense/releases/tag/v2.35.0

Left-clicking on the link will commence download of SDK version 2.35.0 in your browser. When download is complete, run the downloaded file to launch the RealSense SDK installer.

image

When the RealSense SDK is installed and the launch icon for the RealSense Viewer has been placed on your Windows desktop, launch the Viewer.

pjmara commented 4 years ago

That was what I had installed, but I had the version listed in the header of this post (2.33.1). Just updated to the most recent you showed above. Same behavior, USB CAM Overflow

MartyG-RealSense commented 4 years ago

Thanks for your patience. Given that you are experiencing the same errors in both Windows and Ubuntu, it seems more likely to be a hardware issue than a software one (SDK or OS).

Could you try re-upgrading the camera firmware driver to the latest 5.12.5 one, please? Sometimes a downgrade and then a re-upgrade has corrected errors immediately. You can do this in the Viewer by going to the 'More' option at the top of the Viewer's options side-panel and selecting 'Update to recommended firmware' from its menu. You do not need to provide a firmware file.

pjmara commented 4 years ago

Just gave that a shot, no improvement.

MartyG-RealSense commented 4 years ago

Could you try one of the Windows sample programs please to test whether the problem is isolated to the RealSense Viewer. Please go to the Windows folder location below and run the program called rs-capture.exe.

C: > Program Files (x86) > Intel RealSense SDK 2.0 > Tools

image

pjmara commented 4 years ago

I get a black screen for about 20 seconds, and then that program crashes. I can see the camera laser turns on when I start up the program but no other indication anything is happening.

pjmara commented 4 years ago

For some background on the cables I've tried, as that seems like a possible issue still, this camera has been used for lots of development with this very same cable on a Jetson nano. I've tried this cable and a different one that I know is usb 3. I've also tried a usb 2.1 type c connector. All 3 have had the identical error.

MartyG-RealSense commented 4 years ago

In my spare parts bag I have a D435i with a faulty firmware that is unable to function. I tried it with rs-capture and got very similar results to yours, suggesting that it is a firmware related issue.

pjmara commented 4 years ago

Ok, any suggestions what to do? How do I ensure that is indeed a firmware issue and how do I figure out which firmware to roll back to?

pjmara commented 4 years ago

One interesting thing is I've also been able to get the video feed to show up in the windows 10 Camera app. Seems to be no lag / frame drops as far as I can see.

MartyG-RealSense commented 4 years ago

RealSense cameras can be used as RGB webcams in non-RealSense applications with video such as Skype and Discord even if the depth sensing functions have problems.

Next we could try a "Gold Reset" to reset the camera to its factory-new configuration.

The details for doing a gold reset are in the link below. It involves installing a RealSense calibration software program called the Dynamic Calibrator.

https://forums.intel.com/s/question/0D70P000006EFHESA4/realsense-d435i-not-properly-recognized-by-realsenseviewer?language=en_US

If the problem is firmware related then if a Gold Reset corrects it in Windows then it should correct the problem in Ubuntu too, as the firmware is stored inside the camera hardware and not in the operating system.

pjmara commented 4 years ago

The tool ran and said it successfully reset to default gold factory settings. That is all that it says to do at the link above, so that's all I did... Did not correct the issue.

MartyG-RealSense commented 4 years ago

Okay, if you plug the camera into the Viewer and click on the 'i' button at the top of the options side-panel to display the camera information, what is the installed firmware version now, please?

Also, what is the full name of the camera shown at the top of the side-panel?

pjmara commented 4 years ago

Name at top of side panel: "Intel RealSense D435" Firmware version appears to not have changed: 5.12.05.00

MartyG-RealSense commented 4 years ago

Can you test please if the USB errors appear in the Viewer if you set a modest configuration (depth stream only, 848x480, 15 FPS) and then activate the stream?

pjmara commented 4 years ago

424 X 240 at 6 FPS for camera only produces error. (USB CAM Overflow) 848 X 480 at 15 FPS for depth only also produces the error. (USB SCP Overflow)

MartyG-RealSense commented 4 years ago

These settings make me think that your camera might be being detected as being on a USB 2 connection, even if it is plugged into a USB 3 port. Does it say '2.1' beside the camera name at the top of the options panel? If it were detected as USB 3, I would expect it to typically say '3.2' beside the camera name.

image

pjmara commented 4 years ago

Yes, it says 2.1.

pjmara commented 4 years ago

According to what I've seen though, I should still be able to use the lowest res / bandwidth settings which is all I really need right now. And I've used a cable that is USB 3, it still detects as usb 2.1. I've researched and the xps 15 usb ports are usb 3 ports so I feel like that isn't the issue.

MartyG-RealSense commented 4 years ago

RealSense cameras sometimes get mis-identified as USB 2 when inserted into USB 3 ports. Inserting the camera with a quick, firm motion instead of a slow insertion can help avoid this issue.

Could you also try going to the More option once the Viewer is launched and select the Hardware Reset option from its option? This option resets the camera (not the same as a Gold Reset), and will hopefully cause it to be recognised as USB 3.2.

pjmara commented 4 years ago

No change, still detected as 2.1 The video has started working off and on...I just noticed this error being printed when the video IS working: hr = spSample->GetUnknown(MFSampleExtension_CaptureMetadata, IID_PPV_ARGS(&spUnknown)) returned: HResult 0xc00d36e6: "The requested attribute was not found." I'm not sure if this is important: but when it is working, it continues to work from what I've seen. It is not a timeout issue that stops the camera working. The depth seems to be stuck, I haven't gotten that to show up at all on windows yet.

MartyG-RealSense commented 4 years ago

I appreciate your patience very much during this long process.

Next, could you try unplugging the micro end of the USB cable from the side of the camera, turning the connector upside down and re-inserting it please? USB-C cables are two-way insertion on the micro end.

Depth frames are generated from the left and right infrared sensors.

pjmara commented 4 years ago

Just tried that...no help. I can go try and pick up another cable during my lunch break and see if it detects as usb 3. I've actually been able to generate infrared data 640 x 480 and 30 fps. After attempting to start depth sensing after getting the infrared on and working, it started to work. But when adding the rgb camera in, both feeds started to have visual lag on them. Not sure if on the sensor end, the usb connection, or my laptops end. Are there any logs that can indicate which of these might be the issue? Edit: After a hardware reset, the only way to get depth showing up in the realsense viewer is to run stereo module with both elements (depth and infrared) on. Then either the infrared OR depth will work. This error is all over the place in these tests I'm running. _reader->GetNativeMediaType(sIndex, k, &pMediaType.p) returned: HResult 0xc00d36b3: "The stream number provided was invalid."

MartyG-RealSense commented 4 years ago

Do you have the original short cable supplied with the camera to test with?

The more streams that are active at the same time, the greater the processing demand that it places on a computer. I recommend starting with one IR stream to see how it performs and then seeing what happens when a depth stream is added as a second simultaneous stream. Do not use the RGB during these trials.

MartyG-RealSense commented 4 years ago

It occurred to me to check whether your laptop has an IR camera built in. Some models of Dell XPS apparently do. If these are active, they can have interference with RealSense's IR. The 400 Series camera is not affected by the interference but it disrupts the laptop's IR camera. Do you know if your model has an IR camera?

pjmara commented 4 years ago

Unfortunately, no I do not have the original cable. The dell xps 9570 does not have an IR camera built in.

MartyG-RealSense commented 4 years ago

In regard to getting a USB 3 cable, quality is important because the cable can have to carry a lot of camera data. So using a cheap cable meant for USB charging is not advisable.

I personally recommend Newnex cables for RealSense, and the official RealSense camera data sheet document now recommends them too as a cable source as of the May 2020 edition of the data sheet. If you need to get one today from a physical store during lunch time, then your chances of it working should increase if you get a short 1 m cable to test with.

pjmara commented 4 years ago

should the cable at https://www.amazon.com/dp/B07ZG4BLX9?ref_=ast_sto_dp be sufficient? I can close this issue until that cable arrives and reopen if the issue persists...

MartyG-RealSense commented 4 years ago

The Newnex cable at the link is consistent with Newnex pricing because their equipment is industrial grade (as mentioned in the listing). The kind of cables that you use for critical applications such as medical scanners and nuclear reactors, where you can't allow frames to be dropped. They are the best quality RealSense-proven cable available.

https://www.youtube.com/watch?v=GLQgR1jT04M

pjmara commented 4 years ago

Closing until cable arrives and I can verify the cable is not the issue

pjmara commented 4 years ago

@MartyG-RealSense one thing I just noticed is I only have Infrared 1 and depth as options, I can't see infrared 2 as an option for the newest realsense. Is that normal?

MartyG-RealSense commented 4 years ago

Infrared 2 is not available on USB 2 connections. This is because the camera modes available on USB2 are very limited compared to USB 3 due to the reduced bandwidth on USB 2 connections.

https://www.intelrealsense.com/usb2-support-for-intel-realsense-technology/

pjmara commented 4 years ago

Alright, cable is in, here is what I've learned, I think Firmware updates do not function properly over USB 2, and this is actually documented to not function at the link in above comment. But the ide still allows for the user to attempt updates over USB 2, and I think it breaks something, I'm still not sure what. When I first received the new cable, I tried turning everything on. I was able to get the depth and camera streaming, but when I added the infrared sensors, I got the same overflow error. I updated the firmware over usb3, ran the test again, no problems. Happy to announce that it is working, but if updating firmware doesn't work over USB 2, the realsense viewer probably shouldn't prompt users to run an update with a USB 2 connection.

MartyG-RealSense commented 4 years ago

I'm very glad that you succeeded in the end!

The linked article was written in September 2018, and since then Intel introduced a new cross-platform firmware system in which firmware update in the Viewer over USB 2 does work (or is meant to). I haven't encountered problems with updating through the Viewer on USB2 myself. I'm sorry that you had trouble with it.