Close
0%
0%

MIPI DSI Display Shield/HDMI Adapter

A controller for LCD/OLED screens with MIPI DSI interface. Arduino shield format, HDMI-to-DSI adapter & built-in framebuffer.

twltwl
Similar projects worth following
A simple controller for MIPI DSI displays, based on a Xilinx Spartan-6 FPGA.

MIPI DSI is a high speed packet-based interface for delivering video data to LCD/OLED displays. In a way it is similar to DisplayPort, with a more power-conscious (and thus complex) physical layer. DSI is mostly used in mobile devices (smartphones & tablets).

I started this project as the base for building a low-cost HD projector. Later on I realized it could be also useful for VR applications and as a general-purpose graphics card for small uCs - that's why it comes in Arduino shield format.


Features

  • Supports 3/4 lane MIPI DSI displays.
  • DSI controller supports resolutions of up to 1080x1920 at 60 Hz refresh rate.
  • Converts HDMI video to DSI - letting you connect any MIPI DSI screen to your PC, Raspi or similar devices. Conversion works up to 720p@60 Hz or 1080p@48 Hz.
  • Built-in framebuffer with simple graphics stack, allowing to interface small microcontrollers, such as Arduino through 8-bit parallel or SPI busses
  • Sub-$50 BOM, including 4-layer PCB (@100pcs).
  • Powered through mini USB connector.
  • Embedded 32-bit CPU, available for user applications.

Project history

  • 12/2013: Schematics & PCB done.
  • 12/2013: Initial version of the firmware, works with Iphone4/4s screens on a FPGA dev kit.
  • 02/2014: Got the PCBs and components.
  • 02/2014: Test PCB assembled, drive both 3- and 4-lane screens.
  • 07/2014: Started work on HDMI <> DSI conversion.
  • 08/2014: HDMI convesion working for 640x960 Iphone4 screen.
  • 08/2014: DSI core achieves 1080p @ 60 Hz (48 Hz with HDMI conversion).
  • 08/2014: Rev 1.1. PCB design, schematics and firmware released.
  • 06/2015: Prototypingr rev 2.0.

To do

  • Arduino interface/drawing commands (depending on demand).
  • Test external HDMI decoder with displays larger than 1080p.
  • Port Doom to run on the softcore CPU.

Hardware

The diagram below shows the main blocks of the design:

  • The FPGA: Xilinx Spartan-6-SLX9. Highlights: amateur-friendly TQFP144 package and built-in SerDes rated up to 1080 Mbits/s. The FPGA does pretty much everything in this project, hosting the MIPI DSI core, framebuffer controller with DDR memory, HDMI/DVI decoder. Everything is managed by an embedded Lattice Mico32 CPU.
  • DSI Level adapter: a bunch of resistors interfacing the FPGA's 1.8 V SSTL/LVCMOS I/O to DSI levels. More info in the FPGA section.
  • DSI connector: a standard 2x15pin 2mm pitch female connector with all DSI signals, power supplies and some GPIO pins for interfacing with the display. Since connector pinouts differ between displays the idea here is to use a tiny adapter board hosting the particular LCD's connector and its wiring.
  • DDR SDRAM, providing memory for the framebuffer, since most smartphone DSI displays don't have one.
  • HDMI input: slow version, using FPGA's ISERDES blocks (up to 1080p @ 48 Hz) or a fast one (1080p @ 60 Hz), based on Analog Devices' ADV7611 chip. The external HDMI decoder shares some pins with the SDRAM chip and the host interface, so the full HD - 60 Hz version can only work as a HDMI to DSI adapter.
  • Host interface: 12 pins wired to Arduino shield's IOH/IOL headers. Exact functions are not defined yet, I'm thinking about a 4-wire SPI interface and an 8-bit parallel bus.
  • USB UART a CP2102 chip providing USB UART, software bootloader and JTAG functionality for the FPGA.
  • Main power supply: integrated PMIC (TI/National LM26480). Voltages are: +3.3 V (HDMI input, USB, host I/F), +2.5 V (SDRAM and FPGA Vccaux), +1.8 V (DSI), +1.2 V (FPGA core).
  • LCD bias/backlight power suply: Most displays need some higher positive/negative votlage to operate. The board has a simple DC/DC converter for that purpose, producing symmetric voltage of up to +/- 6 V. The voltage can be adjusted for the particular panel by connecting a resistor between one of the DSI connector pins and ground. There is also a separate current driver for backlight LEDs, programmable by another resistor. Both DC/DC converters use a TPS61041 chip.

