

Pro rev1
RPi Pico based POST (Power-On Self Test) Diagnostic Card
- Size
- 102.6 × 107.3 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 136
- Nets
- 226
- Pads
- 714
- Tracks, vias
- 1,575, 268
- Pours
- 10
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 17 Jun 2022
- Updated
- 7 Oct 2025
Overview
Pro rev1 is an open-source printed circuit board by TheRetroWeb, from the TheRetroWeb/PicoPOST repository on GitHub. It is a 4-layer board of 102.6 × 107.3 mm with 136 parts on 226 nets, routed with 1,575 tracks and 268 vias.
It is built around the RP2040, 74LVC245AD and W25Q32JVSSIQ, with the AP63203WU, 74LVC02APW and 24LC01B/P among its other parts. Its parts include 51 capacitors, 41 resistors, 14 ICs, 8 connectors and 7 diodes. It belongs with the RP2040 and RP2350 boards of this library.
Main components
8RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)74LVC245AD
SOIC-20-300mil-40℃~+125℃ 1 1.65V~3.6V 2.9ns@3.3V,50pF 24mA 40uA 74LVC 8 Bidirectional Schmitt trigger Tri-State SOIC-20-300mil Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/TransceiverW25Q32JVSSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 133MHz 1uA 2.7V~3.6V 20 Years 32Mbit 3ms SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHAP63203WU
TSOT-23-6-40℃~+85℃@(TA) 1 1.1MHz 22uA 2A 3.3V 3.8V~32V Buck Built-in Fixed Overcurrent Protection、Light load efficient mode、Cycle-by-cycle current limiting、Hiccup current limiting、EMI optimization (spread spectrum) Step-down type Yes TSOT-23-6 DC-DC Converters ROHSDiodes IncorporatedDC-DC Converters74LVC02APW
TSSOP-14-40℃~+125℃ 1.08V~2V 1.2V~3.6V 120mV~800mV 2 24mA 24mA 4 4.4ns@3.3V,50pF 40uA 74LVC Series NOR Gate TSSOP-14 Logic Gates ROHSNexperiaLogic Gates24LC01B/P
DIP-80℃~+70℃ 1Kbit 2.5V~5.5V 400kHz 5ms I2C PDIP-8 EEPROM ROHSMicrochip TechnologyEEPROMLAN8720A-CP
QFN-24-EP(4x4)Ethernet ICsMicrochip TechnologyBAT54S
SOT-231 Pair Series Connection 1V@100mA 200mA 2uA@25V 30V 600mA SOT-23 Schottky Diodes ROHSMDDSchottky Diodes
README
README.mdPicoPOST
[!NOTE] You can get a quick summary from the blog post! Introducing the PicoPOST - The Retro Web Blog
Introduction

PicoPOST is a PC diagnostic card for systems with, at least, an 8-bit ISA slot. It's based around the Raspberry Pi Pico, powered by an RP2040.
PicoPOST is designed to provide many additional benefits over the basic POST cards that are commonly available from Chinese vendors on eBay and other sites.
This project is getting ready for public usage, with a few prototypes already in use for development purposes. More information soon as it gets finalized.
Implemented features
- Simple user interface, with a graphical monochrome 128x32 OLED display and a few buttons living on their own remote control
- Port 80h readout, with 4-place output history
- Port 90h readout, for IBM PS/2s
- Port 84h reaodut, for Compaq machines*
- Port 300h readout, for some EISA systems*
- Port 378h readout, for some Olivetti machines*
- More complete bus activity dumping facility
- Reset pulse detection
- +5V and +12V
and -12Vvoltage monitor** - Display is dimmed after 15s of inactivity to mitigate burn-in
- Flying Toasters! screensaver after 30s of inactivity on the main menu
*: We don't have a specimen handy, so we need confirmation from someone else out there.
**: Negative voltages into a positive ADC is too much mental gymnastics without additional hardware
Videos
We are slowly compiling a YouTube playlist
with a whole bunch of demonstration pieces, showing what the PicoPOST is capable of doing.
Stay tuned for more content!
Wishlist
New features have been implemented with the new rev 6 PCB and matching firmware.
- Full bus activity trace (HW OK, FW provisioned, but we need to make sure we are not missing data)
- Bus clock reader (HW OK, FW TBD)
- ... anything else, as long as the hardware allows it and someone implements it in firmware
Building the firmware
Automagically
We make use of Visual Studio Code and the official Raspberry Pi Pico extension for an easier life. When you first open the project in VSCode, you will be prompted to install a few suggested extensions; accept the proposal and follow on-screen instructions.
You should now be greeted by the CMake and Pi Pico sidebar panels. Use the CMake panel to switch between Debug or Release builds, then refer to the Pico panel for building, uploading, and debugging the firmware.
It's already set up to probe for a compatible debugger via OpenOCD and gdbserver, and it works really well with our official Raspberry Pi Debug Probe. I expect other SWD debuggers to work just as well (J-Link, STLink, ...).
Manually
The firmware is built using the official Raspberry Pi RP2040 SDK. Follow the official documentation for setting it up.
The procedure is pretty straight-forward:
- Clone the repo
text mkdir ~/repo cd ~/repo git clone https://github.com/TheRetroWeb/PicoPOST - Enter the repo and initialize it
text cd PicoPOST git submodule init git submodule update - Prepare the build system with CMake
text export PICO_SDK_PATH /path/to/pico/sdk cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/arm-none-eabi-gcc \ -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/arm-none-eabi-g++ \ -S./firmware \ -B./build \ -G "Unix Makefiles" - Build the firmware
text cmake --build ./build --config Release --target all -j $(nproc)
Customize the firmware
There are a couple of details you might want to tune at compile time. More specifically, you may want to better calibrate the voltage monitor to show more accurate results.
In the primary firmware\CMakeLists.txt file, there are three variables you can set to skew the final ADC conversion result. These were added to account for resistor tolerances in the voltage divider circuits.
CALIBADJ_5V, correction factor for the +5V railCALIBADJ_12V, correction factor for the +12V rail
Calculating these factors is pretty straight forward:
- Install the default firmware
- Connect PicoPOST to your computer of choice with a known good power supply
- Enter
Voltage Monitormode - Turn on the computer
- With a multimeter, measure the rail voltage as close as possible to PicoPOST
- Compute the required calibration factor by dividing the measured value with the one shown by PicoPOST
- Edit the
CALIBADJvariable and build the firmware again
Flashing the firmware
- In order to load new firmware, the Pico must be booted into UF2 mode:
- If the board is powered off, keep the BOOTSEL button pressed while plugging the USB cable into the Pico itself.
- If the board is already powered, you can short the "Pico Reset" pins on the back of the card instead of removing the USB cable.
- Alternatively, if the board is powered via USB from a PC with a data cable, you can move to the
Update FWmenu entry. By pressing Enter, the Pico will then be rebooted into UF2 mode automatically.
- A mass storage device should be now mounted on your computer.
- Drag and drop (or copy and paste) the
.uf2firmware file into the device. - Once loaded, it will automatically restart and disconnect.
- If all went well, you should now be greeted by the main menu on the OLED display.
You can verify the current firmware version by entering theInfopage.
Interested in helping?
- Submit issues and pull requests!
- Join us in the #picopost channel in The Retro Web discord server
- Join us and other developers of retro Pico hardware (such as PicoGUS and PicoMEM) in the Retro Pico Hardware discord server
Directories
datasheets/ Reference documentation for components used in the PicoPOST
firmware/ Source code for the PicoPOST firmware (written in C/C++ with the official Pico SDK)
pcb/ KiCad schematics and PCB design filesLicense
The firmware portion of PicoPOST is licensed under the MIT license.
The hardware portion of PicoPOST is licensed under the CERN OHL v2 Permissive license.
Parts
136| Qty | Value | Footprint | References |
|---|---|---|---|
| 32 | 100nF | Capacitor_SMD:C_0402_1005Metric | C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C23, C25, C26, C29, C36 +16 |
| 7 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C6, C10, C22, C27, C34, C46, C47 |
| 6 | 1k | Resistor_SMD:R_0603_1608Metric | R13, R14, R19, R20, R21, R22 |
| 5 | 470 | Resistor_SMD:R_0603_1608Metric | R2, R18, R27, R38, R39 |
| 4 | 10R | Resistor_SMD:R_0402_1005Metric | R29, R30, R31, R32 |
| 4 | 15pF | Capacitor_SMD:C_0402_1005Metric | C3, C5, C31, C32 |
| 4 | 47k | Resistor_SMD:R_0603_1608Metric | R6, R7, R11, R15 |
| 4 | 49.9 | Resistor_SMD:R_0603_1608Metric | R37, R40, R41, R42 |
| 4 | 74LVC245 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U2, U3, U5, U8 |
| 4 | BAT54S | Package_TO_SOT_SMD:SOT-23_Handsoldering | D2, D3, D4, D5 |
| 3 | 4.7uF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C4 |
| 2 | 12MHz | Crystal:Crystal_SMD_Abracon_ABM8G-4Pin_3.2x2.5mm | Y1, Y2 |
| 2 | 1K | Resistor_SMD:R_0402_1005Metric | R3, R28 |
| 2 | 200R | Resistor_SMD:R_0402_1005Metric | R4, R35 |
| 2 | 22R | Resistor_SMD:R_0603_1608Metric | R23, R24 |
| 2 | 22uF | Capacitor_SMD:C_1206_3216Metric | C28, C30 |
| 2 | 33R | Resistor_SMD:R_0402_1005Metric | R1, R34 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R25, R26 |
| 2 | 74LVC02 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U6, U7 |
| 2 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_Pad | H1, H2 |
| 2 | W25Q32JVSS | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm | U9, U11 |
| 1 | 1.5K | Resistor_SMD:R_0402_1005Metric | R33 |
| 1 | 100k | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C24 |
| 1 | 12.1k | Resistor_SMD:R_0402_1005Metric | R36 |
| 1 | 12k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C33 |
| 1 | 2040 Reset | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW4 |
| 1 | 2040 SWD | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J7 |
| 1 | 2040 Status | LED_SMD:LED_0805_2012Metric | D9 |
| 1 | 2350 Reset | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW3 |
| 1 | 2350 SWD | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J6 |
| 1 | 2350 Status | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | 24LC01 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U12 |
| 1 | 3.3uH | Inductor_SMD:L_Murata_DFE201610P | L1 |
| 1 | 3.9uH | Inductor_SMD:L_APV_ANR4030 | L2 |
| 1 | 330k | Resistor_SMD:R_0603_1608Metric | R10 |
| 1 | 39k | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | 470pF | Capacitor_SMD:C_0603_1608Metric | C35 |
| 1 | 68k | Resistor_SMD:R_0603_1608Metric | R12 |
| 1 | AP63203WU | Package_TO_SOT_SMD:TSOT-23-6 | U10 |
| 1 | FerriteBead | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | ISA Reset | LED_SMD:LED_0805_2012Metric | D8 |
| 1 | LAN8720A | Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.5x2.5mm_ThermalVias | U14 |
| 1 | LOGO | project libraries:picopost_logo | . |
| 1 | LOGO | project libraries:postcard_stamp | . |
| 1 | LOGO | project libraries:TRW_logo | . |
| 1 | MCP6002-T/SN | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U4 |
| 1 | MicroSD | project libraries:TF-SMD_TF-PUSH | J5 |
| 1 | P1_BS | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW2 |
| 1 | P2_BS | Button_Switch_SMD:SW_SPST_TS-1088-xR020 | SW1 |
| 1 | PCB_Finger_ISA_8bit | IDEcardedge:BUS_IDE8 | J1 |
| 1 | RJ45_Hanrun_HR911105A_Horizontal | Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal | J8 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U13 |
| 1 | RP2350B-QFN80 | RP2350_KiCad-main:RP2350B_QFN-80_EP_10.573x10.573_Pitch0.4mm | U1 |
| 1 | Remote SATA Connector | eec:Molex-47080-4001-0-0-0 | J4 |
| 1 | USB C | Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASV | J2 |
| 1 | USB Select | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J3 |
The 135 most common of 136 parts.
More from TheRetroWeb/PicoPOST
10- 2 layers99.6 × 69.2 mm

- 2 layers109 × 51.1 mm

- 2 layers82 × 68.3 mm

- 2 layers81.5 × 51.1 mm

- 2 layers81.3 × 87.6 mm

- 2 layers86.4 × 108.6 mm

- 2 layers50 × 50 mm

- 2 layers50 × 50 mm

- 2 layers50 × 50 mm

- 2 layers27.2 × 51.1 mm

Similar boards
- 2 layers41.3 × 110.5 mm

A500 Simple SPI V1.3
Mathesar/a500-simple-spi-hardware
Simple SPI controller for Amiga 500 with support for SD-cards and Ethernet controller
26 parts13 - 2 layers68.6 × 95.3 mm

- 2 layers39.4 × 68.6 mm

- 6 layers80 × 60 mm

Ice core
enkhbold470/ice-core
iCE40UP5K FPGA board with 8 MB PSRAM and three Pmods, programmed over USB-C by an RP2040. 6-layer KiCad 10 board.
78 partsCERN-OHL-S-2.0 - 2 layers203.1 × 108.1 mm

ESP32 Breakouts Playground
PockyBum522/cad-pcb-projects
Various PCB projects, mostly in KiCad
117 parts2MIT - 4 layers46.8 × 72.5 mm

Fiddler
ausocean/rig
Repository for AusOcean CAD files, PCB design files, 3D models and 3D modeling scripts.
124 parts - 4 layers70 × 60 mm

Tanklevel
Th3Link/tanklevel
This project provides a solution for measuring the liquid level in tanks, such as rainwater tanks, using the TL-136 pressure sensor.
80 parts4CERN-OHL-S-2.0 - 2 layers200 × 115 mm

Musicbrain busboard v2
MarkWestbroek/MusicBrain
A central brain running on teensy or a lighter MCU to process any control signals (MIDI, CV, our own) into the same but adding logic, ADSRs, DCOs, CV matrices etc. to it
94 partsMIT
Questions
How big is the Pro rev1 PCB?
It measures 102.6 × 107.3 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Pro rev1 use?
136 parts, built around the RP2040, 74LVC245AD, W25Q32JVSSIQ and AP63203WU. 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 Pro rev1 KiCad files?
From the TheRetroWeb/PicoPOST repository on GitHub, at the commit this page was made from: the board is pcb/Pro rev1/Pro rev1.kicad_pcb and its schematic pcb/ISA rev1/ISA card rev1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Pro rev1 design in my own project?
Its repository states no licence, so its author keeps all rights: ask TheRetroWeb before reusing the design.