The good folk at Ailipu Technology have sent me a fist-sized USB camera to review. This is a cheap and simple way to get external video into a home server like a Raspberry Pi.
This is the, slightly cumbersomely named, elp-usb100w05mt-dl36.
What's in the box?
The USB cable is around 5 metres long, and is wired into the camera. Four screws and rawlplugs are also included. Why? Because there are mounting holes at the back of the camera.
To access them, your have to unscrew the base. The whole camera unit comes apart - this allows you to change the orientation and angle of the camera.
The unit is a simple affair. A central lens, a light sensor above it, and 24 Infrared LEDs.
It's rainproof - so suitable for mounting outside. No software is needed - it is detected as a USB video camera in Linux.
There's a bit of fish-eye on the image, but colours are reasonably good. Image is a bit soft, but certainly good enough to let you see what's going on.
IR illumination is pretty good. You don't get much fine detail - but it is more than enough to see what's going on. The camera needs to be installed outside - the IR will reflect back into the lens if the unit is placed behind glass.
It's only a 1280x720 resolution unit. That's fine for seeing detail in things close up - but you're not going to pick up car car number plates very easily.
The MJPEG stream is meant to be 30fps. In reality, it varied between about 10FPS & 30FPS. Again, good enough for security camera footage.
Poor audio. There is a cheap mono microphone inside the unit. As in right inside the dome. If you tap on the lens, you'll hear it, but it doesn't seem to pick up speech or anything else. But if all you care about is seeing what's going on, it's not a huge issue.
The USB cable seems pretty chunky - but I'm not sure how weather-proof it is. If you install it, remember to regularly inspect it for defects.
You can unscrew the dome! It's tight, and there is a rubber layer there to keep it waterproof.
You can see the tiny condenser microphone in there. Everything is securely afixed and neatly wired. You could easily replace the internals if you needed.
A pretty good camera for forty quid. If you have a Raspberry Pi mounted outside, this is a good way to get video to it.
In a world of cheap, WiFi connected IP cameras, this makes sense for anyone who wants a more reliable connection - and a camera which can boot up instantly.
Quality isn't exactly high def - but, for the price, it will do.
You can buy the camera for £40 on Amazon (Affiliate link).
Linux Tech Specs
Camera works out of the box with Linux - tried on a recent Debian build and an older Raspberry Pi.
05a3:9310 ARC International
Driver Info (not using libv4l2): Driver name : uvcvideo Card type : USB 2.0 Camera Bus info : usb-0000:00:14.0-3 Driver version: 4.10.17 Capabilities : 0x84200001 Video Capture Streaming Extended Pix Format Device Capabilities Device Caps : 0x04200001 Video Capture Streaming Extended Pix Format Priority: 2 Video input : 0 (Camera 1: ok) Format Video Capture: Width/Height : 1280/720 Pixel Format : 'YUYV' Field : None Bytes per Line : 2560 Size Image : 1843200 Colorspace : sRGB Transfer Function : Default YCbCr/HSV Encoding: Default Quantization : Default Flags : Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 1280, Height 720 Default : Left 0, Top 0, Width 1280, Height 720 Pixel Aspect: 1/1 Selection: crop_default, Left 0, Top 0, Width 1280, Height 720 Selection: crop_bounds, Left 0, Top 0, Width 1280, Height 720 Streaming Parameters Video Capture: Capabilities : timeperframe Frames per second: 10.000 (10/1) Read buffers : 0 brightness (int) : min=-128 max=127 step=1 default=0 value=0 contrast (int) : min=0 max=255 step=1 default=128 value=128 saturation (int) : min=1 max=128 step=1 default=64 value=64 hue (int) : min=-40 max=40 step=1 default=0 value=0 white_balance_temperature_auto (bool) : default=1 value=1 gamma (int) : min=72 max=500 step=1 default=100 value=100 gain (int) : min=0 max=100 step=1 default=0 value=0 power_line_frequency (menu) : min=0 max=2 default=1 value=1 white_balance_temperature (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive sharpness (int) : min=0 max=6 step=1 default=3 value=3 backlight_compensation (int) : min=0 max=2 step=1 default=1 value=1 exposure_auto (menu) : min=0 max=3 default=3 value=3 exposure_absolute (int) : min=1 max=5000 step=1 default=625 value=625 flags=inactive exposure_auto_priority (bool) : default=0 value=1