PCB Design

The DSI shield consists of two PCBs - the main board, where all the cool stuff is and a small adapter board, usually different for each display, connected through a 30 pin 2mm pinhead.

The main board is a typical Arduino shield. I routed the design on 4 layers, with the signals on the 2 outer layers, a contiguous ground plane and a split power plane. The DDR is placed right under the FPGA to simplify routing. SSTL to DSI level translator resistors are placed right next to the FPGA output pins to avoid stubs. All differential pairs are calculated for Z0=100 Ohm.

The adapter boards simply route the DSI lanes,...

Read more »

  • 1 × XC6SLX9-4TQ144 Spartan-6 FPGA
  • 1 × LM26480 Power Management ICs / Switching Regulators and Controllers
  • 1 × CP2103 Interface and IO ICs / USB
  • 1 × M25P80 Memory ICs / FLASH Memory
  • 1 × Molex 500254-1927 (or similar) HDMI SMD connector

View all 11 components

  • Announcement

    twl01/16/2018 at 19:54 7 comments


    As you've probably noticed, there hasn't been too many activity on the DSI Shield project during the past year. Many people were asking me where to buy the boards, how to set them up for a particular display and so on.

    Unfortunately, the amount of my spare time does not allow me to contribute to the DSI Shield enough to make it a viable product - that is manufacturing and shipping the boards, providing user support or adding new features. It's just too much for a single person doing this sort of stuff in free time (most of which is already devoted to KiCad development).

    If someone of you is interested in manufacturing these boards or firmware development, let me know.

    Tom

  • Rev 2.2a. KiCad PCB & Schematics published​

    twl08/24/2017 at 09:51 4 comments

    I've just pushed the full schematics/PCB design of the latest revision of the board to GitHub. It took a while to convert them to KiCad...

  • Rev2.0 prototypes arrived

    twl08/18/2015 at 16:10 27 comments

    I've received a couple of Rev 2.0 prototypes. Iphone4 display is working fine, still waiting for Optimus E980 connectors though...

  • Revision 2.0 & commercial availabilty of the boards.

    twl06/21/2015 at 23:08 26 comments

    Hi all,

    The prototype of Rev 2 PCB (see below) just went to production.


    Some news:

    - Boards will be manufactured and sold by Creotech. We are targeting $99 (+ taxes/shipping).

    - Rev 2 board will support resolutions up to 1080p/48 Hz and work by default with Iphone4 and LG Optimus E980 displays. For other screen types (AMOLED Galaxy S3/S4, Iphone 5) there will be adapters (available later).

    - New version will also come with a composite video input, foreseen for building FPV systems for drones/flying models.

    Note that the initial V2 release firmware WILL not work as a graphics card for Arduino. Writing a graphics accelerator is a serious task and my time resources are quite limited...

  • Commericial availability of the boards

    twl04/28/2015 at 08:43 17 comments

    Hi all,

    We've found an industrial partner to manufacture and ship the DSI shield boards. Before we start the production, we need to know how many people would be like to purchasing the boards and which display models should be supported out-of-the-box. Feel free to fill the Doodle below if you are interested:

    http://doodle.com/uv283rp366prppnt

    Cheers,

    Tom

  • Galaxy S4 AMOLED screen working

    twl04/14/2015 at 09:47 12 comments

    We have a working Galaxy S4 AMOLED screen, 1920 x 1080. A QHD screen from GS Note 4 is waiting to be tested soon!

  • First release

    twl08/16/2014 at 00:26 0 comments

    The PCB design, FPGA and software sources for the first release of the DSI shield are now available on Github.

    Enjoy!

  • HDMI to MIPI conversion working

    twl08/05/2014 at 17:37 2 comments

    HDMI to MIPI conversion is finally working, here's a video showing a Raspi driving an iPhone 4 screen.

    Freshest sources coming as soon as I've cleaned them up :)

