1 / 5
Virtual Pinball Controller for PC with working plunger- "The Redball" — image 1
1 / 5

Virtual Pinball Controller for PC with working plunger- "The Redball"

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

A custom PC controller for virtual pinball using raspberry pi. Tested with Zaccaria, Pinball FX, and Visual Pinball

Rating
5 / 5
Likes
8
Downloads
34
Makes
2
Views
376
Reviews
1

Updated at source:

Model information

Category
Video Games
License
Creative Commons — Attribution — Share Alike

The Redball is a controller for virtual pinball games, using the GP2040-ce firmware and running on a pi-based breakout board. It uses standard arcade buttons and a pinball plunger coupled with a slide potentiometer to provide analog plunging!

UPDATE 24 August 2026- I have added an all 28mm button version to the files- see printing notes. I also created an all button version for those who want to build without a plunger: 

The controller uses the amazing GP2040-CE firmware: https://gp2040-ce.info/

Components

Printing

  • Print the case with supports. The standard version uses 30mm buttons for the flippers, nudging, and 28mm buttons for the utility buttons. Update: there's also an all 28mm version. Be aware the 28mm version has a thinner case (3mm) around the front buttons to allow for snap-in buttons to be used,

  • The lid face down with supports on the button hole only. Add your own custom image in slicer! Pick the version that matches your button size- the standard one has a 30mm button, but there's also a 28mm version.

  • Print the board caddy that matches your board

  • Print the plunger receiver at a 45 degree angle, with 25% infill, from PETG (for strength)

Assembly

  1. Ensure your Pi/board has the latest version of the GP2040-ce firmware loaded 

  2. Remove all supports

  3. Add threaded inserts to the case- the M4 inserts in the base, the M3 around the rim and for the board caddy in the centre

  1. Insert 30mm buttons to sides, and screw 28mm buttons to front

  1. Attach USBC passthrough to back using M3 screws

  2. Create a daisy chain from one terminal of each button for ground- making sure to leave an additional connector free on the left for the top button and one end free to connect to board

  3. Attach board to caddy using bolts (if using pico, you can do this after soldering)

  4. Using a wire with a connector, connect each button to its respective pin on the breakout using spade connectors- they should just push on to the switches on the buttons. These can be remapped later, but if using the breakout board:

For Pico, solder the wires to the GPIO ports as labelled

  1. Attach the ground wire to a ground on the board. You may wish to glue down or secure wires leading to the right of the box to give the plunger clearance

  2. insert the plunger into the case, then insert the washers. you may wish to use a long M3 bolt to align the washers and provide additional security. Bolt the plunger on using the included nut.

  3. Attach the plunger receiver to the end of the plunger, securing with a short M2 bolt

    Make sure the bolt ends up on the left side of the plunger

  4. Bolt the slide potentiometer to the lid of the case with M2 bolts. I put a small strip of foam or tape behind mine for added cushioning

  5. using dupont connectors, using the bottom set of pins in this picture: VCC to a VCC on the board (3V3 pin on Pico), GND to ground or G, and DTA to pin 28

  6. Run your USB cable from your board to the USB-C passthrough

  7. Attach the wires to the up button on the lid, set the slide potentiometer to the back of the lid, line up so the slider on the potentiometer aligns with the hole in the plunger receiver, then screw the lid on to the box

Configuration

  1. Hold the start button (centre button on front) as you connect the controller to the computer

  2. go to http://192.168.7.1/ on your computer. you should be in the GP2040 web configurator.

  3. Go to "Configuration -> GPIO pin mapping" and map the pins to your buttons. I use the below, but you can also use the "map buttons with pad" and press to the prompts. Remember that you want to switch D-pad left and right- pressing the nudge button on the right side of the controller should nudge a pinball playfield left and vice versa. Make sure you SAVE once you've done it.

  4. go to Addons and navigate to "Analog." Enable it.

  5. Map "Analog stick 2" using settings below then hit save at the bottom of the page:

A small inner deadzone I've found reduces any noise/judder when the plunger is in it's default position. The Auto calibration will ensure it resets to its base position when connected.

  1. Set the controller to "Xinput" and then Reboot, selecting "controller." Your computer should detect it as a controller. Test your inputs at https://hardwaretester.com/gamepad

  2. It will work on a PS5 (in Xinput mode) with a Brook Wingman FGC 2- make sure you configure a hotkey to be the "guide" button and set the controller up as an "assistive controller"

Then, happy pinball!

Tags