Skip to the content
6 layers121 × 83 mmPS2 79004 Rev 0 4, the printed circuit board in 3D

PS2 79004 Rev 0 4

tschicki/PS2-Portable207

A custom designed PS2 Portable

Size
121 × 83 mm
Copper layers
6
Thickness
1.19 mm
Parts
770
Nets
1,201
Pads
4,148
Tracks, vias
6,487, 2,481
Pours
1,543
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
9 Sep 2025
Updated
13 Sep 2026

Overview

PS2 79004 Rev 0 4 is an open-source printed circuit board by tschicki, from the tschicki/PS2-Portable repository on GitHub, published under the MIT licence. It is a 6-layer board of 121 × 83 mm with 770 parts on 1,201 nets, routed with 6,487 tracks and 2,481 vias.

It is built around the 74LVC1G07, TPS629210DRL and 74LVC1G08Z, with the APX811-31UG, TLV75518PDRV and TXS0102DQER among its other parts. Its parts include 314 capacitors, 135 resistors, 20 ICs, 8 diodes and 7 transistors.

Main components

12

README

README.md

A Custom PlayStation 2 Portable from Scratch

About this Project

Just like the title says, this is a PlayStation 2 portable designed from scratch. This portable contains presumably world's first custom reverse engineered PS2 mainboard not made by Sony. It is only reusing 6 ICs of an original PS2, salvaged from SCPH-7900x or SCPH-9000x mainboards.

Most PS2 games can be played natively via OPL or NHDDL and the portable also features support for PS1 games via DKWDRV. Its two custom memory card slots are compatible with miniaturized PS2 Memory Cards, SD-Cards (MX4SIO) and a miniaturized SD2PSX.

Development of this project was started in 2022.

Overview

Custom PS2 AIO Mainboard

The mainboard was designed from scratch and is based on the SCPH-7900x and SCPH-9000x PS2 revisions. It also includes modern features, like USB-C PD charging and battery management, fully digital video output, I2S speaker and headphone amplifier and a customized boot ROM to boot directly into homebrew.

Details:
  • Battery Management:

    • USB C PD charging at 5V/9V/15V
    • Powered from 2S 5000mAh 21700 batteries for a total of 37Wh or about 4.5h of runtime on a single charge
    • Supports charge & play and includes a battery fuel gauge, protector and cell balancing
  • Power Management:

    • Custom developed power management featuring modest EE and GS undervolting
    • Soft power button with minimal quiescent current
    • Monitoring to detect short circuits and overcurrent conditions
  • Video Output:

    • Custom developed digital video processor based on a Trion T20 FPGA, written from scratch in VHDL
    • Fully digital direct drive of a 5” 480x800p DPI LCD by tapping right into the Graphics Synthesizer 24bit RGB output, replacing the stock PS2 video DAC
    • Features a motion-adaptive deinterlacer, line doubler, bilinear video scaler and OSD
    • Includes support for following resolutions:
      • 512i(256p) x 256, 512i(256p) x 320, 512i(256p) x 384, 512i(256p) x 448, 512i(256p) x 512, 512i(256p) x 640 at 50Hz
      • 448i(240p) x 256, 448i(240p) x 320, 448i(240p) x 384 at, 448i(240p) x 448, 448i(240p) x 512, 448i(240p) x 640 at 60Hz
      • VESA 480x640 at 60Hz
  • Audio:

    • Custom I2S headphone and speaker amplifier using LM49450
  • System Management:

    • Custom RP2040-based System Controller (SysCon) handling charging, discharging, power on/off, power management and monitoring
    • Custom developed DualShock 2 gamepad emulator running on core 1
      • Developed from scratch
      • Including rumble
      • Support for PS1 games
    • Custom developed configuration menu for changing and displaying various settings:
      • State of charge display (both in menu and via RGB LED)
      • EE temperature display and fan settings
      • Headphone and speaker volume
      • Various video processing settings, LCD brightness
      • Analog stick calibration and inversion
      • Deadzone settings
      • Power monitoring and TTE/TTF
      • And more…
    • SysCon firmware and video processor gateware updatable via drag & drop from USB-C
  • Custom PS2 Boot ROM

    • Boots directly into PS2BBL, thanks to the BIOS modifications of Epaminondas – no softmods required
  • Additional Features:

    • Fully functional PS2 RTC, enabled by an always-on standby rail

