I have not found a review of this camera anywhere so I’m going to attempt to fill that void.
This USB 2.0 camera module is sold by Ailipu Technology Inc. (Shenzhen) under the model name ELP-USBFHD01M. There are several variations on the product depending on the stock lens you get it with.
I got the camera for around 35€. Shipping was around 30€. An additional 20% tax was asked at delivery (depends on buyer’s country).
Fig.1 ELP-USBFHD01M camera module with the 140° lens.
- Summary
- Installation
- Hackability & form factor
- Camera controls
- Stream formats
- Image quality
- Sensor specs
- The “720p cropped” image format
- Video samples
- Conclusion
Summary
Pros
- 1280×720 @ 60 fps (MJPEG).
- Interchangeable M12 lens.
- Manual exposure.
- UVC compliant.
Cons
- Image sharpness.
- Poor dynamic range.
- No housing.
Installation
The camera is UVC compliant so there is no special installation procedure. It is instantly recognized by Windows (tested on Windows 7, 8.1 and Windows 10 Tech preview). There is no vendor-specific driver to install on top of the Microsoft-provided UVC driver.
The USB descriptors report the following: VID = 05A3
, PID = 9230
. However, a different camera module from Ailipu Tech (ELP8MP02G) reports a different vendor id so I’m not sure it is a legit id from USB Implementers Forum.
The camera name is reported as simply HD USB Camera
and the manufacturer as HD Camera Manufacturer
.
Hackability & Form factor
The module is 37.5 mm × 37.5 mm. It does not have any casing.
The back of the board has a 4-pin connector where the USB cable is plugged. The USB cable can be detached from the board and the connector wiring is printed on the board, which is pretty cool in case of a repair or modification. The shipped cable is 1 meter long as advertised.
Fig. 2. USB connector and wiring.
The board sports a standard M12 lens holder with 20 mm hole distance. The exact lens holder model will depend on the lens.
The lens holder can easily be unscrewed and swapped with another one. The lens is tightened with a screw.
Having an interchangeable lens is really neat.
Fig. 3. Lens mount and focus screw.
Camera controls
The camera has many of the standard controls, including exposure, gain and sharpness.
Here are the DirectShow property pages for Video Proc Amp
and Camera Control
on the filter. Greyed out options are not available.
Note on white balance: it is not possible to reproduce the Auto
mode with the manual slider. I have found that the best color is achieved when using the Auto
mode, especially for whites. The manual mode gives a color cast to everything.
As it is usually the case, the exposure value will take precedence over the framerate when using long exposures. When this happens the framerate is limited to exactly 1/exposure
duration.
Exposure values are not documented. Almost no camera manufacturer follow neither the UVC spec nor the DirectShow spec, and this camera is no exception.
Here is the mapping I found by inferring from 1/framerate
on long exposures and comparing with a Logitech C920 for lower values:
Preset | Value |
---|---|
-1 | 640 ms |
-2 | 320 ms |
-3 | 160 ms |
-4 | 80 ms |
-5 | 40 ms |
-6 | 20 ms |
-7 | 10 ms |
-8 | 5 ms |
-9 | 2.5 ms |
-10 | 1.25 ms |
-11 | 650 µs |
-12 | 312 µs |
-13 | 150 µs |
Focus is done manually by screwing/unscrewing the lens inside its mount.
Stream formats
The camera can stream in MJPEG or YUY2 formats.
Each image size has a single framerate associated with it. In my experience the settings do not always match the actual frame frequency. I have added the values I actually measured in parentheses.
The following combinations are available:
- MJPEG
- 320×240 @ 120.1 fps (100 fps)
- 640×480 @ 120.1 fps (100 fps)
- 800×600 @ 60 fps (60 fps)
- 1280×720 @ 60 fps (60 fps)
- 1280×1024 @ 31 fps (30 fps)
- 1920×1080 @ 31 fps (30 fps)
- YUY2
- 320×240 @ 31 fps
- 640×480 @ 31 fps
- 800×600 @ 21 fps
- 1280×720 @ 9 fps
- 1280×1024 @ 6 fps
- 1920×1080 @ 6 fps
Image quality
Image quality is not a strong point of this camera. Since a poor image quality may come from many factor as the lens, the sensor, the image processing chip or the JPEG encoder, some of which we have partial control on, I will attempt to find out the origin of each issue.
Lens definition
I tested with the 140° and 180° stock lenses, as well as with a Sunex 955A (rated 5 megapixels). I was not able to quite reproduce the image quality of the Logitech C920 or the Microsoft Lifecam Studio. Image quality is not horrible though, and on bright daylight it may be enough depending on the purpose.
Lens flares
Since the camera is not in any housing, the lens is protruding and may be more easily polluted by light rays coming from aside. Some sort of hood will be a good addition when strong light is coming at an angle.
JPEG encoding
The compression level is not known. Some JPEG artifacts may be visible in low light conditions.
Dynamic range
The dynamic range is poor and if the scene contains dark and bright areas simultaneously details will be lost.
Rolling shutter
I measured the rolling shutter frame scan time to be 17 ms on the 1280×720 @ 60 fps and 36 ms on 1920×1080 @ 30 fps. The scan time at other resolutions is similarly mostly dependent on the framerate.
Sensor specs
The vendor reports that the sensor is an Omnivision OV2710. The spec sheet for it can be found in the OV2710 product brief. Here are some highlights:
- Lens format: 1⁄2.7”.
- Pixel size: 3 µm × 3 µm.
- Image area: 5856 µm × 3276 µm.
The “720p cropped” image format
The 1280×720 @ 60fps stream uses a crop of the full frame, not a down sampling of the full sensor as in other lower sizes. This is a characteristic of the OV2710 itself.
The final field of view of the image will be reduced. Apply a factor of 2⁄3 to find the new field of view spanned by the cropped image. For example, if the 1920×1080 image diagonally spans 140°, in the 720p crop it will be reduced to 93°.
The image circle created by a lens made for 1⁄3” sensors will cover the full frame (1920×1080) image. When using 1280×720 @ 60fps the image will be better suited to a lens made for 1⁄4” sensors.
The 180° stock lens provided with the camera seems to be a 1⁄4” format. It is well suited for the 720p cropped stream, but displays hard vignetting on full frame.
Samples
These samples were captured with Kinovea and are direct dumps of the MJPEG frames.
- 1280×720 @ 60 fps, MJPEG, 10-second squash sequence (MP4, 64 MB) - Exposure=10 ms. Indoor lighting. High dynamic range.
- 1920×1080 image, Close-up focus at 3 cm (PNG, 3.27 MB) - Captured in MJPEG mode.
- 1920×1080 @ 30 fps, MJPEG, 13-second juggling sequence (MP4, 97 MB) - Exposure=300 µs. Outdoor lighting. Cloud cover.
Conclusion
In the end the USBFHD01M is a capable camera module. To my knowledge no other USB 2.0 camera provides 1280×720 @ 60 fps to this date.
It can be an interesting tool if you can live with or work around its shortcomings.