Skip to the content
PCBKitNew board
2 layers112 × 158 mmHello, the printed circuit board in 3D

HELLO: a tiny 8051 computer shaped like a 1984 desktop. AT89S52, 32 KB SRAM, 128x64 ST7920 LCD, USB-C. 112 x 158 mm 2-layer KiCad 10 board, DRC clean, firmware that writes hello. Built through HeyPCB's MCP server.

Size
112 × 158 mm
Copper layers
2
Thickness
1.6 mm
Parts
27
Nets
47
Pads
189
Tracks, vias
392, 401
Pours
5
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Oct 2026
Updated
17 Oct 2026

Overview

Hello is an open-source printed circuit board by HeyPCB, from the HeyPCB/hello-8051 repository on GitHub, published under the MIT licence. It is a 2-layer board of 112 × 158 mm with 27 parts on 47 nets, routed with 392 tracks and 401 vias.

It is built around the AT89S52-24PU, SN74HC573AN and AS6C62256-55PCN, with the C320C104K5R5TA, K330J15C0GF5TL2 and MFR0W4F5101A50 among its other parts. Its parts include 8 capacitors, 5 resistors, 3 ICs, 3 connectors and 2 switches. It belongs with the retro computing and games and lEDs and displays boards and the 8051 (CH55x, STC, AT89) boards of this library.

Main components

12

README

README.md

HELLO, a tiny 8051 computer

A 112 × 158 mm 8051 computer shaped like the front of a 1984 desktop machine: the 128×64 LCD sits where the screen would be, the chips sit in the chin, the ISP header sits where the floppy slot was, and a narrower foot runs along the bottom edge.

An agent built it through HeyPCB's MCP server, from one prompt to Claude Code: parts, wiring, outline, placement, routing and checks, all as tool calls. It then wrote the firmware, which draws "hello" on the LCD one pen stroke at a time. KiCad 10 opens the files directly, and the board is on Circuit World to open or fork in HeyPCB (sign-in required).

3D render of the HELLO board, every part modelled   Top view of the HELLO board

The firmware writing hello on the simulated 128x64 LCD

What's on it

  • AT89S52-24PU (DIP-40) at 11.0592 MHz, running from its own 8 KB of flash (EA tied to VCC).
  • 32 KB of SRAM: an AS6C62256 (DIP-28) behind a 74HC573 address latch, mapped at XDATA 0000–7FFF.
  • HS12864-15C, a 128×64 ST7920 graphic LCD, in 3-wire serial mode: P1.0 = CS, P1.1 = SID, P1.2 = SCLK, P1.3 = RST. Its backlight runs through R5, 22 Ω.
  • USB-C for 5 V only (GCT USB4085), with 5.1 kΩ pull-downs on CC1 and CC2, a 500 mA resettable fuse (Bourns MF-R050) and a power slide switch.
  • ISP header (10-pin, USBasp layout) to program the AT89S52, and a 6-pin UART header on P3.0 (RXI) and P3.1 (TXO).
  • Reset button, power LED, two M3 holes in the chin.
  • 2 layers, ground poured on both. Every part is through-hole except the crystal (an SMD HC-49S): LCSC lists no through-hole 11.0592 MHz part.

Every part has an LCSC number in the BOM.

Firmware

firmware/ builds with SDCC (4.6.0 here) and the board's ISP header takes the result:

bash
cd firmware
make        # build/hello.hex, 2,832 of the AT89S52's 8,192 bytes
make sim    # runs the image on a simulated board and renders the screen to build/sim/

hello.hex is in the folder already built. The firmware reads ../hello.svg at build time (tools/svg2c.py), fits its 29 Bézier curves to the panel, then traces them with integer maths, stamping a round pen into a frame buffer in the external SRAM and sending the rows under the pen to the LCD after each of its 1,088 steps.

It has run only in simulation. make sim is a cycle-counted 8051 with a model of the ST7920 wired to P1, written from the ST7920 datasheet's serial protocol. Its final screen matches the bitmap computed from hello.svg with 0 pixels different, and SDCC's own simulator (ucsim) agrees on the frame buffer and the cycle count (4,256,702). That check covers the processor and memory, not the LCD model, so how the HS12864-15C itself handles the panel's bottom half is the first thing to confirm on hardware. The screen's colours in the renders are made up; the pixels are exact.

Checks

Measured on this revision:

CheckResult
DRC, KiCad 10.0.6 run locally0 errors, 0 unconnected; 27 warnings (14 hole-to-hole, 10 silkscreen over copper, 3 silkscreen near the edge)
DRC, HeyPCB0 errors, 0 unconnected
ERC, HeyPCB0 errors
ERC, KiCad 10.0.6 run locally3 errors, all "input pin not driven" on the SRAM's A0–A2 (below)
HeyPCB verifyevery rung that ran passed; IR drop and the pin-direction check not verified
Fab readiness (JLCPCB)not ready: no blockers, but HeyPCB could only partly confirm the identity of the through-hole resistors and capacitors, so the BOM has no verdict

Things to know before ordering:

  • The 3 KiCad ERC errors are symbol pin types, not wiring. A0–A2 of the SRAM are driven by the 74HC573's outputs, but the 573's LCSC-generated symbol gives its pins no electrical type, so KiCad sees no driver. The same untyped pins are why HeyPCB could not judge the direction of 39 of the 43 signal nets.
  • Check the pinouts against the datasheets. The AT89S52, AS6C62256, 74HC573 and HS12864-15C are each wired from a single pin table that no second source confirmed.
  • 20 of the 181 plated holes have a 0.150 mm annular ring, under JLCPCB's preferred 0.180 mm (its minimum is 0.13 mm).
  • The SRAM is the expensive part: about $17 at LCSC, with 8 in stock when the board was designed. Any 600-mil DIP-28 62256 is pin-compatible.
  • The LCD's backlight resistor is a guess. If the module has its own resistor, or the light is too dim or too bright, change R5.
  • A few tracks pass near the crystal (advice, not a gate).

Files

PathWhat it is
hello.kicad_pro, .kicad_sch, .kicad_pcb, .kicad_druThe KiCad 10 project
heypcb-libs/The LCSC parts' symbols and footprints, and one HeyPCB footprint, wired up by fp-lib-table and sym-lib-table
design.jsonThe HeyPCB design the schematic and board are generated from
fab/Gerbers and drill files, BOM and pick-and-place (CPL) for JLCPCB
firmware/The SDCC firmware, its simulator, and hello.hex
hello.svgThe lettering the firmware draws: one pen stroke
images/HeyPCB's 3D view and photograph of the board, the schematic, and the simulated screen

License

MIT. See LICENSE.

Parts

27
QtyValueFootprintReferences
4100nFCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC5, C6, C7, C8
233pF C0GCapacitor_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC2, C3
25.1kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2
2MountingHole M3MountingHole:MountingHole_3.2mm_M3H1, H2
1100uF 25VCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4
110uF 50VCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC4
111.0592MHzHeyPCB_LCSC:HC-49S_L11.4-W4.8Y1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
122Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5
1500mA PTCHeyPCB_LCSC:FUSE-TH_L9.0-W3.0-P5.10-D0.6-S1.10F1
174HC573HeyPCB_LCSC:DIP-20_L26.8-W6.4-P2.54-LS7.6-BLU3
1AS6C62256 32Kx8 SRAMHeyPCB_LCSC:PDIP-28_L37.0-W13.5-P2.54-LS15.6-BLU2
1AT89S52-24PUHeyPCB_LCSC:DIP-40_L52.3-W13.9-P2.54-LS15.2-BLU1
1ISPConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ2
1LCD 128x64 ST7920HeyPCB_LCSC:LCD-TH_HS12864-15CDS1
1POWERHeyPCB_LCSC:SW-TH_3P-L8.8-W3.9-P2.50_SS12D00G3SW2
1RESETHeyPCB_Verified:TACT600X600P650X450NSW1
1UARTConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1USB-C (power)Connector_USB:USB_C_Receptacle_GCT_USB4085J1
1redLED_THT:LED_D3.0mmD1

Questions

How big is the Hello PCB?

It measures 112 × 158 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Hello use?

27 parts, built around the AT89S52-24PU, SN74HC573AN, AS6C62256-55PCN and C320C104K5R5TA. 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 Hello KiCad files?

From the HeyPCB/hello-8051 repository on GitHub, at the commit this page was made from: the board is hello.kicad_pcb and its schematic hello.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Hello design in my own project?

Its repository publishes it under the MIT 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

  • 6 layers160 × 120 mmPic32main, the printed circuit board in 3D

    Pic32main

    JuanPoueriet/automatic-spork

    Máquina de ruleta física de casino. 6 PCBs: pic32main (cerebro), wheel (rueda de LEDs), displaysa/b/c (paneles de 7 segmentos en cascada) y buttons (botonera).

    256 parts
  • 4 layers73.1 × 97.6 mmUlp daughterboard, the printed circuit board in 3D

    Ulp daughterboard

    Ismael034/ulp_daughterboard

    KiCad project files for a hardware CTF challenge used during the 2026 ULP CTF. The board is meant to be used with the ch32v203-dev development board.

    65 parts3
  • 2 layers127 × 69.9 mmEzcgi, the printed circuit board in 3D

    Ezcgi

    baldengineer/bit-preserve

    Project for capturing vintage, classic, aka old computer schematics in KiCad.

    34 parts446
  • 2 layers140 × 105.5 mmRECUV02, the printed circuit board in 3D

    RECUV02

    TsunaHalo2001/RECUV

    Codigos de las estaciones meteorologicas del grupo GISMODEL

    77 parts2
  • 2 layers77.5 × 100 mmRover pdb, the printed circuit board in 3D

    Rover pdb

    devkyber/PCB

    AI-assisted PCB engineering for native KiCad: source evidence, scoped changes, checked previews, human review, and reproducible release packages.

    93 parts
  • 2 layers177.8 × 107.9 mmWaCS-52KX R1, the printed circuit board in 3D

    WaCS-52KX R1

    dtatum7/WaCS-52KX

    Control board upgrade for a 13.8 V 50 A linear bench power supply

    113 partsMIT
  • 2 layers125.3 × 80.3 mmPCB1, the printed circuit board in 3D

    PCB1

    pavlovicdjordje35/Light-Follower

    57 parts
  • 2 layers201.6 × 35.5 mmFRONT PANEL BOARD, the printed circuit board in 3D

    FRONT PANEL BOARD

    laforestlabs/KiCraft

    KiCad PCB automation toolkit — placement, routing, scoring, and experiment management

    10 parts