Reverse engineering LCD from Ipod Nano V6 - Page 1
Forum section: electronics / projects

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 14, 2013, 11:01:43 pm
content: And some stuff about advanced scope features

author: sean87
author_rank: Regular Contributor
timestamp: April 15, 2013, 01:06:50 am
content: Great work, mike. Lots of stuff to learn

author: BravoV
author_rank: Super Contributor
timestamp: April 15, 2013, 01:17:04 am
content: +1, great videos, thanks a lot Mike !

author: c4757p
author_rank: Super Contributor
timestamp: April 15, 2013, 01:20:20 am
content: Ooh, Mike's got new videos!

author: tnt
author_rank: Regular Contributor
timestamp: April 15, 2013, 09:04:39 am
content: And what did you find out ? How does it work ? (the LCD I mean)

author: hlavac
author_rank: Frequent Contributor
timestamp: April 15, 2013, 03:37:15 pm
content: I think he said he will publish it once he gets to control it thru FPGA or something to verify it works.Patience, my friend

author: smashedProton
author_rank: Frequent Contributor
timestamp: April 15, 2013, 05:29:19 pm
content: Cool! I have been wondering. Are reverse engineering skills something that you should put on a resume? To me it almost sounds like putting hacking on an application for google.Also, what are you going to use the screens for? Is there somewhere that you can buy just the screens? It would be pretty inefficient to buy a bunch of nanos just for the lcd touch screen.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 15, 2013, 06:06:20 pm
content: Quote from: smashedProton on April 15, 2013, 05:29:19 pmProbably depends on the job, but the ability to figure things out is a valuable skill.

author: c4757p
author_rank: Super Contributor
timestamp: April 15, 2013, 06:08:28 pm
content: Quote from: smashedProton on April 15, 2013, 05:29:19 pmProbably sounds better on the resume if you do something cool with it and list that. "Hacked an iPod LCD" sounds a bit subversive. "Designed and built ${freakingawesomedevice} with iPod LCD" sounds a bit better.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 15, 2013, 10:39:22 pm
content: Quote from: c4757p on April 15, 2013, 06:08:28 pm..but make sure you point out you did it without access to proper data...

author: marshallh
author_rank: Unknown
timestamp: April 15, 2013, 11:23:50 pm
content: Could've also done with FPGA bram capture, 2x PLL the source clock to capture the DDR lvds signals

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 15, 2013, 11:30:54 pm
content: Quote from: marshallh on April 15, 2013, 11:23:50 pm..or just capture on both edges

author: ecat
author_rank: Frequent Contributor
timestamp: April 16, 2013, 02:21:38 am
content: Excellent stuff mike, love the detective work but just the thought of soldering those tiny little wires makes my eyes bleed.

author: pickle9000
author_rank: Super Contributor
timestamp: April 16, 2013, 02:54:31 am
content: Awesome!

author: NiHaoMike
author_rank: Super Contributor
timestamp: April 16, 2013, 03:00:59 am
content: Those signals look like MIPI DSI.

author: daveshah
author_rank: Unknown
timestamp: April 16, 2013, 06:42:40 am
content: The Raspberry Pi has a MIPI DSI interface, but it is not yet activated in software; so this would be another option for a relatively cheap controller. Also, the iPhone 4 LCD and required connector are both easily available, and also uses MIPI DSI (pinout attached). This gives another option for a cheap, high-res display.

author: amyk
author_rank: Super Contributor
timestamp: April 17, 2013, 08:49:04 pm
content: Another great video from MikeAlthough it only took me around 5 seconds to find the specs on the Internet... you can thank the Chinese for that.IMHO MIPI DSI is an overly complicated interface they created more for the purposes of exclusivity than anything else. The fact that they don't want everyone to know about it just supports my point more. For displays with integrated memory there's the Philips/Epson protocols which are dead simple and everywhere. For higher speed/resolution there's existing LVDS, DVI, etc.Not surprising that Apple would use it though... but thanks Mike, now replacement iPhone LCDs might become viable displays for other projects.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 17, 2013, 09:41:23 pm
content: Quote from: amyk on April 17, 2013, 08:49:04 pmI disagree - a new interface was needed to address the combined need for low power and high resolution, and standardising it is in everyone's interest. The whole confidential spec thing is just par for the course - nobody cares about anyone who can't afford to join the club, and probably the only way to get everyone to agree on a commpn spec.QuoteBut not fast enough for video.QuoteThose interfaces are power hungry - one of the reasons for the complexity of DSI is minimising power draw by disabling high-speed drivers whenever possible.

