A Pi Zero portable using the DPI interface.

Similar projects worth following
A battery operated Pi Zero with a 5" screen. The DPI interface is used instead of an HDMI converter board to lower power consumption.

This project uses this great tutorial as a starting point. You should read it. Seriously, it's way better than anything I could write.

I did make one modification though: I used 16 bit addressing instead of 18 bit so a few more GPIOs were freed up. Specifically SPI and a PWM channel.

One thing I love about the Zero is it's flat back. It means mounting it often consists of a strip of double-sided foam tape. This project uses this mounting method for the Zero and several other boards extensively.



Portable Network Graphics (PNG) - 1.21 MB - 03/21/2016 at 02:54



kicad library

lib - 453.00 bytes - 03/21/2016 at 02:54



kicad schematic

sch - 10.01 kB - 03/21/2016 at 02:54



kicad library

lib - 436.00 bytes - 03/21/2016 at 02:54



kicad library

lib - 440.00 bytes - 03/21/2016 at 02:54


View all 16 files

  • 1 × Adafruit 800x480 5" screen #1596
  • 1 × Adafruit TFT Friend LCD breakout #1932
  • 1 × Adafruit PowerBoost 500 #1944
  • 1 × Lithium battery
  • 1 × double-sided foam tape

View all 6 components

  • Added control kernel module.

    mincepi03/20/2016 at 23:10 0 comments

    I wrote a kernel module to control the backlight and panel enable. This turns the display on earlier in the boot process. It also makes panel power control easy. Source and binary are in the files subpage. The module is loaded by a modified overlay file. I've changed the instructions to match.

    A full schematic has also been uploaded and added to the instructions.

    I received the charger module. I've decided to replace a cap on the non-Adafruit power converter board to lower it's profile, so I'm waiting on a DigiKey order.

  • initial posting

    mincepi03/14/2016 at 05:22 0 comments

    Initial posting, a combination of the project page on my website and new content. Schematic isn't finished, there's no battery support, and the overlays need additions. But it works with power from the Zero's power jack.

View all 2 project logs

  • 1
    Step 1



    The Adafruit TFT Friend needs the following modifications: The 3.3V regulator (by 5VIN) must be removed, the 10K resistor next to it must be removed, and the 22 ohm resistor (by CLK) must be shorted out. I also scraped off a bit of the solder mask below the panel connector for a better ground connection.

    Most of these modifications are to extend battery life.


    A lot of the wiring on the TFT Friend is done on the back of it. I used 30 gauge wire wrap wire and glued it down with epoxy to ease handling. Mine looks like this:

    For all non-power connections, resistors are soldered to the Zero, then the wires from the TFT Friend are soldered to them. These resistors are important: they series-terminate the high-frequency signal lines. Although not strictly necessary I covered the joints with insulation. I also left the wires long since I plan to experiment with different DPI modes. You should probably trim yours.

    Power connections are made with 24 gauge stranded wire. I used wire from a network cable that had a broken tab. Note the blue ground wire that's soldered to the TFT Friend ground plane. My pile-o-spaghetti looks like this:

    Everything is mounted with doube-sided foam tape. The tape under the TFT Friend is trimmed to avoid the wires on the back.


    Several files from the files page need to be copied to the Zero: lcd565-overlay goes to /boot/overlays, dt-blob.bin and config.txt go in /boot.

    The lcd565 module needs to be put in the proper /lib/modules directory and depmod run while in that directory. A compiled version of the module for the current raspbian is in the files subpage, or you can compile from source. Module compiling isn't that difficult - see these easy instructions

View all instructions

Enjoy this project?



cori-cs wrote 05/16/2017 at 11:35 point

Hi Mincepi, Thank you for this tutorial, this is awesome !!

Could you provide more details on how to add the lcd565.c to/lib/modules? Should it be copied just there or does it needs to be compiled? I'm trying this setup with a Pi Zero and a 5" TFT display but I am stuck at this last stage.
Thanks :)


  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