View all 8 project logs

  • 1
    Step 1

    Build the hardware:

    - Make/order the DSI Shield PCB.

    - Solder it!

    - Check the BOM, as not all components should be mounted.

    - Make/order/design an adapter board for your screen.

    - Connect the two boards together with the LCD. Power the system through USB.

    - No smoke indicates probable success.

  • 2
    Step 2

    Clone the repository:

    git clone https://github.com/twlostow/dsi-shield

    Install an LM32 toolchain. You may find one on Lattice website. There's a pre-built version for Linux (IA32) available here.

    Download and install Xilinx ISE 14.7 Webpack from Xilinx website.

  • 3
    Step 3

    Build the software:

    - edit software/rev1/panels.h and set the panel type you wish to use.

    $ cd software
    $ make

    This will produce the boot.ram file that the synthesizer will embed in the FPGA bitstream. The file contains both the panel initialization/HDMI handling code and the bootloader, so the LM32 application can be re-loaded at any time via USB UART.

View all 5 instructions

Enjoy this project?

Share

Discussions

Andrei Cociuba wrote 11/03/2014 at 12:40 point
i would love to get one of these preassembled, too

  Are you sure? yes | no

Michael R Colton wrote 11/03/2014 at 01:29 point
Also interested in a finished board! It's helpful to have an external monitor for filming video with DSLRs. Astonishingly, full HD monitors in the 5-8" range with HDMI are almost impossible to find (you know, unless you want to spend $4-5 THOUSAND for them!) this would be a killer! Also, I have some fun raspi projects that could benefit from it. Followed!

  Are you sure? yes | no

sblaszak wrote 11/02/2014 at 23:34 point
Hi TWL, awesome project! I do have one question. If the ADV7611 were replaced with a ADV7619 (the bigger brother than handles 2K and 4K resolutions) would the FPGA chip be powerful enough to drive one of the 2560x1440 displays at 60-75hz?

  Are you sure? yes | no

twl wrote 11/06/2014 at 08:37 point
Not with the current PCB design, but in general, yes.

  Are you sure? yes | no

hallo wrote 10/21/2014 at 09:18 point
I am also interested in a finished board

  Are you sure? yes | no

Ruben wrote 10/18/2014 at 12:48 point
Is it possible to buy a pre-made board?
I don't have tools for soldering SMD components and this all sounds quite hard...

  Are you sure? yes | no

kal wrote 10/17/2014 at 19:12 point
Anyone managed to build the HDL project? Some files seem to be missing and the ISE project is not upto date with respect to source. An update to sources would be welcome.

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 22:02 point
Hello TWL,

The phone display connectors are not that well documented, could we have the exact model numbers and suggested online stores you purchased the parts at?

Optimus P880: DF30-30p-0.4mm
Iphone 4S: Iphone 4 LCD

The Droid DNA FH35W-31S-03SHW is well documented, but I had to buy 230 units (like Batman in the Dark Knight Movie), so if anyone needs this connector I'm selling them at around $10 a unit.

  Are you sure? yes | no

twl wrote 10/03/2014 at 14:42 point
- for optimus p880 I've soldered a matched pair of connectors with 0.4mm pitch (couldn't find the mate for the original one)
- for Iphone: search ebay for iphone 4 lcd motherboard connector (don't know the reference)
- for DNA: p/n 7388931 in Radiospares (single units available)

  Are you sure? yes | no

Blaze Sanders wrote 10/14/2014 at 23:13 point
Thanks for the information. To help others:
- P880 We are using H11595CT-ND and H3866CT-ND from Digi-Key
- Ebay Link - http://goo.gl/ZDUzVm (Is this correct?)
- DNA FH35W-31S-0.3SHW(99)

If you agree with this TWL I can update the GitHub repo.

Last three questions:
1) Would you be willing to have a 2 hour phone call at $100 per hour to work out
some low level details?
2) What is the suggested inductance for L1 (f.bead Inductor - With Magnetic
core)? The current BOM only states the footprint size.
3) The bottom layer silkscreen gerber file (.GBO) currently doesn't have
Reference Designators needed for assembly. Do you have an updated gerber file of the original PCB file? Hopefully Eagle :) Or a .DFX fabrication drawing of the silkscreen bottom. See bottom large PCB in the following picture - https://drive.google.com/file/d/0BygUWs7AJ_kUTTlhQlBVOW8xb28/view?usp=sharing

  Are you sure? yes | no

twl wrote 10/17/2014 at 14:20 point
The iphone connector you've found on Ebay is OK.

Concerning your questions:
1) I would prefer e-mail rather than phone and I don't provide paid consulting. If you want to reward me for my time please donate to Kicad development.
2) Ferrite bead, 0603, 100 ohm @ 100 MHz (or similar).
3) I don't use eagle. Why do you need silkscreen for assembly/ (I can upload pick&place files if needed)? Are you going to assemble all 30 PCBs by hand?!

  Are you sure? yes | no

