After screwing up and designing boards around an incorrect connector, and then when the corrected boards came in immediately leaving town for a week on business, I’ve at long last had some time to work on the Macbook panel. Spoiler alert: Some progress has been made.
If you don’t recall from previous posts, I threw together a quick board containing only DisplayPort and I-PEX connectors and a bunch of pin headers between them. The idea is that since we know where the DisplayPort connections are but not the order in which they are arranged, we can solder in jumper wires very easily to test the various lane orderings and polarities without having to otherwise modify the board. Here’s (the fixed Rev B version of) the board I used to figure out the pinout:
There’s nothing special going on here. At top, connected to the panel, is the I-PEX connector, with its known power and backlight pins hardwired in. At the bottom is a standard mDP, connected to the host PC. I connected all the wires I could – power and backlight of course, and AUX+ and AUX-. From there some engineering is required.
First, we look for Hotplug Detect. This pin should go logic high shortly after power is applied to the panel. There are only two pins left on the connector without a defined purpose, 9 and 10. In testing the panel, it is observed that pin 9 develops 2.8-3V, and pin 10 develops 1.4-1.7V. The latter is a bit low for HPD, so we will assume that pin 9 is HPD and pin 10 remains unknown for now.
With that pin now connected, we begin testing the DP lanes. Remember that logically, the lanes should be arranged in one of four orders: 0+/0-..3+/3-, 0-/0+..3-/3+, 3+/3-..0+/0-, or 3-/3+..0-/0+. I started with the first ordering listed. Interestingly, the display showed a half-inch of garbled blue blocks at the top and gray bands down the rest of the surface, but the display announced itself to the PC properly and I was able to set its properties. More boggling yet was that when I reversed the polarity of each of the four pairs, I got a different garbled top area (this time more like static) and the same gray bands, but equal operation with the PC. I had always assumed that the incorrect polarity would result in a completely inoperable display – interesting. But not yet correct. I tried the other two combinations, and neither of those would even bother to talk to the PC beyond sending EDID.
I panicked for a second here, thinking I’d have to try a lot more combinations of pinouts, taking a lot more work. I tried just connecting one, two or three lanes to see if that made any difference but the PC was unhappy with all of these tests. Finally I happened to glance at the analog ammeter dial on my bench supply and it was wiggling fairly wildly around the 300mA range. This didn’t seem right at all, and I immediately began to suspect the power I was applying to the panel (through about three feet of jumper wires to place it close enough to the DisplayPort source on the other side of the room). When I replaced the original pinout (with the blue blocks) and used about 8″ of hard-soldered wire and a local bench supply, and upped the current limit to about 1A, I was greeted with the following!
This just goes to show you how important it is to pay attention to the impedance and voltage drop of your wiring. Always use as short of wires as possible! Do note that I only connected one backlight string, which is why the banding is so bad; with the other five strings connected it probably wouldn’t be noticeable. It looks a little dark because I don’t have proper current limiting installed and I’m driving it cautiously.
So now we know the full pinout of the Macbook Pro 15.4″ panel (or, at least enough of it to get it running. Here it is, for your design and hacking purposes:
Finally knowing the pinout, and running short on time before the next OSH Park 4-layer order, I quickly made up a proof-of-concept controller board for the panel. The board includes a Freescale MC34844A backlight driver, a Freescale Kinetis MKL25Z128 ARM Cortex-M0+ processor (again chosen for cost to performance ratio), independent switching supplies for the processor and for the panel (which requires a different voltage), mini-USB and mini-DisplayPort connections to the host PC, and a header to match the header on the camera board for the ambient light sensor. Special care was taken to cut costs on this board wherever possible without compromising functionality – the Linear Technology switcher from the iPad board was scrapped for parts a third of the cost, and some parts were increased in size to avoid paying the premium for the size decrease. With some difficulty the board was kept to the same compact 1.5×2.5 inch form factor as the full iPad board.
I will release the documents for this board as soon as I build one up and verify that it works – I don’t want anyone ordering a board which might not work. If you still really want them ahead of time to look at, send me an email.