author: amyk
author_rank: Super Contributor
timestamp: April 28, 2013, 09:47:59 am
content: Great work! IIRC the spec says 25ns is the minimum clock period (40MHz), but that being the spec it probably means "to be compliant a controller must support at least 40MHz" and a real implementation could go lower. Theoretically a completely static design would let you clock in a bit at sub-Hz speeds, but they might've designed with the spec in mind and used some dynamic logic. Otherwise the thought of hooking one up to an Arduino might not be so far-fetched...Quote from: mikeselectricstuff on April 17, 2013, 09:41:23 pmDepends what you call video, butthis seems to work, and has audio too. There have been many cheap MP4 players using these screens, and they can also do video+audio at 15-20FPS with a Z80+DSP SoC.

author: Harvs
author_rank: Super Contributor
timestamp: April 28, 2013, 09:49:22 am
content: Nice follow up.What's you're feelings of the Latice tools having now used them in anger?Cheers

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 28, 2013, 10:56:47 am
content: Quote from: Harvs on April 28, 2013, 09:49:22 amMixed - There is a bug in the device programmer that drove me nuts til I found how to work around it (the workaround slows it down a bit so still an annoyance).In fast SRAM programming mode, it will sometimes fail to program (seems to be file dependent), fixed by either exiting and restarting programmer, or using SRAM erase/program/verify mode.A time-optimal workaround is to exit and restart the programmer while you're waiting for compile!I had some issues with it mis-optimising state machines, which broke them in subtle ways (like it would glitch every few hundred cycles). The latter could have been my bad VHDL, but turning off state machine optimisation fixed it. I couldn't repeat it with a trivial test exampleCompile speed is pretty good as these things go- about 25 secs for this simple device.The GUI of Diamond is a slight improvement over IspLever, but could do with a few simple tweaks to significantly improve usability - simple stuff like key shortcuts, going 'ping' when done, and ability to auto program after compile.I'm compiling a wish/buglist to send to Lattice once thsi job is done.

author: HackedFridgeMagnet
author_rank: Super Contributor
timestamp: April 28, 2013, 12:01:20 pm
content: Great videos Mike.I was wondering how exactly you wired up the scope in highest speed mode for the differential channels though.Say for two separate pairs of differential inputs. As in the video.Is it only one common connection you use? for the 4 inputs which is as close as possible to one of the channels and the rest aren't connected.Or each scope channel has its particular common connected individually? using the shortest possible connection, even though the commons are joined back at the scope.Then were you displaying A-B and C-D for the differential inputs? because if I'm not mistaken there were 4 separate channels displayed not two.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 28, 2013, 12:04:18 pm
content: Quote from: HackedFridgeMagnet on April 28, 2013, 12:01:20 pmJust as individual channels, with each probe grounded close to the PCB groundplane. If you're looking at diff signals, once you've confirmed that they are actually differential & not doing anything odd you don't often actually need to look at both of them.

author: HackedFridgeMagnet
author_rank: Super Contributor
timestamp: April 28, 2013, 12:52:42 pm
content: Thanks

author: free_electron
author_rank: Super Contributor
timestamp: April 28, 2013, 03:22:35 pm
content: Mipi is also used for the camera modules in cellphones and any other high speed transfer that needs doing. There is even multi lane mipi.Mipi is the handheld device equivalent of pci express( different protocol and levels of course) but it is a fast serial bus with multiple controllers. Throw data in the pipe and it appears somewhere else over a low pincount interconnect. The transport is handled by the mipi controller. Cpu load is almost zero.