Blaze Sanders wrote 10/17/2014 at 19:20 point
Hello TWL,

1) Meta will give $200 to the KiCAD development. My email is
b.sanders@meta-view.com and company URL is https://www.spaceglasses.com
2) Thanks
3) Pick and Place files would help, but currently we are paying a company $4K to
assembly 30 PCB by hand. But generally we want a better understanding of what
part is what on the bottom side :) What PCB Design package do you use? Could be
have the native PCB layout file?

  Are you sure? yes | no

shadowofsoul wrote 09/12/2014 at 23:42 point
If someone find it useful, here is a DigiKey Compatible BOM: https://github.com/ipsilondev/dsi-shield/blob/master/pcb/main/bom/DigiKey_BOM.csv 90% is there, except the pins connector, the HDMI conn and the DDR SDRAM as they don't have it.

  Are you sure? yes | no

shadowofsoul wrote 09/12/2014 at 18:14 point
1) what voltage are the capacitors? by the model numbers in the BOM i could not find it (there are of 6V and 16V at 20%) i suppose they are multilayer ceramic right?
2) the zener diode: BZT52C24S what V is? 5.1? 4.7? again, i found several versions of it
Thanks in advance ! :D

  Are you sure? yes | no

shadowofsoul wrote 09/12/2014 at 23:38 point
Also, i could not found anywhere the L1 / INDC1608-0603 / f.bead, can you provide more info about it?

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 19:32 point
The caps need to be at least 6.3V , but I purchased caps rated upto 25V just in case.

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 19:38 point
The BZT52C24S on DigiKey at 24V. Where did you find 5.1 and 4.7 V diodes

  Are you sure? yes | no

twl wrote 10/03/2014 at 14:42 point
Radiospares/Farnell.

  Are you sure? yes | no

Tom wrote 09/05/2014 at 14:30 point
Do you think this unit would work with a optical engine module for HMD that uses 2 mini-DSI ports for input? I have a data sheet I can send with the module's specs if that would be useful. :)

  Are you sure? yes | no

[deleted]

[this comment has been deleted]

twl wrote 09/04/2014 at 09:16 point
1) It should work, maybe not at full refresh rate (60 Hz).
2) I don't sell these boards. If you want to buy, convince Adafruit or another OSHW-friendly company to produce and sell them.

  Are you sure? yes | no

pst wrote 08/31/2014 at 21:46 point
I would love to buy an assembled board, as I have two left hands and very thick fingers...
My application would involve driving a 1080p display

  Are you sure? yes | no

pst wrote 08/31/2014 at 22:18 point
specifically, the AMS510CV01

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 21:51 point
My company META (www.spaceglasses.com) is making 30 of these and would be willing to sell extra assembled units. Price is still TBD

Email me at b.sanders@meta-view.com

  Are you sure? yes | no

Blaze Sanders wrote 10/14/2014 at 23:14 point
Meta (www.spaceglasses.com) has purchased all the hardware and made the
following custom PCB's. We will be assembling them this Friday (10/17/2014) and
selling them unassembled or assembled for the following costs (flexible).

Apple iPhone 4S adapter board - See iPhone 4S GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

LG Optimus P880 adapter board - See Optimus P880 GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

HTC Droid DNA adapter board - See HTC Droid DNA GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

