Close
0%
0%

Laptop Webcam Reuse Made Simple

Showing you how to reuse laptop webcams in your project

Public Chat
Similar projects worth following
In this project, I will be talking about webcams. I've also developed an FPC adapter that people can use to reuse their camera without sourcing/soldering the connector!This project is part of my effort to help people reusing laptop parts. I'm currently working on something that helps reuse laptop keyboards and batteries, and the display panels will be covered eventually.

How to reuse cameras: https://hackaday.io/project/110436/log/164045
Listing reused cameras here: https://hackaday.io/project/110436/log/164054

Why use laptop cameras?

  • They are cheap

If you have a broken laptop, you are exceedingly likely to have a camera you can reuse.

  • They are small

Unlike the usual webcams, the laptop cameras are very small and easy to hide.

  • They are easy to connect

You just need to connect two USB wires, ground and power (preferrably, 3.3V).

  • Usually good Linux support

The majority of laptop cameras play well with Linux and will work with the default tools (i.e. ffmpeg, mjpg-streamer, gstreamer and v4l-utils)

  • Good hardware

Laptop manufacturers usually get reliable hardware - as much as the image quality might be inferior, the camera is unlikely to die on you at random and will conform to the USB specifications.

What are the problems with laptop cameras?

  • Comparably low quality

While the cameras might advertise 1.3M sensor, the quality of the actual image. One thing - the image quality is directly , it's directly corellated to the age of the laptop you're sourcing the camera from - i.e. if the laptop was made in the last 5 or so years, the camera is going to be much better than, say, a camera from a 10-year-old laptop.

  • Bad autofocus, no software-controlled manual focus

Compared to i.e. Logitech cameras (that I use a lot where the budget allows), there's a lot to strive for when it comes to laptop cameras and focusing them. You can refocus the most common laptop cameras, but only mechanically, by rotating the lens - and they cannot autofocus on its own. That's not to say that re-focuseable laptop cameras exist - I own one like that, it came from a high-end laptop, but it's definitely not common. And still, compared to cheap webcams from China, there is barely any difference, so if your choice is between picking a cheap camera from eBay or disassembling a laptop, it's better to disassemble a laptop =) 

  • Lack of hardware encoding