Mechanical Assembly

The whole mechanical assembly was designed from scratch for FDM printing. The design goal was to make it as ergonomic as possible, while keeping the overall appearance simple and minimalistic. The assembly is split into an outer shell and an inner assembly called 'skeleton' in an attempt to make assembly & disassembly easier and to allow easy shell replacements. Another priority for me was to use threaded inserts for all screws and to have easily replaceable non-soldered batteries.

Details:
  • Gamepads

    • Custom designed & modular gamepad subassemblies that connect to the mainboard via I2C for best flexibility
    • PSVITA 2000 face buttons
    • 3.3V Nintendo Switch hall effect analog sticks
    • Rumble support: Coin-style rumble motors
    • Custom developed trigger mechanism using living hinges
  • Cooling:

    • Custom designed aluminium heatsink covering the whole mainboard for maximum mechanical rigidity
    • Nintendo switch lite fan with configurable linear fan curve
  • Interfaces:

    • Two fully accessible memory card slots, miniaturized by reusing SD card sockets
      • Natively compatible with MX4SIO, a custom reverse engineered PS2 memory card and a custom form factor SD2PSX 'uSD2PSX'
    • One USB A connector of the PS2, for using original accessories or USB sticks (DKWDRV)
    • Stereo headphone jack
    • USB-C connector for charging and SysCon firmware update
  • Video and Audio

    • Stereo Nintendo Switch OLED speakers
    • 5" DPI LCD covered by a Nintendo 3DS XL glass screen lens

Accessories

To further enhance the user experience, some more or less optional accessories were designed.

  • A uSD2PSX memory card in SD-Card format for running backups and saving games. Can also be unplugged to play on multiple consoles / portables, and is compatible for use on a stock console using a modified MX4SIO memory card. The best way to play games on the PS2 portable, and pretty much mandatory.
  • A stand to place the portable while charging and when not in use.
  • A travel case to protect the portable on-the-go.
  • A reverse engineered PS2 memory card for saving games. Same form factor and interface as the uSD2PSX, but less useful. Don't bother with this and build the uSD2PSX instead.

How to Build

I would highly recommend not to build one, even if you know what you are getting yourself into. If you're still not convinced to stop here, you can find the project documentation in the documentation folder. It's best to read all the docs before you decide to continue.

You will need a lot of equipment and comprehensive electronics, soldering, troubleshooting and preferably also programming skills to have a chance of getting the custom PS2 mainboard to boot.

There is a worklog of the whole project on BitBuilt, you might find some additional information there.

Electronics

All custom PCBs, their Gerbers and their BOM can be found in the respective project under the Electronics folder. All PCBs come from JLCPCB.

Mechanics

All custom designed mechanical parts can be found under Solidworks. If you would like to edit them, they were all designed using SolidWorks Maker. Otherwise, the STEP and STL exports can be found under Output.
The housing parts were designed to be FDM printed, the CNC heatsink can be ordered from JLCCNC.

Firmware & Gateware

The source files of the left & right gamepad firmware can be found here.
The SysCon firmware can be found here.
The Trion T20 gateware can be found here.

In order to obtain the required firmware, you need to compile it yourself. See the documentation for that.

Bill of Materials

The bill of materials for the mechanical assembly can be found here. The electrical BOM for each PCBA is in the Electronics folder.

Assembly Instructions

Check the documentation folder. I tried to structure the sequence of documents so that it can guide you along for your build.

Special Thanks

Thanks to the BitBuilt community for reading and commenting the worklog, it really helped to keep the motivation up! And special thanks to:

  • Mister M and Gman for releasing their PS2 mainboard scans – without them this project would’ve taken much longer!
  • Epaminondas for his amazing work on the custom PS2 BIOS. Seriously, you rock!
  • Stuckpixel for helping out with converting the SPI part of the gamepad emulator to PIO. It’s much more reliable now!
  • wisi and mixa232323 for guiding me in the right direction with all the boot ROM shenanigans
  • StonedEdge and thedrew for their various suggestions and tips along the way
  • All the awesome people working on the SD2PSX, neutrino and NHDDL! It's incredible to see how far the PS2 homebrew scene has come in the last couple of years!

