Skip to content
@PPUC

Pinball Power-Up Controller

Pinball Power-Up Controller (PPUC) and ZeDMD

The Pinball Power-Up Controller software and hardware family is designed to enhance the capabilities of classic pinball machines, mainly of the 80s and 90s and to drive the hardware of home brew pinball machines.

Meanwhile the PPUC family has grown and the hard and software covers various use-cases, like modding a pinball machine, repairing a pinball machine or to drive homebrew pinball machines.

The first PPU Controller was designed to enhance existing machines. It is able to monitor all playfield switches, lights, and solenoids and to trigger and distribute corresponding events to attached sub-systems. It is possible to monitor DMD and sound commands, too.

Sub-system like the built-in EffectController are able to drive additional LEDs, motors, and coils. Other sub-systems could be video players or audio systems. The additional effects are bundled per pinball machine in so-called Pinball Power-Ups (PPUs).

For homebrew machines there will be additional software to act as "CPU", running the game logic aka rules and communicating with the controllers. The target is to use the VPX Standalone script engine and the VPX Standalone ecosytem.

A special variation of that "CPU" is suitable as replacement for a broken CPU of an existing machine. That development started as part of the PinMAME project. Nowadays it is a standalone programm that leverages libpinmame: https://github.com/PPUC/ppuc

As a sub-project ZeDMD has been created to emulate a real DMD for virtual pinball machines and to be used with as replacement in real machines.

To get involved in the development or to discuss your PPUC project, join us on Discord.

Motivation

We want to enable people to be creative and to modernize old pinball machines using today's technology. Or to get an old broken machine back to work. Our goal is to establish an open and affordable platform for that.

Ideally people will publish their game-specific PPUs so others could leverage and potentially improve them. We want to see a growing library of PPUs and a vital homebrew pinball community.

Concept

Enhancing / Modding an existing machine

The Pinball Power-Up Controllers consist of multiple micro controllers to perform several tasks in parallel. The entire system is modular, so you can choose what you really need. The basic setup consists of a controller to capture a pinball's events and another independent one to run effects.

We will provide several integrated boards and vendor specific adaptor boards (currently in development: Williams WPC, Data East, Stern SAM and Whitestar).

The Effect Controller should be able to drive hundreds (or thousands?) of LEDs, PWM devices, ... in parallel in a non-blocking way.

Watch the video Watch the video Watch the video Watch the video

Homebrew machines or Replacing a CPU (and drivers)

Still WIP, but the hardware and io-bords firmware gets better and better ;-)

A PPUC board can control solonoids, flashers, motors, etc. They could read dedicated switches or a switch matrix. Lamps could als be controlled as dedidicated bulbs or LEDs, as light matrix or as addressable RGB(W) LEDs including after glow effects.

Multipe boards can be cascaded to to have enough input and output ports. The communication happens via a BUS and the protocol enhances the DOF protocol which is known from the virtual pinball world.

PCB Pic PCB Pic

In case of replacing a broken CPU and driver boards, the platform independent PPUC command line tool can run on any old or small computer like a Raspberry Pi and leverages libpinmame to emulate the ROM.

Watch the video

It you replace the entire electronics and wiring of an existing machine, a web-based configuration tool could be used to configure your setup.

In case of a homebrew machine, the intention is that you design and devolep your pinball machine using VPX. Our plan is to create a special version of VPX Standalone (VPX for Linux, macOS, iOS, Android) to operate the machine. You would have all capabilities like PUP Packs, FlexDMD, etc.

Watch the video

Overview Pic

Licence

The code is licenced under GPLv3. Be aware of the fact that your own Pinball Power-Ups (PPUs) need to be licenced under a compatible licence. That doesn't prevent any commercial use, but you need to respect the terms and conditions of GPLv3!

We would appreciate contributions to PPUC itself or as game-specific PPUs.

ZeDMD

ZeDMD is a "real" DMD for pinball emulations and other use cases, developed as part of the PPUC project. For more details, visit the ZeDMD page.

Watch the video

Other components of the PPUC project

To reach our goals, we contribute to other projects like VPX Standalone, batocera, libdmdutil, libserum etc. Some libraries and sub-projects that are also leveraged by others are hosted as PPUC projects:

Pinned Loading

  1. io-boards io-boards Public

    Forked from mkalkbrenner/PPUC

    Pinball Power-Up Controller I/O Boards

    C++ 1

  2. config-tool config-tool Public

    Web-based configuration and management tool for Pinball Power-Up Controller

    PHP

Repositories

Showing 10 of 34 repositories
  • ZeDMD Public

    A real DMD for virtual pinball machines and PPUC driven real pinball machines

    PPUC/ZeDMD’s past year of commit activity
    C 26 GPL-2.0 4 10 1 Updated Dec 27, 2024
  • dmd-extensions Public Forked from freezy/dmd-extensions

    A toolbox for virtual pinball dot matrix displays.

    PPUC/dmd-extensions’s past year of commit activity
    C# 0 GPL-2.0 55 0 0 Updated Dec 27, 2024
  • libzedmd Public

    ZeDMD communication library

    PPUC/libzedmd’s past year of commit activity
    C++ 3 GPL-3.0 3 6 0 Updated Dec 27, 2024
  • libdmdutil Public Forked from vpinball/libdmdutil

    A cross platform library for performing DMD tasks.

    PPUC/libdmdutil’s past year of commit activity
    C++ 0 8 0 0 Updated Dec 25, 2024
  • vpinball Public Forked from vpinball/vpinball

    Visual Pinball

    PPUC/vpinball’s past year of commit activity
    C++ 0 96 0 0 Updated Dec 5, 2024
  • config-tool Public

    Web-based configuration and management tool for Pinball Power-Up Controller

    PPUC/config-tool’s past year of commit activity
    PHP 0 GPL-3.0 0 1 0 Updated Dec 3, 2024
  • PPUC/Hardware_IO_16_8_1’s past year of commit activity
    3 0 0 0 Updated Dec 1, 2024
  • PPUC/Hardware_IO_16x8_matrix’s past year of commit activity
    0 0 0 0 Updated Dec 1, 2024
  • PPUC/Hardware_Out_8x10’s past year of commit activity
    0 0 0 0 Updated Dec 1, 2024
  • mklittlefs Public Forked from earlephilhower/mklittlefs

    Utility for creating LittleFS images for upload on the ESP8266 and RP2040 Pico

    PPUC/mklittlefs’s past year of commit activity
    C++ 0 MIT 57 0 0 Updated Nov 21, 2024