author: hans
author_rank: Super Contributor
timestamp: April 28, 2013, 08:47:13 pm
content: Very nice! Reverse engineering for good causes is funI really wonder how Lattice compares. I have always used Altera tools but in the project I was in (Cyclone III 25k LUT FPGA I believe, stand to be corrected) compilation was pretty slow.. But overall their tools are OK. I think compilation time with NIOS CPU, DDR controller plus some custom NIOS peripherals took about 20minuteson a T7400 4GB laptop machine. Though, the FPGA was filled up to 90% or so..Ah well, should probably download them myself and check it out.Their dev boards seem interesting. Have you ordered them via their store or Mouser? I wonder how much shipping costs...Farnell doesn't seem to have many of their FPGA dev boards and the particular one you used is not in stock.

author: tnt
author_rank: Regular Contributor
timestamp: April 29, 2013, 07:58:47 am
content: Does anyone if larger phone displays (like iPod mini / iPod touch / HTC EVO 4G / ...) have been reverse engineered ? Preferably including capacitive touch support as well. From pictures, I can see some have the touch controller directly on the flex and only have a few wires for interface (SPI maybe ?)

author: amyk
author_rank: Super Contributor
timestamp: April 29, 2013, 10:32:10 am
content: Quote from: tnt on April 29, 2013, 07:58:47 amMike's done something withthe old iPod's LCD too.iPhone 4's display apparently uses 4-lane MIPI as pointed out above.Fromherethere's info on the iPhone LCD (version unknown) saying it's using MPL interface. That happens to bean open standard.

author: hlavac
author_rank: Frequent Contributor
timestamp: April 29, 2013, 10:39:40 am
content: So, the big question remains, can the ipod lcd be driven with slower than 40MHz clock?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 29, 2013, 11:42:36 am
content: Quote from: hlavac on April 29, 2013, 10:39:40 amI've had it running at 24MHz. At 12MHz it only displayed alternate lines, which may have been an issue with my setup - I didn't look at what data it was actually sending so could have just been me not sending the data because of issues with my code.When I get time I will look more into this, but for now I have until Thursday to get 20 boards with these displays working for a presentation.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 30, 2013, 08:31:12 pm
content: Quote from: mikeselectricstuff on April 28, 2013, 10:56:47 amJust tried using the older ispVM programmer - not only is it not flaky, it also programs about 4x faster. The Diamond prorammer sits for about 4 secs doing nothing before programming .I have found a consistent way to make it fail so I raised a case with Lattice - let's see what happens....

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 02, 2013, 08:07:48 am
content: Part 3....

author: David_AVD
author_rank: Super Contributor
timestamp: May 02, 2013, 09:00:37 am
content: Another good video Mike.When you mentioned pixel doubling (to reduce the image memory required), did you mean in both X & Y directions? (four-fold decrease in memory)

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 02, 2013, 10:25:52 am
content: Quote from: David_AVD on May 02, 2013, 09:00:37 amProbably - doesn't make much sense doing in only one direction. with 32MByte flash, it means 1092 vs. 274 images

author: firewalker
author_rank: Super Contributor
timestamp: May 02, 2013, 10:50:20 am
content: The LCD could be initialize with the low speeds (4 MHz) it worked?Alexander.

author: amyk
author_rank: Super Contributor
timestamp: May 02, 2013, 11:01:09 am
content: Seeing it work at less than 1/10th its normal frequency almost makes me convinced there's no dynamic logic on the interface so it should work all the way down to DC. Interface voltages aside, that would it a lot more accessible to hobbyists looking for a cheap small display to use.Good idea of having preconverted images+display commands and making the FPGA just a data-pump. The digital photoframe keychains implement a similar idea. Although then you wouldn't really need an FPGA...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 02, 2013, 04:51:18 pm
content: Quote from: amyk on May 02, 2013, 11:01:09 amIt would be nice to have a soution with both a size and cost that's smaller then the display.The main issue with running from an MCU is memory - I think you can define rectangular areas to fill (like on the old Philips/Epson nokia displays), so things like fonts should be doable, but stuff like line-draw (other than 90 deg) would be pretty slow. I don't know if they have implemented readback - it is in the standard but I can;t see any reasone whay they would need it, so may well not be there.Wouldn't surprise me if it didn't quite go to DC, but it might. Once I get time it will be very easy to find out.The biggest issue driving from MCU is the DDR interface - the simplest solution would be a 16 bit SPI and feed the display with spiclock/2 with an external flip-flop. Obviously you could bit-bash it (timings permitting), but this would be a lot slower than hardware SPI (especially if the SPI had a FIFO) . you could maybe generate the clock/2 with a timer peripheral.I suspect you may also be able to avoid the need to generate differential signals - if the input is just a comparator, it should work if you just hold one of the lines at the mid-point voltage.