Known Bugs and Anomalies

This is a hobby project, so the end result will never be flawless. The design has seen hundreds of hours of playtesting, where following anomalies were discovered:

  • The PS2 RTC drifts by about 7s a day, this could most likely be solved by selecting a different 32kHz crystal or by tweaking the load capacitors. However, the characteristics of the original crystal and the Mechacon's oscillator circuits are unknown.
  • Games with static and permanently flickering elements can cause image retention on the LCD. I only noticed this on one game so far - Castlevania: Symphony of the Night, where certain HUD elements flicker. It is not recommended to play such games to prevent damage to the LCD.

License

All firmware, gateware and hardware in this repository is licensed under the MIT License.

Parts

770
QtyValueFootprintReferences
165Solder_PointPS2:Solder_Point_127TP1101, TP1301, TP1302, TP1303, TP1304, TP1305, TP1306, TP1307, TP1308, TP1309, TP1310, TP1311, TP1312, TP1313, TP1314, TP1315 +149
151100nPS2:C_0402_1005MetricC1301, C1401, C1403, C1404, C1405, C1406, C1407, C1408, C1409, C1503, C1504, C1507, C1601, C1602, C1701, C1702 +135
4068RPS2:R_Array_Convex_4x0402RN1301, RN1302, RN1303, RN1304, RN1305, RN1306, RN1307, RN1308, RN1309, RN2001, RN2301, RN2302, RN2303, RN2304, RN2305, RN2306 +24
32100nPS2:C_0201_0603MetricC2603, C2604, C2605, C2606, C2607, C2609, C2610, C2611, C2612, C2613, C2614, C2615, C2616, C2617, C2619, C2620 +16
291kPS2:R_0402_1005MetricR202, R205, R1304, R1305, R1307, R1504, R1505, R1507, R1508, R1510, R2001, R2307, R2401, R2402, R2403, R2404 +13
2810kPS2:R_0402_1005MetricR1201, R1202, R1501, R1502, R1503, R1514, R1601, R2102, R2501, R2701, R2702, R2703, R2704, R2705, R2706, R2707 +12
1810uPS2:C_0805_2012MetricC301, C302, C303, C304, C305, C307, C316, C319, C320, C321, C322, C323, C1801, C1812, C2103, C2501 +2
1822uPS2:C_0805_2012MetricC504, C505, C507, C508, C521, C522, C523, C524, C533, C536, C537, C2211, C2214, C3001, C3002, C3003 +2
17Solder_PointPS2:mounting_hole_1.6mmTP3001, TP3002, TP3003, TP3004, TP3005, TP3006, TP3007, TP3008, TP3009, TP3010, TP3011, TP3012, TP3013, TP3014, TP3015, TP3016 +1
161uPS2:C_0603_1608MetricC203, C204, C205, C206, C605, C616, C806, C809, C2107, C2114, C2115, C2118, C2119, C2202, C2205, C2208
164u7PS2:C_0603_1608MetricC308, C503, C506, C509, C528, C529, C530, C531, C534, C535, C538, C2601, C2608, C2801, C2814, C3004
1668RPS2:R_0402_1005MetricR304, R305, R314, R315, R1301, R1302, R1303, R1306, R1509, R2301, R2302, R2303, R2304, R2305, R2306, R2308
11100kPS2:R_0402_1005MetricR203, R206, R207, R211, R309, R401, R404, R507, R607, R610, R2101
112k2PS2:R_0402_1005MetricR208, R209, R301, R601, R608, R609, R611, R612, R613, R2103, R2104
910nPS2:C_0402_1005MetricC326, C327, C525, C807, C902, C903, C904, C915, C940
91nPS2:C_0402_1005MetricC313, C803, C808, C811, C1303, C2212, C2228, C2301, C2503
92u2PS2:C_0805_2012MetricC201, C202, C1402, C2002, C2003, C2105, C2106, C2112, C2504
8100pPS2:C_0402_1005MetricC941, C2401, C2402, C2403, C2404, C2405, C2406, C2407
7220nPS2:C_0402_1005MetricC514, C2602, C2618, C2625, C2626, C2627, C2628
615kPS2:R_0402_1005MetricR204, R509, R2407, R2410, R2413, R2414
615pPS2:C_0402_1005MetricC603, C604, C1501, C1502, C1505, C1506
622RPS2:R_0402_1005MetricR602, R603, R801, R802, R1506, R2901
6470nPS2:C_0603_1608MetricC312, C315, C317, C324, C2901, C2902
6FiducialPS2:Fiducial_1mm_Mask2mmFID3001, FID3002, FID3003, FID3004, FID3005, FID3006
6Jumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP501, JP502, JP503, JP504, JP505, JP506
42u2PS2:L_Coilcraft_XGL4020L501, L502, L503, L504
442k2PS2:R_0402_1005MetricR502, R503, R504, R505
4D_SchottkyPS2:SOD-923_0P6X0P85_ONSD203, D401, D402, D2501
4ESDA25WPackage_TO_SOT_SMD:SOT-323_SC-70D201, D202, D3001, D3002
4TPS629210PS2:SOT-583U502, U503, U504, U505
312kPS2:R_0402_1005MetricR302, R303, R2902
333R @ 100MHzPS2:R_0402_1005MetricFB2601, FB2801, FB2901
345k3PS2:R_0402_1005MetricR510, R1512, R1515
3560RPS2:R_0402_1005MetricR201, R1701, R1702
35pPS2:C_0402_1005MetricC802, C804, C1302
3CSD17575Q3PS2:CSD17308Q3Q301, Q302, Q303
3DMN67D8LPS2:SOT-23Q401, Q402, Q601
2100RPS2:R_0402_1005MetricR210, R306
21K5PS2:R_0402_1005MetricR1513, R2002
247nPS2:C_0402_1005MetricC310, C311
247uPS2:C_0805_2012MetricC526, C527
268RPS2:R_0603_1608MetricR317, R318
274LVC1G07PS2:Texas_USON-6_1x1.45mm_P0.5mm_SMDU601, U2102
274LVC1G08PS2:SOT-353_SC-70-5U1701, U1702
2APX811-31UGPS2:SOT-143U1501, U2701
2NetTie_2NetTie:NetTie-2_SMD_Pad0.5mmNT301, NT302
2Solder_PointPS2:TE_1551576-5TP3018, TP3019
2TLV75518PDRVPS2:WSON-6-1EP_2x2mm_P0.65mm_EP1x1.6mmU508, U509
2TXS0102DQEPS2:X2SON-8_1.4x1mm_P0.35mmU203, U2101
10R01PS2:R_1206_3216MetricR312
110RPS2:R_0402_1005MetricR316
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY601
116,934MHzPS2:Crystal_SMD_3225-4Pin_3.2x2.5mmY1502
118.432MHzPS2:Crystal_SMD_3225-4Pin_3.2x2.5mmY801
11K2PS2:R_0402_1005MetricR2003
11MPS2:R_0402_1005MetricR1511
11uPS2:SPM5030T-1R0ML505
11uHPS2:L_TDK_SPM6530L301
122nPS2:C_0402_1005MetricC515
12328702-4PS2:TE_2328702-4J3007
1270RPS2:R_0805_2012MetricR310
1270pPS2:C_0402_1005MetricC520
130kPS2:R_0402_1005MetricR307
132.768kHzPS2:Crystal_SMD_MicroCrystal_CM9V-T1A-2Pin_1.6x1.0mmY1501
14u7PS2:IND_TAIYO_NRS4012_TAYL2501
151RPS2:R_Array_Convex_4x0402RN2002
15R6PS2:R_0402_1005MetricR2502
15k23PS2:R_0402_1005MetricR308
1627G04LFPS2:TSSOP-16_4.4x5mm_P0.65mmU801
16k8PS2:R_0402_1005MetricR506
1AP22653APS2:SOT-23-6U506
1ASE-50MHzPS2:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mmX2901
1BAT1PS2:MOLEX_2082940020_2pinJ301
1BAT2PS2:MOLEX_2082940020_2pinJ302
1BCM5241PS2:LQFP-48_7x7mm_P0.5mmU2001
1BQ25792BPS2:BQ25792RQMRU301
1BSS84AKPS2:SOT-23Q403
1CX90MW6-16PPS2:CX90_632x232_HIRP201
1CXD2976GBPS2:PS2_CXD2976GB_35.0x35.0mm_P1.0mmU901
1CXD2980PS2:PS2_CXD2980CGB_23.0x23.0mm_P1.0mmU2201

