Wednesday, November 12, 2014

iPad mini 2 retina LCD to DisplayPort adapter

UPDATE 2015/04/12 These are now available in my RC junk shoppe.

Been meaning to innovate this one for a while, but nobody had datasheet for the board to board connector that the 7.9" iPad mini 2 (2048x1536 retina) LCD used. Finally caved in and bought some from a random Chinashop (about $80 shipped for MOQ, ugh), scanned them, used amazing augenmass tool to calculate dimensions, and made a PCB hoping it would work.

Keen arduino developers will notice there's some extra circuitry which will be a subject of a separate post, however it does appear to function after some quick testing.

I basically copypasted the circuit from the other adapter, removed one of the backlight drivers (this panel only needed 6 channels), added a little innovation, and routed it all within a few hours, because I had some free space on a FR4 panel that I could add a couple boards to. For some reason LCD module wanted to be running at 3.6-3.7V instead of 3.3V, so I gave it that.

Assembly was pretty uneventful, and the annoying fine-pitch FPC connector actually matched my "guessed" footprint and soldered correctly. The board powered up on the first try, and nothing seems broken so far. Current draw at full brightness is a nice 510mA.

I used MicroUSB for power this time (again with external 5V on pads if needed), and the same huge full-size DP connector. All my attempts to source a decent MiniDP connector that wasn't a complete pain in the ass to solder didn't end well. I got some samples that were half-smt half-through-hole but there was about 3 or 4 different vendors for those and each one had slightly different layout for mounting pegs, and I didn't have time to sample them all to find out which one was the most commonly used. Molex also has a all-through-hole one, but it didn't seem to be very available either. So, big size DP for this one.

I quickly ported the firmware from the other displayport adapter to run on new board, so it basically has the same functionality. On the new PCB I added a pad for the button signal so that the power/control button can be placed outside a case or similar, if required.

Here's some pics of first finished board (I only made one).
Full-resolution pics are in picasa album here.

Close-up pic. See if you can spot the innovation.

I should have probably taken a pic next to my phone for size comparison, but this credit-card sized thing will do instead.
My pal told me I should have drawn a dickbutt on it with marker, but it's too late. Missed opportunity. Maybe I'll do it for the kickstarter promo video.

Backlight + power ON. The board fits behind the LCD, and with default landscape orientation, USB + DP connector are on the top.

Backlight off, "standby"

Drawing a cool 510mA at 5V

This looks pretty small compared to my two Dell UP2414Q
No promises on availability, but I might make more than one at some point.

Friday, October 24, 2014

Chromebook Pixel 2560x1700 LCD to DisplayPort Adapter

This is a project I've been dicking around with on and off for over a year. I bought the panel shortly after they became available (which is probably around the time Chromebook Pixel was released), and made a few prototypes in my (very limited) free time that didn't work for one reason or another.

First two prototypes I made the mistake of making them double sided, not realizing just how fucking annoying it is to solder 0.4mm pitch connectors on the back of already populated PCB. First one I used TI's TPS series of WLED drivers, which didn't work as good as I expected, so I scrapped that one. Second one I switched to ROHM driver, which worked better, but I hooked it up wrong, which didn't allow me to bring drive voltage above 5.5V making the panel pretty useless brightness-wise. Finally the third one, I redid the layout so that it was all on one side, making much easier to assemble and to reduce potential fuckups from having to bake the board twice.

The end result is pretty nice, though I'm fairly happy with my 4K Dells at this point.

As usual, high resolution photos are in the Google Picasa album:

https://plus.google.com/photos/101126269564358156827/albums/6073976289400453185?authkey=CI_pmIrn29f0Uw

Thumbnails below (maybe click to embiggen works)
Windows 8.1 monitor control panel with Chromebook LCD below dual 4K Dells

The board itself. Surely didn't cost me anywhere near $130 even if I was going to assemble only one.

Another look at the board.

rev2 prototype with ROHM driver. Failed.

rev1 prototype with TPS driver. Failed for some reason I can't remember.

Yes, 2560x1700 in ~12 inch. Very nice.
The Chromebook Pixel panels are available on eBay for as low as 70$-80$ shipped. Unlike the iPad 3/4 panel, it does not come with a fpc/microcoaxial cable for connecting to the driver board. I ordered 5 samples from nice folks I've dealt with before for cables, and it cost me $100 shipped for 5 - which is a bit high, but would probably become cheaper if I was going to get more of them.

