Why a Raspicam isn’t better than a USB webcam.


So here's my use case:  I need a camera that is easily positioned away from the raspberry pi and can stream via mjpeg-streamer.  Not huge requirements.  Here is why the Raspicam doesn't fit that use case.

I've received a camera with the wrong cable from a Chinese distributor via amazon.  I discovered the cable was not reversed on the ends like it should be (the blue strip was on the same side on both ends).  So I ordered a new cable from adafruit.com.  The new cable arrived on Friday and I installed it.  I built a new mjpeg-streamer with raspicamera support and installed it.  I updated my config.txt as required to enable the camera.

It still doesn't work.  After a bit of research I can see no reason to want to use this camera unless you were trying to embed a camera in a box with the Pi.  I'm not trying to do that.  Let's look at the reasons why you won't want this camera vs a usb webcam.

  1. The cable:  It's a ribbon cable that is stiff enough that the weight of the camera module isn't enough to counter the cables desire to flip it out of position.  A USB cable is more forgiving and the USB cameras weight generally overrides the stiffness of the cable.  Bending the cable into submission is an option, but dangerous with ribbon cables.
  2. The connectors:  The ribbon cable connector is tricky to plug into the board compared to a usb camera.  The same connector has the same problem on the camera board.  Worse, the Sunny connector on the camera module (re: board) is so loose the camera pops out of it on the lightest touch – and you will touch it because the camera module is just a board.  It doesn't have an enclosure by default.  I bought a tiny camera mount to set it up on my table but the camera had popped out of the Sunny connector while screwing the board to the mount and I didn't notice it.
  3. The setup:  You have to enable the camera by changing the bootloader config.txt and rebooting.  To turn it on: change and reboot.  To disable it: change and reboot.   This matters because of the next issue.
  4. The power requirements:  the camera is power hungry, up to 300mA.  So you don't want to leave it running (apparenty).  Not sure how this compares to a webcam. I do notice that starting the raspicam (even though it doesn't work) causes the rainbow box (upper right in newer firmware) to show up, which says I have a voltage drop below 4.8V (so I've read). That doesn't happen with a USB camera plugged into an external hub. And if disabling it is required to avoid power drain that would be a serious problem since it requires changes to the bootloader config and a reboot.  And you need to set aside at least 128M in the GPU.
  5. The sensitive nature:  According to forum posts, the board is finicky about shorting out.  Lots of talk about people frying the cameras.  I handle the Pi quite a bit and none have fried.  Why does a camera that costs about as much have more problems?  It shouldn't.

I never got the camera working so couldn't compare it's quality against a USB web cam.  But I did get a USB webcam streaming 30fps on the pi TO the pi using mjpeg-streamer and omxplayer.   Given my work on pibox infrastructure for adding apps, the USB camera was up and running in a couple of hours.  Works great.  Nearly no delay in playback.  Slight delay only if you stream to a remote player, and that can be attributed to network lag.  I haven't even got the basic Raspicamera working much less integrated into PiBox after the same amount of time, though to be honest all I have to do is edit a config file to integrate it once it works.

Yes, this was an external usb hub with its own power supply.  Irrelevant.  The ease of setup and use of the web cam considering I already need the external hub (for USB media sticks for PiBox) means I'm better off with the USB webcam.

So I can see no reason to use the Raspicam.  At least not for my use case.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.