The 742 most common of 770 parts.

More from tschicki/PS2-Portable

10
  • 4 layers36.8 × 78.6 mmGamepad Right, the printed circuit board in 3D

    Gamepad Right

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    43 parts207MIT
  • 2 layers24 × 32 mmRp2040-memcard, the printed circuit board in 3D

    Rp2040-memcard

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    40 parts207MIT
  • 4 layers36.8 × 78.6 mmGamepad Left, the printed circuit board in 3D

    Gamepad Left

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    35 parts207MIT
  • 2 layers24 × 32 mmMemory Card, the printed circuit board in 3D

    Memory Card

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    18 parts207MIT
  • 2 layers117.2 × 52.6 mmPS2 memcard flex, the printed circuit board in 3D

    PS2 memcard flex

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    13 parts207MIT
  • 2 layers35.6 × 32.2 mmPS2 Debug Probe, the printed circuit board in 3D

    PS2 Debug Probe

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    4 parts207MIT
  • 2 layers14.7 × 20.6 mmFlex L1 L2, the printed circuit board in 3D

    Flex L1 L2

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    3 parts207MIT
  • 2 layers21 × 15 mmFlex Left, the printed circuit board in 3D

    Flex Left

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    2 parts207MIT
  • 2 layers21 × 15 mmFLex Right, the printed circuit board in 3D

    FLex Right

    tschicki/PS2-Portable

    A custom designed PS2 Portable

    2 parts207MIT

