Introduction: A Hackable and Geeky Wi-Fi Display for Your Desk

This article is a guide to building a customizable portable display that can show cool things like memes on your desk, using a Raspberry Pi Pico, 1.8 inch TFT LCD, custom-designed PCB, and 3D printed case. The schematics for the PCB and case are available on Github under a Creative Common License. The display is made using Fritzing, Tinkercad, and CircuitPython, and is configurable in many ways. Assembly instructions are provided.

Schematics and sample code available here: code2k13/pipico_desk_display

⚠️Please note that fabricating the PCB and the case should only be done by those with sufficient expertise to verify and adjust the design as necessary. The PCB schematics and 3D designs are provided for your personal use and responsibility. I cannot be held accountable for any unexpected issues or damages that may arise from their use.

Supplies

  • A Raspberry Pi Pico (both models should work)
  • My custom PCB
  • The 3D printed case
  • 1.8 inch SPI TFT LCD (exactly like the one shown in images)
  • Female headers (for soldering on PCB)
  • Male Headers (or stackable female headers)
  • M3 Spacers and screws

Step 1: Fabricating the PBC

For this project, I created a custom dual-layered PCB that accommodates standard through-hole components with a 2.54mm pitch. I was able to get five PCBs made locally for roughly $10, shipping included. The PCB holds two primary components: the Raspberry Pi Pico on the back and the LCD on the front. Additionally, the board includes space for soldering two pull-up resistors in case an OV7670 camera needs to be attached. This feature was necessary for my "Handwritten Digit Recognition" project and other future endeavors, but if you don't plan to use a camera, you can leave these slots unoccupied. Attached is the Fritzing file containing the PCB schematics.

Step 2: Assembling the Circuit on PCB

To connect the Pi Pico and the display, I suggest using female headers since most displays and Pi Picos have male headers. However, if your Pi Pico doesn't have headers, consider using stackable female headers that allow the bottom of the Pi Pico to fit the female headers on the PCB and the male headers to be on the "BOOTSEL" button side of the board. This approach opens up numerous possibilities for connecting various sensors and peripherals to the remaining pins of the Pi Pico. Adding M3 spacers and nuts to support the display on PCB (with some glue) is a good idea. The following are the connections on the custom PCB:

Step 3: Printing the Case

The case for the project only covers the front part of the PCB, leaving a rectangular hole for the display. However, there was a mistake in the PCB design, resulting in only two M3 holes on the case. To mitigate the error, I added a slit to one side of the case to fit one edge of the PCB and secure the other edge using the M3 holes. The slit was initially too narrow, but the designer widened it to 2mm in the new case version. Before printing the case, it is essential to verify if it can accommodate the PCB thickness. Another issue was that the last pair of Pi Pico pins touched the plastic support bar on the case's right side, requiring the designer to make holes under the pins. To ensure a good fit, brass M3 threaded inserts should be placed inside the M3 holes of the case before mounting the PCB. The display must also be stabilized using an M3 screw, a spacer, and hot glue to prevent it from being shaky. Here is the link to the 3D model on Tinkercad's website : https://www.tinkercad.com/things/2sQCRFoyv3b

Pi Pico Table Top Display Case

Step 4: Writing Programs for the Display

Attached is a sample program that runs 'Game of Life' on the display. If you used stackable headers on the Pi Pico, you will be able to attach sensors, buzzer and LEDs to the display and do interesting things. Here are some more cool things you can try:

  • Slide show of images from internet (using Pi Pico W)
  • Monitor stock or crypto prices (using Pi Pico W)
  • Display random quotes.
  • Halloween decoration
  • Read data using serial port from your PC and display on the LCD (resource usage, progress made by a program, monitor deployment pipelines, display mini dashboards)