Many cameras actually don't stream a raw image over USB and instead compress the image into something more lightweight - i.e. MJPG (widely available) or H264 (usually available in more expensive cameras) If you're streaming the image over the Internet, the hardware encoding of the camera will allow you to offload your CPU significantly (especially if you're streaming from a device with a weak or already busy CPU). Laptop cameras don't typically have MJPG hardware encoding, unfortunately, that's reserved for high-end webcams, i.e. Logitech higher-end models. 

How do you reuse a laptop camera?

See this worklog for guidelines.

Any easier way to solder wires to the connector?

Yes, I've developed this FPC adapter which is easier to solder to your camera.

Can you use laptop camera microphones?

Yes, you can reuse them. I won't be covering this, but the idea is simple - these microphones usually use PDM, in a configuration like this:

However, giving any further advice will require knowing more about the PDM communications standard, and unfortunately I haven't worked with it yet.

camera_adapter.zip

V1 of the adapter

Zip Archive - 228.70 kB - 05/29/2019 at 13:38

Download

  • Successfully reused cameras (+ not working cameras)

    Arsenijs05/29/2019 at 18:17 0 comments

    Here's a list of lsusb entries with cameras that have successfully been reused:

    • ID 090c:37a9 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.)
      • Lenovo EasyCamera, YUYV 4:2:2, 640x480 20fps, up to 1280x1024 7.5fps (likely interpolated)
    • ID 064e:a219 Suyin Corp. 1.3M WebCam (notebook emachines E730, Acer sub-brand)
      • eMachines E730 camera, YUYV 4:2:2, 640x480 30fps, up to 1280x1024 7.5fps (likely interpolated)
    • ID 090c:37a2 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.)
      • HP Webcam 101, YUYV 4:2:2, 640x480 24fps
    • ID 04f2:b064 Chicony Electronics Co., Ltd CNA7137 Integrated Webcam
      • CNA7137: Chicony USB 2.0 Camera, YUYV 4:2:2, 640x480 30fps, up to 1280x1024 7.5fps (likely interpolated)
    • ID eb1a:2761 eMPIA Technology, Inc. EeePC 701 integrated Webcam
      • UVC Camera, YUYV/UYVY 4:2:2, 640x480 30fps
      • From an EEE PC 701 
      • Silkscreen says that requires 3.9V but it seems to work on 3.3V
    • ID 04f2:b015 Chicony Electronics Co., Ltd VGA 24fps UVC Webcam
      • HP Webcam, YUYV 4:2:2, 640x480 24fps
    Read more »

  • Laptop webcam reuse guidelines

    Arsenijs05/29/2019 at 13:59 0 comments

    Connector

    If you decide to desolder the original camera connector, feel free to tear the shield pins off. However, it's somewhat better if you leave them on - less chance of ripping the other pads off.

    Otherwise, make sure you're leaving at least 5cm of wires for your experimentation. Also, keep in mind that the thin wires usually encountered in camera connectors are easy to tear out of the connector - make sure you don't pull on the wires!

    Pinout

    Some cameras show their pinout on the back silkscreen:

    If you're not so lucky, you will have to find the proper pins one-by-one. Here's how:

    First, find and solder the GND pin. The gold-plated rings around the mounting holes on the camera PCB are connected to GND - so take a multimeter. By the way, the connector's shield pins are often NOT connected to GND.

    Then, look for VCC - find the nearest capacitor to the connector, then find the GND side of this capacitor - the other side is likely to be connected to VCC. There are also other capacitors on the camera board, that's why I'm saying to look at the closest ones. If you can't find the VCC pin, just find the D+/D- pins, the one pin that's not data or ground-connected is exceedingly likely to be VCC.

    D+/D- wires are often twisted, not always, but when they are, it's a dead giveaway. D+/D- pins are usually connected to a small filter on the PCB:

    Just use your multimeter to find which pins of the connector are connected to this filter, these will be your D+ and D- pins. Also, if you end up tearing off the D+/D- pads, this filter is where you'll be able to take the missing signals from (though you will need to use 0.1mm magnet wire and a fine-tip soldering iron, anything else will just cause more problems).

    It's OK if you mix D+ and D- pins up, the camera just won't work - so if it doesn't work once you've soldered all the wires, try swapping the D+ and D- wires and then plugging the camera in again.

    On high-end laptop cameras, there can be a fifth wire (one that's not involved with some kind of microphone) that is not connected to either VCC or GND. Try leaving it alone, but if the camera doesn't enumerate and doesn't cause USB errors either, try touching it to VCC or GND, it might be a "camera enable" pin.

    Voltage

    Laptop cameras work better with 3.3V, as they're designed for 3.3V operation inside the laptop. While it's tempting to feed it 5V from the USB connector (and many tutorials on the Internet suggest that), your camera is likely to either overheat or burn up. The best option is to add a small 5V-3.3V regulator (or use 3.3V directly if you're connecting your camera to a Pi), but if your budget is limited or you can't find a regulator, two diodes will also work:

    Software (Linux)


    Debugging

    dmesg | tail for reading the last 10 kernel events, in case you've fucked up, it will mention something like usb 1-1: device descriptor read/64

    If your USB port stops working altogether after an experimentally plugged USB device and dmesg | tail on your Raspberry Pi says this :

    usb usb1-port1: attempt power cycle

    Then disconnect the offending device and use this command:

    echo 0 > /sys/devices/platform/soc/20980000.usb/buspower; sleep 1; echo 1 > /sys/devices/platform/soc/20980000.usb/buspower

    It will reset your USB port. However, if you plug the device again and it will be faulty, your port might error out again. Also, this command might not work on full-sized Raspberry Pi that have 2 or more USB ports - I can tell that this command crashed the Pi3 I tried it on. However, it's also possible the Pi3 USB port will not be susceptible to this problem.

    Camera info

    Isusb to list the USB devices connected, show the USB VID/PID and the USB device name (the name is not necessarily useful and is taken from a database that's stored inside your Linux distribution). There are all kinds of lsusb options to get more info, i.e. about specific...

    Read more »

  • FPC adapter for reusing cameras

    Arsenijs05/29/2019 at 13:37 0 comments

    This is an adapter that lets you connect USB wires to the camera easily, so that you don't need to solder thin wires to the connector's pads or reuse the original wiring. You can find the KiCad files in the "Files" section of this project.

    This adapter is pinout-agnostic - no matter the pinout of your camera, which pins are ground and which are data pins, it will work. It also gives you a way to solder the FPC adapter to the shield pads on the PCB so that it's harder to accidentally tear the flex adapter off of the solder pads. Also, it accepts some variations in the connector pad pitch - I've printed it out and it works on the cameras I use, even if the connector pitch is a little bit smaller than 1mm.

    Once the design is finalized and I have a chance to test it, I will make usage instructions and sell these on my Tindie store. In the meantime, you can use this OSHPark link to try it out yourself!

    This adapter is designed for 6-pin cameras, so you can use it even on cameras which have microphone pins and try to reuse the microphone, too. If you don't need all the 6-pins, you don't have to solder all of them.

View all 3 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates