Everything is covered in the video above.
You can make your own POST card (BIOS POST code reader) using the Raspberry Pi Pico. It can also be used as an LPC bus sniffer. I covered everything about the LPC bus for reading POST codes in the video above.
Thank you for considering supporting my work!
I usually use old or junk parts on my projects to reduce electronic waste and support the SDGs. I was working on a project to reuse an x86-based firewall that I came across in an online auction. And I found myself reading BIOS post-codes. I thought it would be a good opportunity to talk about how the LPC bus and I/O cycles work by making a BIOS POST code reader project. So, here we are.
- LPC bus sniffer
- POST code output to USB CDC
- POST code output to the LEDs
- Filter LPC I/0 frame with start, cycle/dir and address
- Abort frame support
- Defining pin bases and counts (Refactoring)
- Disabling pull-ups and pull-downs
-
Clone the repo as shown below, or download latest release.
git clone https://github.com/MrGreensWorkshop/RasPiPicoSDK-PicoBiosPostCodeReader.git
-
Please make sure you are using the Pico SDK v1.5.0 or later because some of the implementations are necessary.
-
Open the project in VS Code because it adds SDK to the environment string. (Check the .vscode/settings.json file for details.)
- Or add PICO_SDK_PATH to your environment string.
-
Compile using build.sh
chmod +x build.sh ./build.sh
- Or run
cmake -B build -S . && make -j4 -C build
-
Make sure you watch the video at the top of the page.
-
Build the circuit below and connect it to the LPC bus on the target PC.
🚨 Caution: If you short circuit or damage the LPC bus, you may end up with a non-bootable PC. Because earlier PC BIOS were connected to the LPC bus. TPM and Super I/O devices (keyboard, mouse, serial or parallel port, floppy, fans, LEDs, and other devices) connected to the LPC bus will also fail. "Do it at your own risk."
-
Get the binary
- You can compile the project and get the binary as explained above.
- Or you can use precompiled binary files from the latest release, download the "binary_{tag}.zip" and unzip.
-
Put the Raspberry Pi Pico into bootloader mode by pushing the bootsel button while plugging it into your computer.
-
Copy the
build/PicoBiosPostCodeReader.uf2
file to the Raspberry Pi Pico either by dragging and dropping or using thecp
command as shown below.Linux macOS cp build/PicoBiosPostCodeReader.uf2 /media/<user>/RPI-RP2
cp build/PicoBiosPostCodeReader.uf2 /Volumes/RPI-RP2
-
Open your favorite serial terminal app, then open the corresponding serial port.
Creating projects like this takes a great amount of time. Much appreciated if you consider supporting me so that I can continue projects like this and creating new contents for everyone.
- You can support me on GitHub Sponsors (monthly or one time)
- You can be one of my patrons on Patreon (monthly)
- You can tip me via Ko-fi (one time)
Pull Requests are welcome. Please check the instructions in the Issues and Pull Request templates.
As it says in the Apache License 2.0, you can use my code anywhere as long as you include the license file and copyright notice. Also, state if you make any changes.
Copyright (c) 2022 Mr. Green's Workshop https://www.MrGreensWorkshop.com
Thank you!