Skip to the content
PCBKitNew board
4 layers90 × 100 mmMud-16, the printed circuit board in 3D

a little retro console with a Motorola 68000 and FPGA PPU

Size
90 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
100
Nets
210
Pads
640
Tracks, vias
2,144, 268
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
2 Dec 2025
Updated
31 Mar 2026

Overview

Mud-16 is an open-source printed circuit board by ratmuds, from the ratmuds/mud-16 repository on GitHub. It is a 4-layer board of 90 × 100 mm with 100 parts on 210 nets, routed with 2,144 tracks and 268 vias.

It is built around the SN74LVC8T245PW, 74HC165D and 74HC595, with the 74LVC1G04Z, AMS1117-1.8 and AMS1117-3.3 among its other parts. Its parts include 40 capacitors, 24 resistors, 18 ICs, 3 connectors and 1 diode.

Main components

7

README

README.md

mud-16

a little retro console with a Motorola 68000 and FPGA PPU

firmware

ppu.sv is the Verilog code for the PPU. This is close to what will be the renderer of the game console. main.cpp is currently a test bench that gets the display output from the PPU and renders it with Raylib, as well as simulating the CPU bus arbitration and SRAM VRAM access

features

  • 3.5" IPS Display
  • D-pad and ABXY buttons
  • 27 MHz FPGA
  • Rechargable Battery
  • 512 KB of SRAM

why

I think that the GameBoy and other retro game console are really cool, and I want to make my own console. But I didn't want to just emulate it, I wanted to use a real retro CPU and make my own PPU (picture processing unit) with a FPGA.

how

The CPU is the brain pretty much. It handles all the game logic and stuff. It's connected to 512 KB of SRAM which the first part of it is allocated to VRAM. The VRAM is used by the FPGA. The CPU needs to go through level shifters down to 3.3V, and the CPU and FPGA needs to handle bus arbitration properly, otherwise they will fight over the bus and everything will become a mess. The FPGA will request for the bus at the beginning of each frame where they will essentially perform a handshake and the bus will be passed to the FPGA. The FPGA then accesses all the VRAM it needs and then gives back control to the CPU.

The display will be running in 8 bit parallel mode, since SPI is too slow.

to use

this stuff is WIP

you'll need to flash everything to the FPGA which will load all the necessary data into RAM for the CPU. The Gowin IDE is the app you'll use to flash the Tang Nano.

image image image image

Schematic screenshots

image image image image image

Parts

100
QtyValueFootprintReferences
240.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C10, C11, C13, C14, C16, C17, C19, C21, C22, C23, C25, C26, C27, C28 +8
2310kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +7
11SW_DPSTray:SW_PUSH_6mmSWA1, SWB1, SWD1, SWL1, SWMENU1, SWR1, SWRST1, SWSTART1, SWU1, SWX1, SWY1
710uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC7, C8, C9, C20, C24, C34, C40
71uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C6, C12, C15, C18, C30, C32
7SN74LVC8T245Package_SO:TSSOP-24_4.4x7.8mm_P0.65mmU2, U4, U5, U7, U8, U13, U14
222uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC37, C38
274HC165Package_DIP:DIP-16_W7.62mmU11, U12
274HC595Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU9, U10
274LVC1G04Package_TO_SOT_SMD:SOT-23-5_HandSolderingU1, U15
2ESPRSTray:SW_SIDE_PUSH_3x6mmSWLB1, SWRB1
1330Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR24
1AMS1117-1.8Package_TO_SOT_SMD:SOT-223-3_TabPin2U19
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U18
1AS7C3513BAS7C513B:TSOP-44_10P2X18P4_ALLU6
1Conn_01x02_PinConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ3
1Conn_01x06_PinConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ2
1Conn_01x40_MountingPinConnector_FFC-FPC:Amphenol_F32R-1A7x1-11040_1x40-1MP_P0.5mm_HorizontalJ1
1MC68010PPackage_DIP:DIP-64_W22.86mmCPU1
1Tang_Nano_9Knosuz_symbols:DIP-48_TangNano9KU3
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD1
1~ray:3.7V_LiPo_Charging_BoardU17

Questions

How big is the Mud-16 PCB?

It measures 90 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Mud-16 use?

100 parts, built around the SN74LVC8T245PW, 74HC165D, 74HC595 and 74LVC1G04Z. 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 Mud-16 KiCad files?

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

Can I use the Mud-16 design in my own project?

Its repository states no licence, so its author keeps all rights: ask ratmuds before reusing the design.

Similar boards

  • 2 layers85 × 99.6 mmBadge, the printed circuit board in 3D

    Badge

    urish/aramcon-badge

    Just a badge

    93 parts18
  • 4 layers163.7 × 99.6 mmShield, the printed circuit board in 3D

    Shield

    SyedAymen/Shield

    98 parts
  • 2 layers94 × 70 mmCore, the printed circuit board in 3D

    Core

    stanislavstarcha/powerbox

    Add paths to your bash/zsh rc for convenience

    77 parts
  • 2 layers130 × 83.9 mmPicoTide, the printed circuit board in 3D

    PicoTide

    hoffman373/PicoTide

    An ISA PCB that interfaces a raspberry pi pico to an ISA slot.

    31 parts
  • 4 layers219 × 108.5 mmZ80DevBoard, the printed circuit board in 3D

    Z80DevBoard

    gianluca-rainis/Z80DevBoard

    An advanced development board for the Z80 microprocessor, powered by an RP2040.

    182 parts7CERN-OHL-S-2.0
  • 4 layers99.1 × 99.1 mmMaslab, the printed circuit board in 3D

    Maslab

    maslab-5/maslab

    MIT Mobile Autonomous Systems Laboratory Robot

    324 parts4
  • 4 layers300.8 × 110 mmFireflow, the printed circuit board in 3D

    Fireflow

    mcbronkowitch/fireflow

    FireFlow — a modulation-first ambient groovebox: the modulation system is the instrument, not a layer on top of it. Five independent lanes per part driving a synth, granular, wavetable, resonator or bucket-brigade deck.

    208 parts2MIT
  • 4 layers240 × 180 mmOparroy ci, the printed circuit board in 3D

    Oparroy ci

    kristofferkoch/oparroy

    WS2812 inspired versatile serial protocol and hardware

    570 partsMIT