author: hlavac
author_rank: Frequent Contributor
timestamp: May 02, 2013, 07:39:30 pm
content: Ordered handful of these on ebay, will give it a shot... will try to connect it to ATmega and spi, and maybe look into the readback, want (slow) pixel/line drawing for temperature graph for oven controller. It may be possible to use the slow single ended mode for everything!Getting the connectors is a bit expensive for me (farnell postage on the connectors costs 2x more than the displays themselves due to us stock), I think I will try to unsolder the connector from the flex cable and solder the cable directly onto mirrored footprint on breakout board using the connector's pads...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 05, 2013, 11:18:10 am
content: I've put some info here for anyone wanting to play :http://electricstuff.co.uk/nanohack.html

author: amyk
author_rank: Super Contributor
timestamp: May 07, 2013, 10:42:07 am
content: 29, 2A, 2B, and 2C? Those are the same as the Philips PCF8833... and indeed a look at the DCS spec shows most of them are the same too. Philips is a member of MIPI, so not particularly surprising.(I havedone more than a sane amount of research on LCD controllersin the past...)

author: hlavac
author_rank: Frequent Contributor
timestamp: May 20, 2013, 01:21:53 pm
content: Quote from: hlavac on May 02, 2013, 07:39:30 pmYay the sacrificial bunch has arrived from china! Took 18 days...Now lets see if i can somehow connect to it, its sooo tinyyyyy

author: hlavac
author_rank: Frequent Contributor
timestamp: May 20, 2013, 02:05:37 pm
content: Okay so my plan is to remove the connector and make a little inverse PCB footprint, place the cable connector footprint face down on it and reflow to stick them together.I may have to remove the tiny metal plate on the back of the cable and shine light thru the stack to align the stuff for reflow if initial blind attempts fail...Here are some shots of the connector and its footprint on the cable:

author: hlavac
author_rank: Frequent Contributor
timestamp: May 20, 2013, 10:26:17 pm
content: First attempt at reverse footprint breakout PCB for the LCD.Looks good, but at the limits of what i can do with the technology i'm using (laser printer, photoresist). Even had an opportunity to try out differential routing in Eagle 6.4Will try to solder the LCD tomorrow, hope the sophisticated alignment marks I came up with will help...

author: firewalker
author_rank: Super Contributor
timestamp: May 20, 2013, 10:31:46 pm
content: Alexander.

author: hlavac
author_rank: Frequent Contributor
timestamp: May 22, 2013, 02:56:25 pm
content: I manned up and soldered the LCD todayIs it working? My hands are shaking... backlight works at least!Time to stick into breadboard and start working on some driving circuitry...

author: firewalker
author_rank: Super Contributor
timestamp: May 22, 2013, 04:00:29 pm
content: Are you planning to with something less powerful than an FPGA? An ARM or even 8-bit AVR etc?Alexander.