Wednesday, October 1, 2014

Dell UltraSharp 24 Ultra HD Monitor UP2414Q Teardown

I ordered UP2414Q as soon as it was available because I wanted to replace my aging Samsung 2343BW pair with something that sucked less.

The hardware (panel) is great, but Dell's logic board and its firmware are garbage.
There are a bunch of threads with raged users complaining about 'wake up from standby' issue:
etc etc, the list is pretty much endless.

For the last few months, I've taken a pic of the screen every time it fucks up. Which is almost daily. Usual modes of fuckup are, from most common to most rare:

  1. Entire screen just doesn't wake up. Power button keeps pulsing.
  2. Half the screen wakes up, leaving a black tile (usually left one).
  3. Entire screen wakes up, but right-side tile is zoomed/shifted by about 100-200 pixels.
  4. Entire  screen wakes up, but right tile has some bars across it, very faint but visible if looked carefully.
  5. Entire screen wakes up, but left-side tile is showing rainbow-like distortion that changes if the image on that side changes.

The above behavior is pretty random, though I've noticed if the monitor is cold (i.e. morning after being in standby for a while), chances of something screwing up are higher. Also, unlike every monitor I've ever owned to date, powering off also disconnects from DisplayPort link - causing Windows to renumerate monitors and rearrange all open apps/windows on a monitor that's still "connected". Really fucking annoying.

Due to the way Dell designed the logic board, firmware update is impossible, so these (believed to be a combination of firmware and hardware issues) aren't going to be fixed. There are reports of A01 or A02 hardware revision (all 3 of mine are A00) supposedly working better, but the only way to get them if you already own A00 is to send the whole monitor back to dell, and get a refubrished A01 or A02 replacement. And even then you can't specify "I want A01", so you may as well get back A00 again. WTF.

Anyway, since the power/wake up problems appeared, people started raging and prices have been dropping. My first one cost me around $1000 shipped, second one, $900, and I have been watching http://www.ebay.com/itm/141339024014 for a while, so when it sat around at $495 + $70-ish to ship it to me, I thought, why not?

So when the 3rd one arrived, I didn't have any immediate use for it (my desktop bluescreens when I connect 3rd 4K screen to it, either on NVidia NVS510 or intel onboard gfx), so I thought I'll take it apart first and take some pics,  since there seemed to be a lack of those on the internets.

I had a pretty good idea of what was going to be inside the monitor - the current selection of 4K driving monitor SoCs is... rather limited, so I've expected this to use STMicroelectronics MegaChips (more on this later) STDP9320 "Athena" monitor controllers. What I did NOT expect however was 3 of them - I'm sure Dell engineers had good reasons to convert HDMI to eDP using another Athena driver, but I can't fucking imagine why. Just using STDP2600 to convert HDMI 1.4 to eDP would make more sense, be a single chip solution, and still allow switching inputs in exactly same way as now. Then they would feed output of STDP2600 into pair of Athena drivers as it is done now, and call it a day.

On to the teardown pics. Again, I have no idea how to link this shit to the blog directly, so I've uploaded them all in google photos here:

Roughly each step of the process is below, with comments in picture captions. Sorry for shitty pics, at least they were not taken with iPhone 6.  Hirespics are in Google photos at the link above.
First, start with the back panel. Remove 4 screws inside the VESA mount. Then use plastic pry tool to remove front (black) bezel. At t his point, back side can be just lifted off.

Back cover half-removed - USB 3 port mounted inside the back cover prevents it from fully coming off.

Back panel completely removed, USB port separated. It just snaps in place with some plastic standoffs and cable is held by a piece of electrical tape (no kidding).

Logic board mounted upside down inside metal cage. Bottom has 4 LVDS connectors to the panel, and left side can see one of the two gray cables for backlight. Screw in the center of the logic board - the one directly below the SMT sticker and 2 circular markings was NOT fully screwed in on the monitor I took apart. It was in about half way, and I could twist it by hand without even using a screwdriver. No idea what's going on here.

First WTF on the board. HDMI is connected to STDP9320 Monitor SoC and outputs LVDS.

