Adafruit DPI Display Kippah
Created by lady ada
https://learn.adafruit.com/adafruit-dpi-display-kippah-ttl-tft
Last updated on 2022-03-28 10:06:50 PM EDT
©Adafruit Industries
Page 1 of 18
Table of Contents
Overview
3
Installation
6
•
•
•
•
•
•
6
7
9
10
11
12
Connect Display
Update & Upgrade
Install and Try raspi-gpio
Install Device Tree Blob
Update configuration
Touch screen support
Backlight
14
Downloads
16
• Files
• Schematic
• Fabication print
16
16
16
F.A.Q.
17
©Adafruit Industries
Page 2 of 18
Overview
A TFT panel connected to a Raspberry Pi without the use of an HDMI decoder? What
is this sorcery??? It's the DPI Kippah from Adafruit! This HAT-like* board snaps onto a
Raspberry Pi B+, A+, Pi 2, Pi 3 or Zero and with a little software configuration, allows
you to have what normally would go out the HDMI port come up on a nice little flat
screen. * Its not technically a HAT due to the lack of an on-board EEPROM, but its the
same shape as a Pi HAT and its a covering of sorts, so we call it a kippah
Compared to our lovely HDMI backpacks, you don't have the extra cost or expense of
an HDMI encoder/decoder. And you get a nice ultra-fast 18-bit color display with
optional touch support. We tested it and it works great with our 5" and 7" displays at
800x480. This display is 'native' so it gets all the graphics accelleration capabilities,
instant refresh, etc. you would get from an HDMI display
The Kippah will also generate the backlight drive voltage (up to ~24V) from the 5V
USB power on the Raspberry Pi
©Adafruit Industries
Page 3 of 18
OK so, exciting right? But, what's the catch? The catch is this add on board uses
nearly every pin available on the Raspberry Pi and those pins are hardcoded, they
cannot be moved or rearranged. The pins used are GPIO 2 through 21 inclusive. That
means you don't get the UART RX/TX pins (no console cable) and you don't get the
standard user I2C pins, the EEPROM I2C pins, or hardware SPI pins. You do get to use
pins #22, #23, #24, #25, #26 and #27, and the USB ports are fine to use too.
The other catch is that this display replaces the HDMI/NTSC output, so you can't have
the DPI HAT and HDMI working at once, nor can you 'flip' between the two.
Also, there's no PWM's available so you can't have precision backlight control unless
you somehow rig up an external PWM generator with a 555 or something.
Finally, we did test this setup with a straight-up Raspbian and after the software
installs, it works great. However, we don't guarantee it will work with any other
Raspberry Pi operating system or setup.
©Adafruit Industries
Page 4 of 18
That said, if you dont need a bunch of GPIO, its very easy to add a high quality
display. Pick and choose whether you want a touch-screen or not, then choose the
size of the display - 5" or 7" is best. You can also grab an FPC extension board and
extend the display away from the Pi. For power-users, this is a very nice little
accessory
Comes as one fully assembled and tested DPI Kippah circuit board. You may need a
soldering iron to adjust the backlight by soldering closed a PCB jumper (check the
tutorial on this). TFT display (https://adafru.it/Cfx), USB micro-B cable (http://adafru.it/
©Adafruit Industries
Page 5 of 18
592), FPC extension cable (https://adafru.it/eVZ), bent wire stand (https://adafru.it/
d7M), and Raspberry Pi not included (but we do carry them in the shop!)
Installation
If you just plug in the DPI Kippah, it won't work on a fresh installation of Raspbian! You
must set up the special device tree overlay configuration!
However, its not too bad, check it out below!
We've only tested this device tree overlay/firmware with Raspbian. Since its a bit
of a hack, it doesn't work with the native pre-boot 'NooBS' screen. However, it
does come up immediately with Raspbian (e.g. you get to see the rainbow square
screen)
Note these instructions are tested to work with Raspbian Stretch as of 2019/04/11
Connect Display
The DPI Kippah has a 40-pin TFT connector. This is a semi-standard connector. A
majority of 3.5", 4.3", 5.0" and 7.0" dot-clock DPI displays have this 'standard 40-pin'
connector.
©Adafruit Industries
Page 6 of 18
Check the Downloads page for an example datasheet so you can check if your
display is compatible. All Adafruit 40-pin TFT TTL displays work, we do not guarantee
any other displays work.
In fact, if you connect a display that does not match the right pinout, you could easily
fry the display if the 20V backlight pin ends up connected to a logic pin!
To connect, gently pull on the two black 'ears' on the FPC connector, and plug in the
display so the gold/silver metalic pins are facing 'up' away from the PCB.
Update & Upgrade
Start by updating and upgrading your Raspberry Pi to the latest software.
©Adafruit Industries
Page 7 of 18
sudo apt-get update
sudo apt-get upgrade
We want to get the most recent recent kernel and firmware, so run
sudo apt-get install rpi-update
and then
sudo rpi-update
©Adafruit Industries
Page 8 of 18
Then reboot with sudo reboot
Install and Try raspi-gpio
To help us debug/make sure we have the right device tree blob, we'll use a tool called
raspi-gpio
Install it with
sudo apt-get install raspi-gpio
Then you can run it with
©Adafruit Industries
Page 9 of 18
sudo raspi-gpio get
When you run it this time, you'll see the first 'bank' of GPIO pins set to, essentially
GPIO nn: level=1 fsel=0 alt= func=INPUT
Install Device Tree Blob
Now download and install the DPI device tree blob (tip o' the hat to
aBUGsworstnightmare (https://adafru.it/mFi)) from github by running:
% cd ~
% wget https://raw.githubusercontent.com/adafruit/Adafruit-DPI-Kippah/master/dtblob.bin
% sudo cp dt-blob.bin /boot/
in your Pi's command line, to change directories to the home directory, download the
blob, then copy it in /boot
©Adafruit Industries
Page 10 of 18
Update configuration
Finally, we'll tell the Pi to use the attached DPI display. The following will work for our
5" and 7" 800x480 displays. Both touch and non-touch displays use the same setup
here
Start by editing with
sudo nano /boot/config.txt
and add the following lines at the bottom
# Disable spi and i2c, we need these pins.
dtparam=spi=off
dtparam=i2c_arm=off
# Set screen size and any overscan required
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
# enable the DPI display
enable_dpi_lcd=1
display_default_lcd=1
# Enable DPI overlay
dtoverlay=dpi24
# set up the size to 800x480
dpi_group=2
dpi_mode=87
# set up the hsync/vsync/clock polarity and format
dpi_output_format=454661
# set up the size to 800x480
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6
For 4.3" TFT use the following:
©Adafruit Industries
Page 11 of 18
# Disable spi and i2c, we need these pins.
dtparam=spi=off
dtparam=i2c_arm=off
# Set screen size and any overscan required
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=480
framebuffer_height=272
# enable the DPI display
enable_dpi_lcd=1
display_default_lcd=1
# set up the size to 480x272
dpi_group=2
dpi_mode=87
# set up the hsync/vsync/clock polarity and format
dpi_output_format=520197
# set up the size to 480x272
hdmi_timings=480 0 40 48 88 272 0 13 3 32 0 0 0 60 0 32000000 3
This sets up the screen, if you ever want to temporarily 'undo the DPI Hat install' just
delete these lines
enable_dpi_lcd=1
display_default_lcd=1
To finish installation, just run sudo reboot
Touch screen support
If you have a DPI HAT with touchscreen circuitry installed and a touch-screen display,
you can easily use it for touch screen support
A microUSB cable is required (not included) connect it from the MicroUSB connector
on the HAT into one of the Pi's USB port
©Adafruit Industries
Page 12 of 18
No drivers are required! However, you'll likely want to calibrate the screen. We have a
calibration helper python script. Start by installing python-pip and pyusb version
1.0.0b1
sudo apt-get install python-pip
sudo pip install pyusb==1.0.0b1
Then grab the code and example gradient
cd ~
wget http://adafru.it/ar1100py
mv ar1100py ar1100.py
wget http://adafruit-download.s3.amazonaws.com/gradient800x480.jpg
If you are running it on a 5" display, continue as is.
If you are running it on a 7" display, edit with nano ar1100.py and change this line:
writeeeprom = CALIBRATED_5IN_800x480;
to
writeeeprom = CALIBRATED_7IN_800x480;
Then run the calibrator with:
©Adafruit Industries
Page 13 of 18
cd ~
chmod +x ar1100.py
sudo python ar1100.py
Its normal for the first time you run it, it will complain "Couldn't find generic either" just
run it again!
Just hit the up arrow on your keyboard and return, to rerun sudo python ar1100.py
This time it will continue, program the AR1100 with the calibration data, and give you a
rainbow display.
When done, hit Escape on your keyboard
Backlight
The DPI Kippah has a backlight booster that can support any 40pin TFT display we
carry. However, since backlights do vary from display to display, you may need to
configure the backlight to match your display. Here's the constant-current draws of
our displays
• 4.3" 480x272 - 1 strand of 7 LEDs in series, 25mA constant current
• 5.0" 800x480 - 2 strands 6 LEDs in series, 50mA constant current
• 7.0" 800x480 - 6 strands of 3 LEDs in series, 150mA constant current (although
100-150mA can be used)
©Adafruit Industries
Page 14 of 18
By default, we ship the DPI Kippot with 25mA backlight. You'll still be able to see the
display on a 5" or 7" display, but it will be dim! That's OK, all you have to do is
configure the Kippah to match your display.
Since we dont know what display you're going to use, we leave this up to you. It's
easy to do, just grab your soldering iron and heat it up, then grab some solder and
melt it to short out the jumpers on the Kippah here:
The left and middle jumper each add 25mA to the default 25mA. The right jumper
adds 50mA. So if you want to have a 50mA backlight, short only the left jumper. For
75mA, short the right most. For 100mA solder short the left and right and for 125mA
short all three!
©Adafruit Industries
Page 15 of 18
Downloads
Files
• 5.0" Display (https://adafru.it/dWZ) Datasheet (example of 40-pin interface
pinout)
• Configuration files on GitHub (https://adafru.it/rEE)
• EagleCAD PCB files on GitHub (https://adafru.it/rF2)
Schematic
The middle section with the touch screen controller is not placed on the non-touch
version!
Fabication print
This PCB fits the electrical 'HAT' specification. Dimensions in mm
©Adafruit Industries
Page 16 of 18
F.A.Q.
Can I use the DPI interface and HDMI or TV out at the
same time?
Nope! The DPI/HDMI/TV outputs are all the same hardware driver so you can only
have one at a time. To enable/disable the DPI display, comment out or uncomment
enable_dpi_lcd=1
display_default_lcd=1
in /boot/config.txt and reboot. It cannot be done on the 'fly'
How is that DTO blob made?
If you'd like to check out the device tree overlay and how to customize, you can
read some more here: http://blog.reasonablycorrect.com/raw-dpi-raspberrypi/ (https://adafru.it/rEn)
Run:
©Adafruit Industries
Page 17 of 18
sudo apt-get install device-tree-compiler
wget https://raw.githubusercontent.com/robertely/dpi666/master/
setup/dt-blob-dpi.dts
sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-dpi.dts
to create your own!
©Adafruit Industries
Page 18 of 18