MIPI DSI reverse engineering - Page 1
Forum section: electronics / projects

author: Leonhard Bandilla
author_rank: Contributor
timestamp: February 27, 2020, 02:07:04 pm
content: I have a project going where I reverse engineer a display connector (propriatary) of a smartphone to be able to make a compatible display myself.I have some of the obvious pins (GND, VCC, TE) and I also know which pins are for the high-speed LVDS MIPI-DSI interface and which ones are pairs. The problem is I don't know which ones are data and which one is clock. I tried meassuring it with a 100mHz Rigol, but with the limited storage it is quite hard to say which is which when I'm probing the interface while it is running. The connector is burried in the device and I've soldered small wires to it to meassure it, but I have quite a lot of noise. I can kinda make out data, but often theres is so little data transfer that a data pair looks like a clock. Maybe you know how to reverse engineer this interface. I need to know which is clock and which are the data lines (also their number, maybe +/-) If you have questions, ask me.

author: RoadRunner
author_rank: Frequent Contributor
timestamp: February 27, 2020, 02:20:00 pm
content: Quote from: Leonhard Bandilla on February 27, 2020, 02:07:04 pmIf you want to determine which clock and which is data then even 100Mhz scope will do. You can easily make up because data obviously have lesser activity. You can also try putting full black image onto screen or solid R or G or B color. That will certainly help to determine which are data and which is clock.As I have already made IPOD nano 6 LCD working with Lattice FPGA which help from mike's post, If I would reverse engineering another LCD. I believe only thing you need to figure out is the exact pinout of the LCD (with multilane display it is important to know which is lane 0 and so on), Power requirement and supported pixel format and Resolution.As mipi is standardize basically all the display MIPI DSI command spec will give all the commands. So as you would write Display on command after reset and basic init, it should give a something on display and there after you can just try whatever you feel.My take on IPOD nano 6 LCD can be found on my blog here.https://www.circuitvalley.com/2020/01/spi-mipi-bridge-fpga-verilog-hdl-ipod-nano-nano-lcd-iphone-mipi-lcd.html

author: Leonhard Bandilla
author_rank: Contributor
timestamp: February 27, 2020, 02:41:54 pm
content: How can I figgure out which one is 0 as only 0 can be bidirectional. I didn't say it, but it is a 4 lane interface. Also, will plugging in a different screen just work without software config, or will I have to rewrite sth.Maybe my probing setup is a bit of a problem, because I know that just having tiny stubs (e.g. ESD protection) in high-speed interfaces can be a problem. Maybe that's why it's so hard to distinguish. Also, does DSI support polarity swap or even lane swap exept of for lane 0 ?

author: RoadRunner
author_rank: Frequent Contributor
timestamp: February 27, 2020, 02:55:25 pm
content: Quote from: Leonhard Bandilla on February 27, 2020, 02:41:54 pmThough MIPI Spec all data to be read back from LCD I have not yet seen any LCD reading data back. But lets assume host reads some data from the LCD you have. As per mipi spec Data reading back is only done in LP mode, while signal level is 1.2V and pretty slow compare to MIPI HS. So if host is reading something from LCD you can pretty easily determine even with 100Mhz scope.Different LCD with Same number of lane, similar clock, reset and power requirement may show something. LCD with same number of lanes, same resolution and clock timing , similar reset and power requirement may even show partially correct content.When I have successfully used same FPGA module IPOD nano 6 lcd and also on IPOD nano 7 LCD (IPOD nano 6 LCD is 240x240 while IPOD nano 7 is 240x432 ). IPOD nano 7 lcd just worked while content was visible to 240x240 .What do you mean by polarity swap, swapping D+ and D- in HS mode or switching direction?

author: Leonhard Bandilla
author_rank: Contributor
timestamp: February 27, 2020, 02:59:19 pm
content: With polarity swap I mean the inverted to the normal or D+ to D-, I know that is possible on some interfaces like USB SuperSpeed.

author: RoadRunner
author_rank: Frequent Contributor
timestamp: February 27, 2020, 03:00:30 pm
content: Side note,You may try finding first part number then datasheet for the display module you have, LCD module database website like panelook are having data about almost every LCD out there. They will not let you downalod datasheet unless you pay. But i was always able to find datasheet one i have the display part number.

author: Leonhard Bandilla
author_rank: Contributor
timestamp: February 27, 2020, 03:07:57 pm
content: Thanks for the tip with panellook in advance. I've tried googeling the numbers, but I susppect that a lot of it is just data code or manufacturer intern information. I will give it a try. Do you know if shorting the data lines to GND could kill the transceiver ?

author: RoadRunner
author_rank: Frequent Contributor
timestamp: February 27, 2020, 03:19:02 pm
content: Quote from: Leonhard Bandilla on February 27, 2020, 03:07:57 pmWhen i am looking for part number on panellook , I filter by interface and then by size (not exact but range) and then resolution. Generally this will result few enough results then i can look at then one by one.I can not say about a specific LCD or driver but i have shorted driver of IPOD nano many time and it didn't cased any issue.Quote from: Leonhard Bandilla on February 27, 2020, 02:59:19 pmI have not read any mention of D+ and D- swap in mipi spec. I feel it would be a unnessary feature to be implement in the receiver. But i may be wrong so will look into specs and let you know.

author: Leonhard Bandilla
author_rank: Contributor
timestamp: February 28, 2020, 04:31:47 pm
content: I've found what I think is my display, but I can't find a datasheetI think it is the ACX454BLN-7 by JDI. I can't find a datasheet, maybe someone knows how to find the datasheet or can provide me with one. I really only need mechanical and pinout.

author: dovoto
author_rank: Newbie
timestamp: June 11, 2021, 04:58:48 pm
content: Quote from: RoadRunner on February 27, 2020, 02:20:00 pmThanks for this really great writeup! This is exactly what I was looking for to interface my project.