Wylie 1-Flip
- 0 Collaborators
Not many things besides pinball machines incorporate both artistic, fabrication, and technical skills. This project incorporates various fully-custom parts cut with CNC machines, assembled including with custom graphics, and controlled with an Intel NUC type device. ...learn more
Project status: Published/In Market
Internet of Things, Game Development
Intel Technologies
Other
Overview / Usage
Wylie 1-Flip is a miniature yet fully functional pinball machine demonstrated at the 2017 Texas Pinball Fest.
To start a game, hit the green button on the front of the machine. Once the ball has been put into play in the shooter lane, pull the plunger back and propel the ball onto the playfield. Up to four players can be added. Use the red button at left to toggle the flipper in order to continue scoring points up top and save the ball from draining down the middle.
Hit the "bank shot" at left in order to change which of the 3 lanes up top are lit. To light a lane, the ball must roll through it. Points are awarded for lighting all three lanes.
Hit the target at the top right in order to preserve your lit lanes into the next ball. Otherwise, you will start with no lanes lit on your next turn. In multiplayer games, your lit unsaved lanes will be transferred to the next player unless they managed to save more lanes in their previous turn than you lit.
There is only intended to ever be one of these in existence, unless anyone else out there wishes to build one for themselves.
Methodology / Approach
Wylie 1-Flip is a pinball machine that attempts to use "more standard" parts and technologies than those typically used in pinball machines. Traditionally, a "standard" pinball part is one where manufacturers might leverage each other's designs for parts but these parts don't have much use other than in pinball machines.
To remain compact, the game involves just a single flipper, unlike most pinball machines that sport at least 2 flippers. Also, the flipper is controlled by a strong (fast and high-torque) servo motor rather than a custom two-coil solenoid with a complicated mechanical linkage and governor system (which hasn't changed much since the 1950s), meaning there are less parts to fail. Traditionally, games that try to adjust the strength of the flippers (there are very few that attempt this) do so by adjusting a fast PWM on the solenoid. With a servo, you have direct control over the angle of the flipper, meaning you can set its "activated" angle higher or lower simply with code. The amount of voltage to the servo can also influence its angular velocity.
Rather than using custom leaf switches or metallic assemblies for toggling objectives, Wylie 1-Flip uses very light-activation Cherry MX keyboard key switches. These are very cheap in bulk, costing a tiny fraction of pinball switches, and are rated for millions of key presses, unlike traditional switches that fatigue or bend out of alignment after a while and cause the owner a headache.
The playfield elements were custom modeled and fabricated with a 3D printer, and then affixed using standard fasteners. Even the flipper itself was 3D printed, featuring a specially-designed hole that holds fast to M2.5 nuts which attach to a long M2.5 screw that connects the flipper to the servo. Normally, the flipper is connected to a linkage by using finicky set screws, which means that after cleaning or working on your flippers, it has been traditionally almost impossible to get your game to play exactly the same as it did before.
Traditionally, games use a two-dimensional switch matrix in order to read states of electronic components such as lights and switches, due to the tiny amounts of I/O on the processors used (mostly the 6502 for many years). Activated switches pull a line along one dimension (usually 8 devices are attached) to ground, otherwise the line is pulled high with a pull-up resistor. However, exactly which set of 8 devices are selected to be "read from" is governed by a CPU register. This requires a lot of extra logic in the code to manage. With modern microcontrollers, there is more I/O in general, and even more I/O can be had by using I2C port expanders like the MCP23017.
However, there are still some traditional pinball mechanisms in place, such as a slingshot mech taken from a 1982 Bally Ms. Pac-Man game, a new-old-stock mid-90s Williams pop bumper, a standard target switch, and circular rubber rings to protect parts from a fast-moving ball and/or guide the ball in certain ways. The pop bumper's position is very uncommon, striving to emulate the exotic fun of rare "middle-pop" games such as Spanish Eyes and Fan-Tas-Tic while attempting to serve as a right flipper of sorts.
The game's code implements fairly straightforward logic that avoids use of interrupts (simply trying to test all the switch conditions quickly enough) in order to toggle game actions such as Start, Ball drained, Hit a target, etc. Switch debouncing is achieved in software. The scoreboard is achieved by sending basic serial UART signals to a custom modular DMD matrix I designed and Kickstarted some years back.
One alternative to all this implementation is to use P-ROC boards with Python code written under the Mission Pinball framework. However, P-ROC boards are very expensive, as they are for a niche application with few buyers. It is much cheaper for me to use a bunch of my own power MOSFETs on a breadboard connected to my Intel compute device than it is to buy their MPU and driver boards. (Either way, you still have to run miles of wiring inside your game to get all the components hooked up. :-P) Secondly, as the Intel machine has diverse I/O capabilities, I can connect it to WiFi to throw live bookkeeping statistics or maintenance issues onto a Firebase database, or have it broadcast a "physical web page" allowing people to interact with the game in novel ways that are still perhaps patent pending so I don't want to go into too much detail.
Technologies Used
Intel UP Squared Grove IoT Development Kit (formerly used an Edison)
MRAA
CNC table router
3D printer
Vinyl cutter
Visual Pinball 10 for playfield simulation & testing
BriteBlox DisplayBoards for the DMD screen (scoreboard)