... Which then goes to STDP4028 which is a LVTTL/LVDS to eDP 1.2 transmitter, output of that goes to the tile drivers. 
This is what I expected. I knew Athena SoC could be cascaded to deal with tiled 4K screens. Copy paste one layout, declare victory. Wait, not so fast. ST reference firmware fucking sucks.

Overall logic board layout. Dell could have reduced the BOM cost by over 1/3 simply by dumping bottom left STDP9320 and STDP4028 next to it and replacing with a single STDP2600. I'm sure they had their reasons tho... or did they?

Switching between DP and MiniDP is done with this little thing, its just a 2:1 mux/demux thing in standard rectangular QFN package. 

There's a couple USB3.0 hubs to deal with 4 USB3.0 ports on the back and card reader.

The other hub. Boring.

Boring Realtek USB3.0 card reader. Actually, the speed isn't bad. But don't worry, you won't be able to upgrade monitor firmware by plugging any SD cards here. Nope.

One of DDR SDRAM chips for the Athena SoC and a peek at one of the 10bit LVDS cables.

Another LVDS, each tile needs two of them (total 4 channels)

Back of the board, maybe someone can google that part # and find a service manual some day.

SMT sticker from the front. Nothing of value here, probably.

Back side of one of the STDP9320 parts. The layout of passives is identical.

Back side of one of the STDP9320 parts. The layout of passives is identical.

Here's the second WTF. There's a fucking PIC16 or PIC18 or something similar (I was too lazy to check the part#) on the board. What is it for? I'm gonna take a wild guess that it's probably for the menu buttons + awful fading power button LED.

As I expected (and downloaded datasheet of), this is the panel that's used. LM238WR1 (SL) (A1) by LG Display. Actually that thing showed up on their product road map back in late 2012/early 2013. So there's nothing unexpected here. What's kinda unexpected is it being a 10bit LVDS panel, and not eDP (what I would like) or VbyOne (some proprietary crap by another Japanese company with NIH syndrome).

So, basically Dell UP2414Q is a 100% STMicro design, and I suspect the actual schematics might be more or less identical to an Athena 4K reference board that I've seen at the office before.  There are some oddities (with HDMI input) that puzzle me as to why things were done this way, but overall, with currently available monitor SoCs, this is the only way to make this work.

60Hz over HDMI: Not happening on this board. Just not possible. Firmware update or not. Fixing standby/resume wake up issues: Reported to have been fixed in A01 revision, whether its 100% software or 50/50 hardware/software is unknown. All my monitors are A00, so I've got nothing to compare with. Firmware update for A00 users, if the fix is 100% software: No fucking way. Each STDP9320 has SPI eeprom attached to it, so you'd need to be able to upgrade all 3 somehow. There are also tons of debug UART connectors everywhere, seems each STDP has at least a couple of them, plus few more in other places. There's probably STDP debug boot messages outputting to there, but without proper docs (see below), poking at that debug stuff is going to be a waste of time.

Now, earlier, I crossed out STMicroelectronics and mentioned MegaChips corporation. Why? Well, you won't be able to find any info on this on the internets, but my STMicro contact informed me that as of September 2014, STMicro has transferred "all their DisplayPort-related IP" to MegaChips corporation. This includes all the chips in STDP series, HDMI>DisplayPort, DisplayPort>HDMI, Monitor SoCs, Scalers, etc. My guess is, since none of these were originally ST chips anyway - most of them were acquired from Faroudja and some other semiconductor company I forgot - and ST didn't wanna deal with support, so they sold it off. However they couldn't have picked a worse company to sell it to. MegaChips (http://www.megachips.co.jp/english/index.html) is a Japanese company. As such, they're complete cunts. Trying to work with any Japanese company is a waste of time. They basically do not want your business. So as  far as I'm concerned, the entire STDP product line is now dead and discontinued. Did I mention Japanese corporations are cunts? I'll do it again.

Realtek is going to start sampling their proper 4K2K SoC soon - RTD2796. This one supports HDMI 2.0, DP 1.2 HBR+HBR2, MST, SST, and has flexible panel outputs - 8 channels of LVDS, VbyOne, eDP, etc etc. Basically a one-chip solution to 4K monitor problem and really the only choice now that STDP series are gone.