Skip to content

MrGreensWorkshop/RasPiPicoSDK-PicoBiosPostCodeReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BIOS POST Code Reader with the Raspberry Pi Pico

GitHub issues GitHub forks GitHub stars GitHub license Support me on GitHub Sponsors Support me on Patreon Tip me via Ko-fi


BIOS POST Code Reader with the Raspberry Pi Pico

Everything is covered in the video above.

Introduction

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!

Background

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.

Features / Fixes

  • 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

Compilation

  1. Clone the repo as shown below, or download latest release.

    git clone https://github.com/MrGreensWorkshop/RasPiPicoSDK-PicoBiosPostCodeReader.git
  2. Please make sure you are using the Pico SDK v1.5.0 or later because some of the implementations are necessary.

  3. 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.
  4. Compile using build.sh

    chmod +x build.sh
    ./build.sh
    • Or run
    cmake -B build -S . && make -j4 -C build

Running

  1. Make sure you watch the video at the top of the page.

  2. 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."

BIOS POST Code Reader circuit

  1. 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.
  2. Put the Raspberry Pi Pico into bootloader mode by pushing the bootsel button while plugging it into your computer.

  3. Copy the build/PicoBiosPostCodeReader.uf2 file to the Raspberry Pi Pico either by dragging and dropping or using the cp command as shown below.

    Linux macOS
    cp build/PicoBiosPostCodeReader.uf2 /media/<user>/RPI-RP2 cp build/PicoBiosPostCodeReader.uf2 /Volumes/RPI-RP2
  4. Open your favorite serial terminal app, then open the corresponding serial port.

You Can Support My Work

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)

Contribute

Pull Requests are welcome. Please check the instructions in the Issues and Pull Request templates.

License

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!