Join the Ben Heck team every week for amazing hacks! Watch them build and mod community-inspired projects using electronics! | Community Feedback | |
Super Glue Gun | ||
See All Episodes |
Ben gives a community member a tip on connecting an unused LCD Screen from an ASUS Tablet. He explains what LVDS (low differential signalling) means and how you can use a TI DS90C365A, a programmable LVDS transmitter 18 bit flat panel display link, to encode into a 4 channel LVDS signal that can be sent to an LCD panel. |
Community Feedback comes from wxam !
Congratulations you win a Free Ben Heck T-Shirt!
wxam would like to make a portable Raspberry Pi. He wants to know if he found an unused LCD screen from an ASUS tablet and in order to allow his ASUS tablet LCD screen to work with his Raspberry Pi. LVDS stands for low differential signalling, which is the kind of thing you would find on a USB connection or HDMI. Basically, it's using a fewer number of wires to transmit a lot of data quickly in a serial manner using differential signalling. One signal is either higher or lower than the other in voltage and then they switch places in their voltage. Instead of going from 0 to 3 volts, 0 to 5 volts, or even 0 to 1.8 volts, their change is around .5 volts which means they can change faster allowing you to transfer data faster.
Ben's got something on his table that might be of some use to wxam. It's a board that attaches to a Raspberry Pi. It uses all the GPIO. The reason it does that, there's a mode you can load up in Raspberry Pi, its in the device config or device tree overlay, and it turns the GPIO into a TTL Level RGB LCD Driver. So, if you had an LCD screen that had RGB TTL Levels, such as Playstation Portable screen, you could hook that up here and then set up the parameters in your config file and a Raspberry Pi would boot into it. If you're talking about an LVDS, you'll probably want to get a TI DS90C365AMT/NOPBTI DS90C365AMT/NOPB, a programmable LVDS transmitter 18 bit flat panel display link. What this chip does is take in your RGB TTL Signals (red, green, blue, sync, vsync, dot enabled, dot clock) and it encodes those into a 4 channel LVDS signal that can be sent to an LCD panel. This is something you might want to look into if you want to have low-level controls of LCDs without having to use the HDMI interface of the Raspberry Pi. It's a surface mount chip so if you were to sue this you could probably get one of those breakout board adapters, solder the chip to it, and solder it into your Raspbery Pi.
Ben would like to do an episode in the future where they discuss device tree overlays and how to configure you Raspberry Pi to work with other LCDs. A similar question was asked in Community Feedback 07: Raspberry Pi Hacks when Ben touched on putting Raspberry Pi into TTL RGB mode. If you had an LCD that had those signals you could put the Raspberry Pi into TTL RGB mode and then as long as you had the timing correct you could directly drive an LCD with it. The 4:3 screen from the Hex Game is basically the same screen that’s on the PlayStation portable.
GPIO Pins
The DPI (Display Parallel Interface) is a simple clocked parallel interface (up to 8 bits of R, G, B; clock, enable, hsync, and vsync). Its one of the alternate functions selectable on bank 0 of the Raspberry Pi GPIO. The interface is available as alternate function 2 (ALT2).
There are various ways that color values can be presented on the DPI output pins in either 565, 666, or 24-bit modes:
Disable Other GPIO Peripherals
You'll need to disable all other peripheral overlays that use conflicting GPIO pins by commenting out or inverting any dtparams that enable I2C or SPI in the config.txt file:
dtparam=i2c_arm=off
dtparam=spi=off
Linux Device Tree Overlay
The Linux Device Tree overlay is used to switch the GPIO pins into the correct mode (alt function 2). The GPU is responsible for driving the DPI display. There is no linux driver so the overlay simply sets the GPIO alt functions correctly.
The 'full fat' DPI overlay (dpi24.dtb) sets all 28 GPIOs to ALT2 mode to provide the full 24 bits of color bus as well as the h and v-sync, enable and dot clock. This will use all the bank 0 GPIO pins.
Users can edit overlays to create a custom overlay to enable just the pins they want to use.
Example 800x480 LCD Panel Config
dtoverlay=dpi24
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f005
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6
Do you have any tips or experience re-purposing an LCD screen for the Raspberry Pi?
Top Comments