Skip to the content
PCBKitNew board
2 layers80 × 56 mm595pcb, the printed circuit board in 3D

This is a collection of all the rpositories for the DEFCON screen hat

Size
80 × 56 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
67
Pads
262
Tracks, vias
305, 105
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
15 Aug 2026
Updated
2 Nov 2026

Overview

595pcb is an open-source printed circuit board by abc123me, from the abc123me/screen-hat-defcon repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 80 × 56 mm with 34 parts on 67 nets, routed with 305 tracks and 105 vias.

It is built around the AP63203WU and 74HC595. Its parts include 14 capacitors, 7 ICs, 6 connectors and 1 inductor.

Main components

2

README

README.md

screen-hat-defcon

This is a collection of all the rpositories for the DEFCON screen hat

NameDescription
screen-hat-rsUserspace rust animation app
fbgl-rsUserspace rust graphics library
ddmafbLinux kernel direct DMA framebuffer driver
Vivado projectVivado project for the screen hat
Vivado IPVivado IP for the screen hat
jlbspBSP for the screen-hat

Hardware information

Wiring and other information is contained in the ScreenHat.ods spreadsheet. See the V2 page or picture below for complete information.

WiringInfo.png

GPIO expandsion PCB information

The 595pcb KiCAD project is the core GPIO expansion PCB used for backlight and reset control, gerber files for version 1 of the PCB are inside of 595pcb/grb_v1.zip in this repository, the BOM for the PCB is below:

Digikey part noQuantityDescription
AP63203WU-713.3V 2A Buck converter
74HC595DCT-ND68-Bit Serial-In, Parallel-Out shift register
T491S106K010AT410uF, 10V Tantalum capacitor
478-KGM21NR71H104KTCT-ND10100nF, 50V MLCC capacitor

Displays used

  • The displays are 14x ILI9341 based 2.4" TFT LCDs, they're 240x320 and use a three-wire SPI interface. The SPI interface is unique as a word is 9-bits wide as opposed to the typical 8-bits.
  • The linux kernel driver always sends multiples of 9 bytes in order to meet this strange requirement of the SPI interface while using a typical 8-bit SPI driver.
  • The FPGA IP just does 9-bit SPI natively since it's an FPGA and I can make the hardware do whatever I want.

Development board used

  • The MicroPhase Z7 lite is a cheap $100 chinese Zynq 7000 series development board, sometimes can be found for as cheap as $70
  • I am using the Zynq 7010 variant, the Zynq 7000 series has two 32-bit ARM V7 cores, this particular development board has 2Gib of RAM which.
  • This equates to 512MB of RAM in Linux (since 1B = 8b)
  • They don't provide a Vivado example for this board, I had to figure it all out myself, so videos on that below:
  • Microphase Z7 lite DDR3 buildroot configuration
  • Ethernet on MicroPhase Z7 lite
  • The DDR3 RAM on these chips is LPDDR3, I tried to get it to go as fast as I could but it is still pretty slow.
  • Never got USB to work, tried once, and gave up on it as I didn't have much interest in it since I never use USB anyways

Potential improvements

The version 1 on the 595 expansion PCB worked almost perfectly however I suspect it could be improved.

  • Add a GPIO line to pin 6 of the AP632XX buck converter, so FPGA can contreol power for all screens, this would improve the initialization by making sure screens the screens are all turned on after the FPGA is fully loaded.
  • I2C ADC so voltages can be monitored
  • Global output enable controls for both shift register banks

Building

Dependencies

This is a buildroot project, meaning the entire linux kernel and all apps are built from source.

I use Arch btw, but last I checked Fedora is recommended for Linux kernel / Buildroot builds. Arch Linux typically has a GCC version that is too new, meaning you will be fighting GCC - so I wouldn't recommend it.

Buildroot required dependencies

My custom packages all use git so it is also a required package.

fd-find is required for my custom BSP repository and bsp script, if you have not used this unix find replacement, try it!

For any questions on how to modify packages, see the buildroot manual