author: hlavac
author_rank: Frequent Contributor
timestamp: May 22, 2013, 05:23:59 pm
content: Yes. My plan is ATmega644 or ATmega32U4 using its SPI hardware with a bit of circuitry to provide the necessary I/O interface (probably 74HC74 to divide the SPI clock into DDR one, a few XOR gates to make differential outputs for clock and data lanes, tristate buffer with some voltage dividers to provide for the 1.8 LVCMOS and differential signal levels.It will be Arduino compatible for the arduino nutheads out there I guessI assume in the end I will make a little "backpack" board for the LCD, with the interface logic and power supplies for the LCD (15.2V for backlight, 3.0V and 1.8V for the LCD logic), powered by +5V and driven by the SPI and a few other GPIOs on the 5V CMOS levels.Want to even support bus turnaround and read data from frame buffer (yes slowly) because I won't have enough memory for a full frame buffer in the ATmega and some simple drawing routines would be nice with such a high resolution display...

author: ElektroQuark
author_rank: Unknown
timestamp: May 23, 2013, 08:14:55 am
content: Nice done, waiting for more.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 23, 2013, 12:39:42 pm
content: Quote from: hlavac on May 22, 2013, 05:23:59 pmA few thoughts I had - so far I've only got part-way through trying to run on an SPI port due to lack of time -I also though of using a HC74 - as well as giving the /2 clock it also gives you complementry outputs. You can probably also feed the data line through the spare half to generate differential data.However I have established with my FPGA setup that it will run on single-ended data if the other line is held at the mid-point. A slight complication is that when the receiver goes into high-speed mode, it switches a 100R terminator across the LVDS lines, which can make setting the levels with resistors more tricky, however a crude but effective solution is to connect a capacitor to the un-driven line.An alternative to the '74 is to use an externally clocked PWM peripheral to do the division.I've not yet established whether the display needs continuous clock. if it does, one option may be to run the SPI in slave mode, clocked from a PWM output - that way you can insert data bytes as required, However you do need to make sure the SPI port can stream bits continuously without gaps between bytes.My current approach for the thing that this is destined for is a PIC33 (as it has a large RAM-to-pincount ratio), with a cheap CPLD hanging on the parallel master port to provide serialisation for the display, as well as a fast interface for QSPI flash with the possibility of feeding direct from flash to LCD. A significant constraint I have is it needs to all fit within the outline of the LCD on a single sided 2-layer PCB, and be cheap as there will be >2000 of them.As regards readback, bear in mind this may not be supported by the display as it's not used by the ipod.Features like sub-display windowing appear to not be implemented (either that or they check the CRC).

author: hlavac
author_rank: Frequent Contributor
timestamp: May 24, 2013, 10:41:17 pm
content: Ok, killed the first of the displays, 4 to goNote to myself, do not use double sided sticky tape to affix the lcd on the shiny back bit, it comes off very easily and kind of falls apart.After first round of testing I came to conclusion that I'll have to get the real connector, the reverse footprint method is just not reliable enough as there is no good way to test the connections for continuity.No point in adding uncertainity in already uncertain situation...At least I will have time to make some breadboard supplies for the 3.0, 1.8 and 15.2V while I wait for the connectors to arrive...

author: hlavac
author_rank: Frequent Contributor
timestamp: June 04, 2013, 03:20:18 pm
content: This is proving to be quite a challenge, I think I will need to use proper solder paste and stencil to solder the damn thing...Okay, lets see if I can manage that

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 04, 2013, 05:09:31 pm
content: Quote from: hlavac on June 04, 2013, 03:20:18 pmyeah - those connectors aren't very amenable to hand-soldering - the solder wicks up onto the contacts and it's easy to distort the housing. Pretty much needs to be reflowed

author: hlavac
author_rank: Frequent Contributor
timestamp: June 06, 2013, 10:12:00 pm
content: OH. MY. GOD. This must be the hardest pain in the ass thing I ever did in electronics!BUT!!!!! I made it!The hardest part was getting the right amount of solder paste on the pads.The usual DIY method of "apply tons, clean up later with solder wick" does not apply here sadly, its too small and you destroy the connector with soldering iron too close for too long...The correct stencil thickness I calculated would be about 0.1mm. I ended up using 0.125mm thick insulation tape, cutting small strips and making kind of poor man's stencil directly on the PCB.For reflow I got me a nice pancake maker which just so happens to have its highest temp setting in the reflow region of my pb-free solder pasteI got a few solder bridges which I managed to remove with some ninja soldering iron actionOnly a small, harmless damage to the connector resulted.So here after some 5 attempts I finally ended up with a LCD module ready to be experimented with electrically, which shall follow soon, stay tuned

author: firewalker
author_rank: Super Contributor
timestamp: June 07, 2013, 03:06:31 am
content: I bet it was like:. The hard part is done!Alexander.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 29, 2013, 07:35:53 pm
content: Just spotted an eeror on my pagehttp://electricstuff.co.uk/nanohack.htmlOn the clock startup sequence CLKP and CLKN are swapped - corrected now

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 30, 2013, 10:18:03 pm
content: Next installment...http://youtu.be/dPzeEw3zVwQ

author: tnt
author_rank: Regular Contributor
timestamp: August 19, 2013, 12:14:21 pm
content: I'm wondering if you simplified PHY with resistors would work fine at like 500 MHz to drive much higher resolution screens with 4 lanes.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 24, 2013, 09:55:11 pm
content: And another...

author: firewalker
author_rank: Super Contributor
timestamp: September 24, 2013, 10:09:28 pm
content: Make a cloaking device! The cameras to the one side of the object, the display to the other.Alexander.

author: amyk
author_rank: Super Contributor
timestamp: September 25, 2013, 10:12:51 am
content: Add the SD card stuff you had previously and it's not far from having made a digital camera...

author: M. András
author_rank: Super Contributor
timestamp: October 12, 2013, 12:02:42 pm
content: Mikehttp://www.ebay.com/itm/MC237-LCD-for-Apple-iPod-Touch-4th-Gen-Generation-Display-Screen-Module-Replacem-/331043144282are these lcd-s use the same interface?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 12, 2013, 12:35:20 pm
content: Quote from: M. András on October 12, 2013, 12:02:42 pmI don't know. Could be MIPI with multiple lanes

author: M. András
author_rank: Super Contributor
timestamp: October 12, 2013, 04:02:59 pm
content: however its more cheaper than a normal 7" inch tft modules which can be bought in 1 off quantities, but no datasheet for that ipod display unfortunatly

author: tnt
author_rank: Regular Contributor
timestamp: October 14, 2013, 02:16:31 pm
content: I'm pretty sure the iPod touch 4th gen display is the same as the iPhone 4.So this should be a LH350WS1-SD01 which uses a 4 lane MIPI-DSI interface and should mate with a AXE426124 26 pin connector.

author: Relaxed
author_rank: Contributor
timestamp: October 14, 2013, 05:38:05 pm
content: @ Mike:Your work is amazing! Just wanted to tell you that.

author: virtualguy
author_rank: Newbie
timestamp: October 19, 2013, 09:17:21 am
content: Has anyone looked at the touch screen digitizer? Interested to see if anyone has tried playing with it. I heard the iPhone (1?) digitizer exchanges 80kbytes of init data on start up. Sounds its just about uploading the whole program on startup!I have a couple of replacement 6th gen nano screens on order (plus hoping to pick up a genuine second hand nano to gut onhttp://trademe.co.nz) as well as a few nano 6th gen rip offs. I'm hoping that if the nano lcd and digitizer fall into the too hard basket the chinese rip off will be somewhat simpler to reverse engineer. The downside being lower quality and high probability of component changes down the line.The end goal is to make a small waterproof tracking device with a touchscreen interface (obviously cap touch is only for when its dry) and the 6th gen nano is a perfect size for what I am trying to do. I expect to increase the size (depth) of the end product as I will have to increase battery size and add a gps antenna/module but I think it is do-able.Oh did I mention I already have a display-less prototype working running on a PIC32MX so hopefully I can just add Mike's cpld+pmp style interface and be away laughingAny thoughts/pointers.

author: amyk
author_rank: Super Contributor
timestamp: October 19, 2013, 10:32:44 am
content: Quote from: virtualguy on October 19, 2013, 09:17:21 amYou'll probably find a standard Epson/Philips/etc. compatible controller in those... especially if they're similar to the "S1" clones I've played with:http://wiki.s1mp3.org/LCMControllers(look at author of that page)

author: yummydonutsmc
author_rank: Newbie
timestamp: October 30, 2013, 07:20:46 pm
content: This is EXACTLY what I've been looking for! I've ordered relays and parts to make aRaspberry Pi sprinkler system, but I want a display for it.I own a cracked ipod nano v6 display from a replacement job. With the touch screen, i think it's perfect for my project!I also have some FPGA experience and an unused Xilinx Spartan 3 dev board. I don't mind having a bulky sprinkler controller.These posts should give me a running start.Imagine my surprise when I found these posts were <2 weeks old! Signed up for an account just to say this:Keep up the conversation, and this is great!

author: virtualguy
author_rank: Newbie
timestamp: October 30, 2013, 07:34:27 pm
content: It won't help you if your old nano has a cracked display! I ordered a couple from Aliexpress and they look pretty good (can send you the link to supplier I used if you like). Just waiting for a nano to test them on to make sure they actually work!I did a bit more reading around on the touch screen, seems like there is a high chance its just a raw connection to the electrodes and i'll need to do a full cap touch controller. Ofcourse these things exist already so I am targeting this one from Microchip:MTCH6301I also found out that Lattice have a MIPI IP core for the XO2 which can be configured in 1,2 or 4 lanes. Ofcourse its pretty unlikely it will fit on the 32QFN variant. Will see how it goes anyway, I havn't played with CPLDs/FPGAs before but have a few contacts I can convince to fix my problems in exchange for beer.

author: Stonent
author_rank: Super Contributor
timestamp: October 30, 2013, 08:01:58 pm
content: Quote from: virtualguy on October 19, 2013, 09:17:21 amNot exactly the same thing but the digitizer/screen from my wife's Samsung Stratosphere has a tiny Atmel (presumably flash) chip stuck to the board behind it. Presumably it uploads the data in a similar way?

author: yummydonutsmc
author_rank: Newbie
timestamp: October 30, 2013, 09:23:59 pm
content: Quote from: virtualguy on October 30, 2013, 07:34:27 pmThe cracked display was still working when I removed it from the nano.So I googled around in hopes of 'moving up the stack' - in other words, making a custom iPod app, so that I wouldn't have to deal with interfacing the LCD/digitizer.No one has done it yet. Some people got close and tried reverse-engineering Apple's firmware updates:1. As always, started with ifixit:http://www.ifixit.com/Teardown/iPod+Nano+6th+Generation+Teardown/3563/http://d3nevzfk7ii3be.cloudfront.net/igi/oWPeuBfVrPkerPvP.hugehttp://d3nevzfk7ii3be.cloudfront.net/igi/YEkbMhMqKrVm1IwU.huge2. Googling the CPU reveals it's a Samsung S5L8723http://www.tequilabomb.com/shotglass/2010/09/08/some-ipod-nano-secrets-revealed/http://www.freemyipod.org/wiki/Nano_6Ghttps://twitter.com/patrykjakuszew/status/232688059573. This guy was able to modify some config files:http://www.funkyspacemonkey.com/hack-ipod-nano-6th-gen-add-spaces-springboard-video(instructions here)http://www.redmondpie.com/this-ipod-nano-6th-gen-hack-can-lead-to-a-possible-jailbreak-on-the-device-video/http://www.tuaw.com/2010/12/28/ipod-nano-hacked-may-open-door-to-future-jailbreak/4. Some initial attempts at reverse-engineering the firmware:http://support.apple.com/kb/ht4531http://www.ipswdownloader.com/Alsothisled me to thehomepage, but there are no details.the guy in question ishttps://twitter.com/jwheltonbut he tweets too much to try to decipher it.I realized that I have an old t-mobile comet android cell phone w/wifi so i may use that instead.Thanks!

author: virtualguy
author_rank: Newbie
timestamp: November 01, 2013, 10:18:12 pm
content: So the sacrificial nano arrived (right on time for a Frankenstein Halloween hack session). Managed to get it open and verified the displays from China work which is always a bonus. As I am about to start drawing up the prototype pcb I thought I'd investigate the digitizer (Mike has already done a great job on documenting the lcd hardware interface). 2 minutes into it I tore the connector off the flex and had it stuck in the nano!!! Took me nearly and hour to carefully cut pry and extract the remnants of the connector. On closer inspection the mechanical pads on the display from china didnt have any solder on them which wouldn't have helped. I think I saved the nano though, doesn't look too beaten up. Will try and put some wire wrap on the digitizer side of the connector now and see what I can find with the scope.So anyone wanting to play with these things, a reminder: The connectors are super fragile!

author: virtualguy
author_rank: Newbie
timestamp: November 25, 2013, 09:05:31 pm
content: First prototype assembled, now the fun of actually making it work begins! I think i'm going to regret not breaking out the JTAG pins on the MachXO2... I had the idea that I could use the PIC32 to enumerate as a USB serial port and program the FPGA that way but I think I might be biting off more than I want to chew.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 08, 2013, 11:24:29 pm
content: More...

author: Len
author_rank: Frequent Contributor
timestamp: December 10, 2013, 05:25:38 pm
content: Did you say 17 or 70? Either way, that's a lot of LCDs!

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 10, 2013, 10:20:31 pm
content: Quote from: Len on December 10, 2013, 05:25:38 pm70 columns of 40 = 2800 total.

author: Len
author_rank: Frequent Contributor
timestamp: December 10, 2013, 10:30:19 pm
content: lol Ithoughtyou said 70 columns, but that just seemed excessive.

author: amyk
author_rank: Super Contributor
timestamp: December 11, 2013, 11:52:52 am
content: So you have a total screen resolution of 16800 x 9600?That's pretty close to 16:9... what's the refresh rate like?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 11, 2013, 10:46:36 pm
content: Quote from: amyk on December 11, 2013, 11:52:52 amWe can update in about 35mS.From locally stored content in onboard flash of courseLoading new content is an overnight job however.

author: M. András
author_rank: Super Contributor
timestamp: December 11, 2013, 11:12:32 pm
content: when its installed please give us a photo from it

author: SeanB
author_rank: Super Contributor
timestamp: December 13, 2013, 07:51:09 pm
content: I do not think a photo will be enough, about an hour of HD video however........

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 13, 2013, 11:38:08 pm
content: I have no doubt that a lot of video will be taken...Just finished a test build of all 2800 displays - only had 4 faulty onesInstalling in Jan, in New York.

author: SeanB
author_rank: Super Contributor
timestamp: December 14, 2013, 06:04:28 am
content: Going to be fun explaining that cargo to the TSA then.......

author: Rerouter
author_rank: Super Contributor
timestamp: December 14, 2013, 11:34:38 am
content: based on your scope images in the last video would that imply that you would need slightly more load on your termination to completly remove the reflection? (trying to learn more about this kind of thing)also wow. that is a whole lot of displays..

author: SeanB
author_rank: Super Contributor
timestamp: December 15, 2013, 04:35:51 pm
content: Nice!

author: nes
author_rank: Newbie
timestamp: December 16, 2013, 10:58:55 pm
content: Quote from: mikeselectricstuff on May 23, 2013, 12:39:42 pmExcellent work and good luck with the installation.Did you happen to discover the CRC polynomial used? I wrote a graphics library for small colour TFTs in low memory applications I would quite like to port to DSI but it necessarily has to use the windowing feature.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: December 16, 2013, 11:23:18 pm
content: Quote from: nes on December 16, 2013, 10:58:55 pmThe Ipod display doesn't check the CRC, so no.I think it is in the MIPI specs linked on my pagehttp://electricstuff.co.uk/nanohack.html

author: nes
author_rank: Newbie
timestamp: December 17, 2013, 12:16:25 am
content: Quote from: mikeselectricstuff on December 16, 2013, 11:23:18 pmAwesome. Found it there thanks. Looks like it's the same polynomial as CRC-CCITT. Just waiting on delivery of a suitable display to have a play with.Thanks again for writing all this stuff up in such detail. Looking forward to seeing the finished article.

author: Psi
author_rank: Super Contributor
timestamp: December 17, 2013, 12:48:03 am
content: I wonder what the lifespan is for these iPod Nano displays.Being intended for a retail product it wouldn't matter if the display quality started to fade after ~5 years or so.

author: amyk
author_rank: Super Contributor
timestamp: December 17, 2013, 12:56:57 pm
content: LCDs don't tend to degrade unless there's a design flaw. The backlight LEDs may dim over time and the colour filters might fade with exposure to the elements but the crystal cell should stay working.

author: Psi
author_rank: Super Contributor
timestamp: December 17, 2013, 01:11:26 pm
content: bit of a thread hijack, sorry, but quickly, does anyone know what would cause a LCD to work perfectly fine when cold but after 15min the picture just gets whiter and whiter until you cant see anything.The LCD in question is a 6" that built onto a wallmount Advantech touchscreen 486 PC.I found that if i set windows to blank the screen after 5 min of inactivity it solves the problem (as i never use the PC for more than that).Be nice to fix it though

author: SeanB
author_rank: Super Contributor
timestamp: December 17, 2013, 06:48:26 pm
content: You lost one of the LCD bias voltages, either a cracked resistor or capacitor in the bias divider.

author: Psi
author_rank: Super Contributor
timestamp: December 17, 2013, 08:20:51 pm
content: Thanks, I will check that out