Reverse engineering Macbook Air FaceTime camera, part 1

A severely cracked 13″ Macbook Air display came my way some time back. The LCD panel was obviously damaged, but it would be interesting to see what makes such a great display tick, and maybe parts of it could still be used? I believe the display came from a Late 2010 Macbook Air (which would indicate an A1369 type construction), but can’t be sure. Anyway – ideas included

  • Keeping the back lighting (assuming it works) and camera, mounting the whole display on a flexible arm next to the work bench. Given the high intensity of the back lighting, it could then (maybe) provide ambient lighting AND video recording of whatever was being worked on. Maybe with a LED light and camera on a separate flexible arms.
  • If the LED backlighting drivers were toast, there should still be some nice white LEDs in there for scavenging.
  • Same thing for the camera, I believe it to be a 640×480 pixel device, nothing too exiting but could still be useful.

Turns out it’s not entirely easy to disassemble these displays. They are sealed together with very strong tape. Heating the bezel helps a lot, but it’s still a fair amount of work – and given the delicate components beneath the bezel, you might want to think twice before doing this on a laptop you care about.. Some good instructions found here, btw. Results so far:

2013-02-19_10-41-22_smallPrying the bezel open…

…before applying heat with a hot-air SMD rework station (regular heat gun would probably also work, if you are careful):
2013-02-19_10-44-38_small

Voila! Bezel is free:
2013-02-19_10-56-14_small

Now the tricky part. The cable from the cable is a thin wire with some kind of textile cover, for strengths I assume. It goes through the hinges and there is no way (as far as I can tell) to get the cable through there, without cutting off the (very small) connector that normally connects to the computers Left I/O (a.k.a. LIO) board. Cut.

Now the whole camera assembly can be removed. It also includes the ambient light sensor, which communicates over I2C. Unknown protocol for that one though – one for the future to investigate..

2013-02-23_22-55-38_small
Very tiny 6-pin connector, normally going to the LIO board.
2013-02-19_13-11-34_smallCamera module exposed in the top part of the screen. Held in place with 2 small screws.


2013-02-23_22-32-08_smallCamera board. 

2013-02-19_13-17-59_smallThese things are small – fingers included for scale reference.

With six wires in the cable it’s pretty clear that 4 are for USB (+5V, Gnd, Data+, Data-) and 2 for I2C. That cable is however crazy small – it’s about 2 mm diameter. Once the outer layer is off, you see 6 even thinner cables. 2 are black, 4 transparent. Which ones are which?

Google is your friend. Turns out there are schematics to be found if you Google long enough. Turns out you need schematics for the LIO board though, in order to get the pinout of the camera/ALS cable, and it’s nowhere to be found for the A1369. Did find a schematic for the A1370 model though (same computer but 11″ screen), with a bit of luck that cable is the same between models.

The 2 black ones are prime candidates for +5V and Gnd. Cutting away the insulation revealed that the cables are shielded, with a center wire that is barely visible to the eye. It took several attempts before I had separated the wires from the sheilding, and then done the same with the other 4 wires. Soldering these onto an old USB cable was then easy (but ugly!!):

2013-02-28_14-09-48_small

Still, it doesn’t work. The camera is not recognised on an iMac with latest OSX, nor on a Windows 8 laptop. Happened to have a Raspberry Pi lying on the work bench, tried it too with same result: nothing.

But wait… doing a “tail -f /var/log/messages” on the RPi showed that it DID recognise the camera, but that the camera wanted more power than a non-powered USB hub could provide! Placing the camera into the RPi’s regular USB port made it appear nicely when doing a “lsusb” command.

Still, it didn’t work when I connected the camera to the Windows or iMac machines – strange.

Also, the RPi loose contact with the camera after a while – no idea why. Could maybe be a bad USB cable (it’s from an old mouse using USB 1.1 – maybe that’s a problem??), or is there too much noise introduced by the ugly splicing of cables that I’ve done? No idea… More investigation needed. Anyway, the camera enumerates with USB id 05ac:850a, which indeed is an Apple FaceTime camera – nice!

Advertisements

8 thoughts on “Reverse engineering Macbook Air FaceTime camera, part 1

  1. Douglas

    Did you ever get this working? I work in a pc repair shop and get a plethora of these cameras to play with and thought this would be fun to try.

    Reply
    1. gsander Post author

      Well the camera enumerates just fine, given proper DC input (powered USB hub needed). Couldn’t get the video software to talk reliably to the camera though, most likely some custom drivers are needed (they are not available from the manufacturer’s web site, unfortunately).

      But if you have access to non Apple laptops (or older Macbook’s, they use more easy-to-work with USB connections I have been told) the odds of extracting a working mini-camera should be pretty good.
      And as always, Google is your friend when it comes to figuring out pinouts etc, but a good multimeter also helps a lot, of course.

      Good luck!

      Reply
      1. Douglas

        Well, I want to stick with mac cameras for the simple reason I have like 40 of these things right now. It’s not so much how do I salvage a built-in webcam as I want to do something really cool with all of these.

        I wired up one and plugged it in with USB, however it was completely unknown and would not generate a device id.

        I haven’t thought of the multimeter, I’ll give it a shot!

  2. ebertek

    Could you please check how the green LED is connected to the board? Is it theoretically possible to power the camera without giving power to the LED?

    Reply
    1. gsander Post author

      I have no idea… sorry.

      There are some additional wires going from the LILO board to the camera board, maybe one or more of them control the LED. Or the LED is controlled via commands sent over USB to a microcontroller om the camera board.
      I haven’t really played around with this since the last blog post, so I don’t really have any additional info at this point. When/if I get it, I’ll make sure to post it here, though.

      Reply
  3. Pingback: Nieuws - Onderzoekers capturen webcam zonder notificatie-led te activeren

    1. gsander Post author

      Well, the webcam in that Macbook Air display DID enumerate just fine as a USB device, the problem was probably more around the ghetto-style connection I spliced together. The wires coming from the camera module are just incredibly tiny.. The splicing I did probably introduced a bunch of noise, and combined with the fact that I could find any useful drivers for the camera, it was a touch one.

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s