Instructions

  1. Clone jlbsp
  2. Enter the repository (cd jlbsp)
  3. Checkout the develop branch for latest (git checkout develop)
  4. Setup the screen hat BSP (./bsp setup screen-hat)
  5. Enter the screen hat BSP (cd ../builds/screen-hat)
  6. Turn off the JL_SECRET_KEYS repository via make menuconfig
  7. Build the BSP using make all
  8. Flash the SD card using dd if=images/sdcard.img of=<my-sd-card> bs=4M oflag=sync status=progress

Troubleshooting

The jlbsp contains an upgrade script you can use to remotely upgrade the screen hat via make deploy. The bsps/screen-hat.bsp file contains the IP address that would be used here. You'll also have to setup SSH keys yourself by adding your SSH keys to the rootfs or enabling root login via SSH.

Serial via the USB UART may also be used, 115200 baud, the username is root, no password.

Pictures

screenhat1

screenhat2

And yes, I know my camera is a potato, and no I will not be upgrading.

Parts

34
QtyValueFootprintReferences
10100nFCapacitor_SMD:C_0805_2012MetricC101, C102, C103, C104, C105, C106, C107, C109, C113, C114
674HC595Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU101, U102, U103, U104, U105, U106
410uFCapacitor_Tantalum_SMD:CP_EIA-3216-12_Kemet-SC108, C110, C111, C112
4MountingHole_PadMountingHole:MountingHole_2.7mm_M2.5_Pad_ViaH101, H102, H103, H104
2Conn_01x24Connector_PinHeader_2.54mm:PinHeader_1x24_P2.54mm_HorizontalJ101, J102
2Conn_02x03_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_HorizontalJ105, J106
2Conn_02x08_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_HorizontalJ103, J104
2TestPointTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP_3V101, TP_5V101
1AP63203WUPackage_TO_SOT_SMD:TSOT-23-6U107
1L_Ferrite_SmallInductor_SMD:L_Changjiang_FNR5045SL101

Questions

How big is the 595pcb PCB?

It measures 80 × 56 mm and has 2 copper layers, 1.6 mm thick.

What parts does the 595pcb use?

34 parts, built around the AP63203WU and 74HC595. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the 595pcb KiCad files?

From the abc123me/screen-hat-defcon repository on GitHub, at the commit this page was made from: the board is 595pcb/595pcb.kicad_pcb and its schematic 595pcb/595pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 595pcb design in my own project?

Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers37.1 × 37.2 mmDoorman, the printed circuit board in 3D

    Doorman

    AzonInc/Doorman

    ESP32-S3 based Intercom Gateway (TCS / Koch / Niko / Scantron / Analogue Systems)

    44 parts252GPL-3.0
  • 4 layers81.6 × 88.8 mmCheetah MX4-Mini, the printed circuit board in 3D

    Cheetah MX4-Mini

    KaiPereira/Cheetah-MX4-Mini

    A powerful yet compact 3D printer motherboard that supports TMC stepsticks, fans, heaters, screens and thermistors

    171 parts179
  • 6 layers84 × 98 mmFujiNet-5200-Rev0, the printed circuit board in 3D

    FujiNet-5200-Rev0

    FujiNetWIFI/fujinet-hardware

    Schematics and design files for FujiNet hardware

    145 parts142
  • 2 layers50 × 70 mmLcdtap rp2350, the printed circuit board in 3D

    Lcdtap rp2350

    shapoco/lcdtap

    A tool for mirroring or capturing I2C/SPI LCD displays

    100 parts85
  • 2 layers30 × 49.3 mmUSB PD monitor V1, the printed circuit board in 3D

    USB PD monitor V1

    lhm0/pd_logger

    This repository contains two DIY gadgets to monitor and log USB-C Power Delivery (PD). Both devices are designed to be easy to build, hackable, and useful for makers who want to explore USB-C PD.

    34 parts82
  • 4 layers55 × 100.5 mmOSS Radio Hardware Design, the printed circuit board in 3D

    OSS Radio Hardware Design

    Arkos-Engineering/HT-15_hardware

    We can split this out into separate repos later, right now its very convenient to have everything here.

    256 parts72