MIPI DSI Shield - MIPI DSI Shield GerberFiles (Panel #2)
- 30 UNITS willing to sell up to 25 units for $100 (unassembled) or $185
(assembled)

Picture Link to PCB's - https://drive.google.com/file/d/0BygUWs7AJ_kUTTlhQlBVOW8xb28/view?usp=sharing

  Are you sure? yes | no

Dan K wrote 08/28/2014 at 15:47 point
I'm not sure if you saw my last comment on your HaD feature page, but I wanted to apologize for any misunderstanding. I didn't want you to remove those sources from Github unless you had to and I wasn't upset about any licensing issues. I was just worried that you would be forced to take the files down by Xilinx unless they were replaced with completely open equivalents. Just a week or so before a project had to be taken down because Tektronix complained. I didn't want the same thing to happen here, and I most certainly didn't want to be responsible for this project becoming useless, but I see that I am and I'm deeply sorry for that.

  Are you sure? yes | no

twl wrote 08/30/2014 at 10:53 point
There's nothing to be sorry about ;) All the removed files can be downloaded free of charge from Xilinx website or generated with ISE. I've put the instructions in the repo.

  Are you sure? yes | no

urra901109 wrote 08/20/2014 at 22:51 point
Are you going to sell this thing? I am starting to get ideas on using this as diy oculus rift and high resolution display for my raspberry pi. Please sell it

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 21:52 point
My company META (www.spaceglasses.com) is making 30 of these and would be willing to sell extra assembled units. Price is still TBD

Email me at b.sanders@meta-view.com

  Are you sure? yes | no

Blaze Sanders wrote 10/14/2014 at 23:14 point
Meta (www.spaceglasses.com) has purchased all the hardware and made the
following custom PCB's. We will be assembling them this Friday (10/17/2014) and
selling them unassembled or assembled for the following costs (flexible).

Apple iPhone 4S adapter board - See iPhone 4S GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

LG Optimus P880 adapter board - See Optimus P880 GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

HTC Droid DNA adapter board - See HTC Droid DNA GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

MIPI DSI Shield - MIPI DSI Shield GerberFiles (Panel #2)
- 30 UNITS willing to sell up to 25 units for $100 (unassembled) or $185
(assembled)\

Picture Link to PCB's - https://drive.google.com/file/d/0BygUWs7AJ_kUTTlhQlBVOW8xb28/view?usp=sharing

  Are you sure? yes | no

LWATCDR wrote 08/20/2014 at 12:50 point
So can this work as a GenLock and allow the mcu to overlay graphics on to the feed from the HDMI?

  Are you sure? yes | no

luis.figueroa12 wrote 08/20/2014 at 04:22 point
Would be awesome to drive and iPad lcd. Gen 2/3 started to get cheap a few months ago.

  Are you sure? yes | no

pst wrote 08/31/2014 at 21:43 point
ipad lcd is edp, not dsi, and there are already boards available. Check out rosznyo.com or the qualia display at adafruit

  Are you sure? yes | no

pst wrote 08/31/2014 at 21:51 point
correction: Its rozsnyo.com, sorry. And the site seems to be under construction, but he did make a board for it but if you live in the states adafruit would be more convenient (and their board supports backlight dimming oob)

  Are you sure? yes | no

bootstrap18 wrote 08/20/2014 at 01:16 point
g'day twl, great job well done. Pardon a question in the comments, how does "MIPI DSI" differ from the LVDS interface used in older generation panels? Does DSI over a single port impose an upper limit on resolution?

  Are you sure? yes | no

twl wrote 08/20/2014 at 07:25 point
LVDS simply serializes parallel interface bits (R,G,B x 6, Hsync, Vsync, DE) over 3 or 4 LVDS lines. DSI is a packet-based protocol.

  Are you sure? yes | no

JTR wrote 08/13/2014 at 20:05 point
Look's like you're almost done :)

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 21:54 point
My company META (www.spaceglasses.com) is using these chip. They are only $15 and need a custom PCB worth about $40

  Are you sure? yes | no

Kevin Rouviere wrote 08/07/2014 at 16:59 point
Love this project. Are any prototype units available?

  Are you sure? yes | no

Blaze Sanders wrote 10/02/2014 at 21:55 point
My company META (www.spaceglasses.com) is making 30 of these and would be willing to sell extra assembled units. Price is still TBD

Email me at b.sanders@meta-view.com

  Are you sure? yes | no

Blaze Sanders wrote 10/14/2014 at 23:14 point
Meta (www.spaceglasses.com) has purchased all the hardware and made the
following custom PCB's. We will be assembling them this Friday (10/17/2014) and
selling them unassembled or assembled for the following costs (flexible).

Apple iPhone 4S adapter board - See iPhone 4S GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

LG Optimus P880 adapter board - See Optimus P880 GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

HTC Droid DNA adapter board - See HTC Droid DNA GerberFiles.zip (Panel #1)
- 40 UNITS willing to sell up to 35 units for $40 (unassembled) or $125
(assembled)

MIPI DSI Shield - MIPI DSI Shield GerberFiles (Panel #2)
- 30 UNITS willing to sell up to 25 units for $100 (unassembled) or $185
(assembled)

Picture Link to PCB's - https://drive.google.com/file/d/0BygUWs7AJ_kUTTlhQlBVOW8xb28/view?usp=sharing

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates