Monthly Archives: August 2013

Miscellaneous updates, 2013-08-27

It’s been quite a long while since I’ve posted anything, so I just wanted to put something up to reaffirm that I’m still here 🙂

It has been a busy few weeks for me in the world  outside my workbench, so progress has been slow on the active projects.  Here’s an overview of what’s going on:

  • Macbook “full-featured” controller board:  Boards hare arrived, waiting on component delivery (due Thursday).  This will include demos of some new and lower-cost components which will eventually make their way into other boards.
  • iPad “full-featured” controller board:  On hold pending redesign for cost reduction and results of Macbook hardware evaluation (as much of the hardware is shared).  Will leapfrog the Macbook and iPad boards until I am satisfied with how they work.  Also am working on the software for this board.  I’m really trying to get a USB firmware update utility built, but I’m new to the Kinetis platform so I’m having some trouble.  Has anyone out there built a DFU loader for a KL25 that can share some pointers? 🙂
  • Macbook camera board:  I ordered a 2-layer version (inner layers are all GND) some weeks ago to test, and that worked fine.  Now the proper 4-layer boards are in and I need to build one of those up.  But I’m satisfied with the design in general so I should be releasing those documents as soon as I get the ambition.
  • iPad touch panel:  Oof… haven’t touched that one for a while.  Need more free time…
  • Reflow oven:  I found some proper convection-type ovens at the local Wal-Mart for around $40 which will save me plenty of work in installing my own stir fan, so I may well be starting over.  For now I’m getting too comfortable running the boards freehand with a temperature probe though…
  • LP173WF2: Working on an interface board to take advantage of the connector hack I implemented.  In progress, no ETA

So that’s that.  Not much to show at the moment.  But hopefully that’ll change this weekend when I get some work done on the Macbook boards.

Plus!  I just this weekend got my new milling machine up and running!  So expect some metalworking projects to start showing up from time to time.

That’s all for now.

[EDIT 9/9/13] Hey, progress!

Good ol' high-definition Futurama.

Good ol’ 2880×1800 Futurama.

The Macbook board mostly works!  Backlight driver is putting out on the low side of its designed voltage and the firmware is only complete enough to force everything on, but other than that, it seems to run pretty OK.  Full post on this hopefully tomorrow.

Hacking the Macbook Pro Retina LCD, Part 3: First Working Demo

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:

Assembled test board with all wires attached.  I unfortunately don't have a photo of the board prior to installing the wiring.

Assembled test board with all wires attached. I unfortunately don’t have a photo of the board prior to installing the wiring.

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!

It works!

It works!

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:

Not sure what Pin 10 is.  Looks kind of like 0.5*HPD

Not sure what Pin 10 is. Looks kind of like 0.5*HPD

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 don't have many of the parts modeled yet.  So sue me, I was in a hurry!

I don’t have many of the parts modeled yet. So sue me, I was in a hurry!

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.

<< Previous post in this seriesNext post in this series >>

A Compact FullHD 120Hz 3D Display, Part 1: First Looks

Last week I wandered across a thread over at the forums talking about my iPad controller boards.  It would seem there is a growing demand for ultra-high-resolution multi-panel displays amongst the gaming and power user crowd.  The recent releases of high-pixel-density panels in consumer devices means they have become quite accessible to the average hobbyist.

There are a couple of niches that these panels best fill.  For the road warrior, the compact size of the iPad panel might be nice.  For the graphic designer, the Macbook Pro Retina panel offers good performance.  But for the gamer crowd, where high refresh rate is most desirable, neither of these panels quite fits the bill.

As it so happens, boutique PC manufacturer Alienware continues to push the limit (and budget) of the gamer-on-the-go.  Enter the Alienware m17x, a megalaptop with an optional 17.3 inch, 120Hz, full HD 1080p, 3D-capable display.  That’s an awful lot of display, and found in its native habitat the privilege of using it would start at $2000, but thankfully we can find replacement panels in the usual places for about $100.

Now, 1080p doesn’t really hold a candle resolution-wise to some other panels such as the Macbook Pro Retina display at 2880×1800.  But the major advancement here is the 120Hz refresh rate, which promises to offer better gaming performance and less video tearing.  I don’t game much, but I was curious about the combination of features in this panel, so I bought one to play around with.

The panel in all its glory.  Note that I'd already removed the square of conductive shielding cloth before this photo was taken, which is why it is wrinkled.

The panel in all its glory. Note that I’d already removed the square of conductive shielding cloth before this photo was taken, which is why it is wrinkled.

This is the LG LP173WF2(TP)(A1).  We can pull all the necessary specifications from its datasheet (mirrored locally here).  It is driven with 4-lane Embedded DisplayPort, just like the Apple Retina panels.  However, interestingly, this panel is driven with 5 volts, instead of the typical 3.3V.  Further unexpectedly, the panel electronics draw a shocking 2.3 amps (11.5 watts), which does not include the backlight.  I bet the stock 86Whr battery in the m17x doesn’t last very long.

Speaking of the backlight, a notable difference between the Retina panels and this panel is that the LP173WF2 contains onboard backlight drivers, eliminating the need for external drivers.  SImply apply between 7 and 20V, a logic-high Enable signal and a 5-100% duty cycle square wave, and the rest is taken care of.  The backlight claims to draw another 11.6 watts.  Here are some high-resolution shots of the panel’s backlight drivers and controller electronics:

Just like every new display, this panel has a different set of power and control requirements to all the others.  Thus, a new controller board will be designed to fit the particular needs of this unit.  But we’ll get to that in due time.

First, let’s take a closer look at what we’re working with.  Seemingly similar to every other panel, this one has a unique connector and pinout.  In this case it is a JAE FI-VHP series 50-pin connector, FI-VHP50S-A-HF11, mating connector FI-VHP50CL-A.  This is a problem for a couple of reasons – first, this appears to be a new part which is not currently available at any of the usual distributors, second, even if we could find it, it’s probably beyond the capability of most folks to populate the 0.5mm pitch connector with the very small (32-42AWG), preferably shielded coaxial wires.

So what do we do?  We could order a reel of 3000 pieces direct from JAE for some thousands of dollars, but that’s not a wise investment unless we’re likely to use a couple thousand pieces, and then we still need to assemble the harnesses (and soldering 50 tiny wires on 0.50mm pitch won’t be fun).  We could draw up a specification and order custom harnesses from a supplier, but still unless the quantities are quite high they will probably be more expensive than we’d like.  We could buy used assemblies from the source laptop on eBay, which we can get in single-piece quantities, but these are not very prevalent and are extremely expensive.  Or we could replace the connector with a more widely-used type, which requires us to modify the panel but is comparatively very inexpensive and easy to come by.  I have opted to take this last approach initially, and will reevaluate the other options if demand arises.

Originally I contemplated designing a flex circuit harness to solder directly to the panel and break out into an iPad-style 0.3mm contact pattern.  I still think this would have been a fairly slick solution, but when I attempted to draw it up I found that this contact pattern is not possible for the low-cost prototype houses to produce – the traces are too small and the pads are too close together.  So as a runner-up option I have chosen to replace the existing connector with a 0.5mm ZIF FFC socket, FCI 62684-501100ALF.  By using a standard connector like this we can also use standard FFC cable assemblies, which are very inexpensive and come premade in a variety of lengths.  I bought a 2-inch cable which seems about right.

Original FFC concept.  Ultimately this plan proved too complex for the "budget" flex board suppliers.

Original FFC concept, using my full-feature iPad board as a stand-in for the new board.. Ultimately this plan proved too complex for the “budget” flex board suppliers, and I was unwilling to pay for a “real” board house.

The downside to this approach is that since the VHP-series connectors have a 3-pin-wide break in the middle, the 50-pin connector is actually the width of 53 pins.  Luckily two of the pins on one side are No Connects, but we are still forced to choose between losing pin 1 (“2D/3D Contents Communication”) and pin 48 (DP Lane 3 shield ground).  I have opted to offset the connector to carry the ground connection, and will re-wire pin 1 to one of the three unused pins in the middle of the connector if I get around to it.  Actually if you look at the controller photos it appears as if pin 1 is connected through a non-populated resistor and is thus a no-connect, so I may not bother.

The removal of the existing connector took a surprising amount of effort.  The FI-VHP series has stabilizing legs soldered to the board on the three sides without contacts, so all four sides are soldered down.  This makes removal of the connector, particularly without harming nearby components, quite difficult.  To reduce heat transfer to the heat-sensitive plastic diffuser films, I propped the controller board up off the rear surface of the panel.  I would like to have flipped the controller board over and solder it against a flat surface to avoid stressing solder joints, but the board is held by a small jog in the plastic frame and I felt uneasy putting enough stress on the connecting ribbons to move it.

An embarassing amount of time later, the original connector was removed, losing only one mount pad and the two No Connect pads in the process (probably because my heat was too high):

Connector removed (but pads not yet cleaned), connector modified to clear U4, soldermask removed for side feet.

Connector removed (but pads not yet cleaned), new connector modified to clear U4, soldermask removed for side feet.

Now, to understand my next move, it is important to note my grand plan for this panel.  I’ll illustrate the plan with a 3D model as soon as I have time to draw something up, but for now words will have to suffice.  The panel will need to have a controller PCB attached, to generate the backlight dimming signal and break out the eDP to a more accessible connector.  The various connectors required and the cables attached to them are bound to be heavy, so I don’t want to attach my board to the thin plastic protective sheet over the LCD controller.  I’d much rather stick it directly to the exposed sheet steel chassis.  To achieve this the ribbon cable must point up.  I could either accomplish this by putting a sharp bend in the ribbon cable, or by populating the connector upside-down.  The latter option has the disadvantage of interfering with one of the eDP ESD protection diode arrays, but it provides the benefit of also allowing me to solder down the outer feet to provide strain relief to the tiny solder joints.  This is ultimately the path I chose.

I scraped away some soldermask to make pads for the connector’s feet, and trimmed off the corner of the connector and latch to clear the protection diode.  Then, time to solder the pins.  I had some trouble getting the solder to flow between pin and pad – because the connector “only just” fits behind the diode, there is almost zero exposed pad behind each pin, which means there is no rear solder fillet to span the gap.  Probing the pins with a dental pick after the first pass noted several wiggling pins, on which solder had flowed over and up the pin but not down around it.  I went back and pressed down on each pad while applying a little more solder and that seemed to fix things.  And after more time than I am comfortable admitting to, and on my third connector after ruining two, it was finally done.  Here’s what it looks like now:

Looks pretty good, if you don't look too close.

Looks pretty good, if you don’t look too close.  Don’t let the photo size fool you, those pads are really really tiny.

Ultimately I was unable to reflow it with hot air and unable to solder it with the finest tip I had on my home soldering iron so I had to take it to work and use the professional soldering station there.  I often say that the things I design are difficult to build up, but for some reason – probably due to the delicateness of this assembly – this one was the most difficult soldering job I’ve recently had to do.  I sure hope a source for the correct connector appears, because this was no fun!  Actually, to be fair, after I started using the pro soldering station things went a whole lot better, so maybe if you have good equipment it’s doable.  But it’s certainly no cakewalk.

That’s about all I feel like doing for now.  I now need to spend some time hacking the other end of the ribbon into one of my iPad or Macbook boards in order to apply power to the panel.  As a happy accident, as I noted in an earlier post, I have a set of boards that I designed erroneously to break out a 0.5mm connector which I thought was used in the Macbook, so maybe I can leverage those to get up and running faster.  We’ll see.