Bringing a 2014 VPCabs machine back to life using VPX Standalone on Batocera 42
A friend of mine from the Scranton Pinball League asked me to repair a VPCabs "Pump Up the Volume" machine. He said it had stopped working shortly after he bought it in 2014. He changed the video card with no luck, and Windows constantly gave him trouble. So one night after league he brought the machine over in his box truck and I began working on it.
I plugged the machine in, hit the power button, and the monitors powered on, however no other signs of life. I was able to get a piezo speaker from my brother Tom and connected it to the motherboard to check for BIOS error codes. No beeps was a good sign the motherbord was fine. I then removed the RAM and heard some beeps. After reinstalling the RAM, I removed the SSD and the machine finally showed some text on the backbox monitor. I then replaced the CMOS battery, updated the BIOS, replaced the SSD, and got all three displays working with a mix of DVI to VGA and DisplayPort to HDMI adapters.
At first, the system seemed stable, but after five minutes it would lock up tight. My friend had provided an extra video card. After looking at both cards closely, I realized that the one installed in the machine was missing a heatsink bracket. It was probably overheating which would explain the lockups. Swapping in the extra card fixed the problem, and the system has been running great ever since.
The cabinet originally used two encoder systems: an Ultimarc U-HID Mini for buttons and a separate Zeb's Pinball Encoder handling nudging and the plunger. After doing some research, Zeb had recently retired and uploaded all his source code to GitHub. To simplify things, I decided to eliminate the U-HID and consolidate everything into the pinball encoder board.
I hacked the firmware so that all inputs registered as joystick buttons instead of keystrokes. This approach works much better with Batocera, EmulationStation, and Visual Pinball.
I accidentally broke off the USB connector on the board. Since this was too small and difficult to resolder, I ordered a replacement Pro Micro ATmega32U4 controller from Amazon. I desoldered the entire Pinball Encoder, installed headers, and reflashed with my hacked firmware.
Since the added height from the headers no longer fit the enclosure, I found a STEP model for it (Hammond Manufacturing 1551HFLBK), and modified it in Fusion 360 to increase the height, and cut the openings in Tinkercad. The firmware and STL model for the enclosure are available on GitHub.
The plunger in this VPCabs used a magnetic strip and an AS5304A position sensor. Unfortunately this was completely broken, so I ended up replacing it with a modern potentiometer-based plunger kit. I was able to hack the firmware to make the plunger return values for the joystick axis 3 (Z) which works well with Visual Pinball.
Next, I was able to remove the U-HID board, clean up the wiring, and consolidate all cabinet inputs through the updated Zeb's Pinball Encoder.
The cabinet has working buttons, accelerometer-based nudging, plunger, and is stable using Batocera and Visual Pinball Standalone.
The final step is to fix the cabinet's feedback and lighting system. The PacLED64 isn't wired directly to the solenoids, motors, and lights - it is connected to another Zeb-designed board made specifically for this machine - VPCabs Digital Feedback Control Board. To finish the repair, I'll need to locate or create a proper DirectOutput Framework (DOF) configuration that can control the PacLED64.
Photos documenting the repair process.