Skip to content

PipBoy-Pi5 Project. A how to guide on building your own functional PipBoy from Fallout!

Notifications You must be signed in to change notification settings

SurvivorGrim/PipBoy-Pi5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Credits

The original source code from ZapWizard. Their project is insane, and you should check them out!

The original Adafruit project by the Ruiz Brothers that I adapted for 2024.

The 3d Printer who got me the extra knob 3DPrintsByKai, check out all their cool 3D prints!

Parts List

Raspberry Pi Setup

Initial Setup

Download the PipBoy Folder from the GitHub Repository Using PowerShell

  1. Open PowerShell on your machine.

  2. Navigate to the directory where you want to download the folder. Replace the path in the command with your desired location:

cd C:\Path\To\Your\Desired\Directory
  1. Download the PipBoy folder as a .zip file from GitHub:
Invoke-WebRequest -Uri https://github.com/SurvivorGrim/PipBoy-Pi5/archive/refs/heads/main.zip -OutFile PipBoy-Pi5.zip
  1. Extract the downloaded ZIP file:
Expand-Archive -Path .\PipBoy-Pi5.zip -DestinationPath .\PipBoy-Pi5
  1. Navigate into the PipBoy folder within the extracted content:
cd .\PipBoy-Pi5-main\PipBoy\

Copy PipBoy Files to Pi

cd desktop
sftp pi@<pi_ip_address>

mkdir PipBoy
cd PipBoy
put -r PipBoy
exit

Setup Pi

SSH into the Pi:

ssh pi@<pi_ip_address>

sudo raspi-config

Update and set the boot to desktop GUI:

  • Update
  • System Options > Boot / Auto Login > B4 Desktop AutoLogin Desktop GUI
  • Finish

Edit config.txt:

sudo nano /boot/firmware/config.txt

Add the following lines:

dtoverlay=piscreen,speed=16000000,rotate=270
framebuffer_width=480
framebuffer_height=320
gpu_mem=2048

Reboot the Pi:

sudo reboot

Install dependencies:

sudo apt install python3-cairosvg -y
sudo apt install python3-mutagen -y
sudo apt install python3-xmltodict -y
sudo apt install python3-pynput -y
sudo apt install python3-gpiozero -y

Make a Shortcut

Create autostart directory and add a desktop entry:

mkdir -p /home/pi/.config/autostart
nano /home/pi/.config/autostart/pipboy.desktop

Add the following content:

[Desktop Entry]
Name=PipBoy
Comment=Run PipBoy Python Script
Exec=sh -c 'cd /home/pi/PipBoy && python3 main.py'
Icon=python
Terminal=false
Type=Application

Make the desktop entry executable:

chmod +x /home/pi/.config/autostart/pipboy.desktop

Turn Off Notifications

Create the necessary directory and update autostart:

mkdir -p /home/pi/.config/lxsession/LXDE-pi
nano /home/pi/.config/lxsession/LXDE-pi/autostart

Add the following line:

@lxpanel --profile LXDE-pi --plugin=networkmanager --hide

Turn Off Auto Updates

Edit the 99-disable-updates configuration:

sudo nano /etc/apt/apt.conf.d/99-disable-updates

Add the following lines:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

Set Volume

Set the volume to 90%:

amixer -D pulse sset Master 90%

PipBoy Assembly

  1. Speaker Disassembly
    • Carefully open the speaker case. This may require breaking the plastic, so proceed with caution to avoid damaging the internal circuit and speaker components.

  1. Raspberry Pi Preparation
    • Attach heat sinks to the Raspberry Pi to ensure proper thermal management.

  1. Modifying the PipBoy Housing
    • Remove the pegs and mounts from the inside of the PipBoy, ensuring to leave the four mounts designated for the Raspberry Pi intact.
    • Using a carving tool, create a square cutout as illustrated in the accompanying diagram to accommodate the encoder knob. Ensure that the drilled hole fits the knob securely.

  1. Wiring Connections
    • Separate the wires from the main strand.
    • Trim one end of the wires and strip them for soldering.
    • Solder the wires to the encoder switch as depicted in the reference image, then apply heat shrink tubing to prevent short circuits.
    • Repeat this process for the 10-point knob.

  1. Audio USB Cable
    • Cut the end off the USB cable connected to the audio circuit, noting the wire colors and soldering points.
    • For the angled USB cable, cut one end ensuring the correct angle faces right. Remove the shielding, strip the wires, and solder them according to the original color layout.

  1. LED USB Cable
    • Cut and strip another USB cable, removing the green and white wires while stripping the red and black.
    • Connect this USB cable to the LED, then apply heat shrink tubing as shown in the accompanying image.

  1. 10 Pin Knob Assembly
    • Modify the bracket to accommodate the knob cables. A soldering iron can be used to carefully enlarge the holes. Place the knob in the enclosure and attach the 3D printed knob.

  1. Mounting the Pi and Encoder Knob
    • Mount the encoder knob. Trim the USB-C connector to fit through the designated hole. Plug the USB-C connector into the Raspberry Pi and secure it in place.

  1. GPIO Pins
    • Connect the female ends of both knobs to the GPIO pins as follows:

10 Pin Knob Connections:

- Pin 29 (Purple) - GPIO 5
- Pin 31 (Gray) - GPIO 6
- Pin 33 (Brown) - GPIO 13
- Pin 35 (Red) - GPIO 19
- Pin 37 (White) - GPIO 26
- Pin 39 (Black) - GND

Encoder Knob Connections:

- Pin 30 (Blue) - GND
- Pin 32 (Red) - GPIO 12
- Pin 34 (Orange) - GND
- Pin 36 (Yellow) - GPIO 16
- Pin 38 (Green) - GPIO 20
  1. Securing Audio Circuitry
    • Use super glue to attach the audio circuit and speakers, potentially removing foam from the back of the speakers for better fit.
    • Mount the LCD screen, consider using spacers or cardboard glued to the top of the I/O to ensure it sits flush, accounting for spacing of the female GPIO cable connections.

  1. Face Plate Modifications
    • Drill additional holes in the faceplate for screws and the second encoder switch.
    • Bend the pins on the second encoder switch and glue it to the underside of the faceplate, followed by attaching the 3D-printed knob.
    • Affix the LED light cover and screen cover to the faceplate.

  1. Face Plate Assembly
    • Connect the USB cables and run the LED into the faceplate, then secure the faceplate using machine screws. Glue the 10 pin knob enclosure to the side of the Pipboy housing.

  1. Wrist Magnets Mounting
    • Attach magnets to the designated mounting points on the wrist mounts, ensuring that opposite ends attract.

  1. Padding Assembly
    • Cut two foam pieces to fit inside the wrist mount. Fold and hot glue vinyl to the foam for added comfort, then secure the padding inside the wrist mounts.

  1. Hinge and Latch Assembly
    • Drill and screw hinges onto the back and attach the latch on the front, adjusting it as necessary and securing with super glue.

  1. Power Tube Assembly
    • Drill a 1in opening in the power tube cap to allow cables to run through. Glue the power tube mounts as indicated in the reference image and attach the power tube cap to the external battery pack.
    • Use a small piece of gray Velcro to the back of the PipBoy to enhance stability.

  1. Power on!
    • Finally, connect the USB to the power tube's connector. Note that this may be challenging; future builds may include an improved method. The external battery pack utilized here is recommended for managing the overall amp draw without glitches.