Similar boards

  • 4 layers157 × 100 mmSpr23e bmu, the printed circuit board in 3D

    Spr23e bmu

    derlucae98/spr23e-bmu

    Battery Management Unit for the Scuderia Mensa SPR23e/SPR24e electric race car

    433 parts1MIT
  • 6 layers45 × 0 mmBase board, the printed circuit board in 3D

    Base board

    GeniePod/genie-hardware

    GeniePod Home V1 hardware: MVP testing build, wiring, BOM, and planned interface-board/enclosure docs.

    222 parts2CERN-OHL-S-2.0
  • 4 layers85 × 56 mmAnthC, the printed circuit board in 3D

    AnthC

    Anthilla/AnthC

    Anthilla AnthC Board

    211 parts40
  • 2 layers101.6 × 53.3 mmBMW E46 Cluster Interface Board, the printed circuit board in 3D

    BMW E46 Cluster Interface Board

    KSullivan20221/SimHub-BMW-E46-Cluster-Module

    This repo contains all of the circuitry, code, and resources used to create a shield board for an Arduino Mega that could be used to communicate with a BWM E46 instrument cluster from a PC.

    120 parts9
  • 4 layers130.1 × 183.6 mmMsfOwlClock, the printed circuit board in 3D

    MsfOwlClock

    pete-restall/MsfOwlClock

    MSF Owl Clock

    449 partsMIT
  • 4 layers40 × 100 mmBackplane, the printed circuit board in 3D

    Backplane

    melair/ktane

    Keep Talking and Nobody Explodes - Physical Edition

    83 parts5
  • 4 layers52 × 13 mmBoard A, the printed circuit board in 3D

    Board A

    Top-Cat/ZigbeeBlinds

    Custom firmware and PCB design to replace the RF board inside Somfy 1003293 motor assemblies with a Zigbee-compatible controller.

    22 parts

Questions

How big is the PS2 79004 Rev 0 4 PCB?

It measures 121 × 83 mm and has 6 copper layers, 1.19 mm thick.

What parts does the PS2 79004 Rev 0 4 use?

770 parts, built around the 74LVC1G07, TPS629210DRL, 74LVC1G08Z and APX811-31UG. 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 PS2 79004 Rev 0 4 KiCad files?

From the tschicki/PS2-Portable repository on GitHub, at the commit this page was made from: the board is Electronics/PS2_79004_Rev_0_4/PS2_79004_Rev_0_4.kicad_pcb and its schematic Electronics/PS2_79004_Rev_0_4/Battery_Management.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PS2 79004 Rev 0 4 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).