This board is most likely not available
This section about the "Snux" System 11 driverboard probably no longer applies, as thatboard was only released as a hobby kit in the early 2010s and does not appear to beavailable anymore. (Or is it? Update this page if you know more.)
Other solutions for controlling System 11 machines exist though.
Related Config File Sections:
- hardware:
- snux:
- system11:
- switches:
- coils:
MPF can be used with Williams System 11 machines. (Also since DataEast's system was a clone of Williams System 11, everything here alsoapplies to those machines.) This How To guide walks you through theprocess of buying the hardware you need and configuring MPF to work withit.
(A) Understand the challenges of System 11 hardware
The original System 11 Williams/Bally hardware (and the Data East clone)was created in a time when computing resources were scarce and hardwarewas expensive. It's sort of a "crossover" between the early solidstate machines of the '80s and the more modern WPC machines. Because ofthis, there are a lot of, umm... "quirks" to the design which werenecessary at the time but which may seem a bit strange in today'sworld. Even though we tend to lump all "System 11" machines into asingle category, there were actually four different generations ofSystem 11 machines, called System 11, System 11A, System 11B, and System11C. (And just to make things even more fun, some changes were made partway through System 11B.) So technically-speaking there are actually fivedifferent types of System 11 machines out there!
Flippers
On modern WPC pinball machines, flipper buttons are just regularswitches that send their inputs to the CPU, and flipper coils are justregular coils that are controlled by the CPU. Typical flippers in MPFare configured via the flippers: section of the config file, and whenflippers are enabled, hardware rules are written to the pinballcontroller to allow them to be fired "instantly" when the flipperbuttons are hit. Back in the days of System 11, the CPUs in thosemachines didn't have enough horsepower to constantly poll the status ofthe flipper buttons and to drive the flippers in software while alsodoing everything else the CPU needed to do to run the game. So instant,System 11 machines had the flipper buttons directly connected to theflipper coils, meaning that hitting the flipper button would activatethe flipper coil directly without any intervention of the CPU. Of coursethe machine still needed a way to enable or disable the flippers, sincethe flippers needed to be disabled when a game was not going on and whenthe player tilted. To do this, System 11 machines used a "flipperenable" relay. This was a mechanical relay connected to a driver outputon the driver board. When that driver was enabled, the relay wasenergized and the flippers worked. When that relay was disabled, therelay de-energized, the electrical connection to the flipper buttons wasbroken, and the flippers stopped working. While this meant that the CPUdidn't have to directly control the flippers, it also meant that manymodern conveniences are not available on that hardware. For example, onmodern machines you can control the strength of the flipper by adjustingthe pulse times of the flipper coils with millisecond-level accuracy.But these older machines gave full power to the flipper until theflipper bat hit the end-of-stroke (EOS) switch, and that switchmechanically cut off power to the high-power winding (while keepingpower enabled on the low-power hold winding). So in those days, changingthe strength of a flipper was done by physically swapping out theflipper coil with a stronger or weaker one.
"Special" Solenoids
Flippers are not the only types of devices that require instant responsein pinball machines. They also need instant response action forslingshots, pop bumpers, and (sometimes) diverters. In many System 11machines, these types of devices were also controlled by the flipperenable relay. So when that relay was enabled, it enabled not just theflippers but also the pop bumpers and slingshots. Of course pop bumpersand slingshots are a bit different than flippers:
- The CPU needs to know when pop bumpers and slingshots are hit so it can assign points, flash lights, play sounds, etc.
- The CPU needs to be able to manually fire pop bumpers and slingshots for things like ball search and the coil test options in the operators menu.
In other words, it seems that pop bumpers and slingshots really need tobe controlled the "new" way since the CPU needs to know when they'rehit and the CPU needs to be able to manually fire them. But of coursefiring a pop bumper or slingshot when their switch is hit needs tohappen instantly, and as we just discussed, that was not possible in theSystem 11 days. So how did they get around it? System 11 machines callthese types of solenoids special solenoids (that is literally whatthey're called in the manual) because they're actually controllablevia two different ways:
- When the flipper enable relay is enabled, a hit to these devices' switches creates a direct electrical connection to their coils which fires them.
- These devices' coils also have a second (additional) control input which lets the CPU fire them from the service test menu or for ball search.
Furthermore you'll also notice that there are switches in the switchmatrix for many of these devices which are used to let the CPU know thatthese devices have been hit to assign points and to do effects. At thispoint you might think, "Great! So these devices have CPU-controlledcoils, and they have switches in the switch matrix, so I can just setthem up like regular devices since I'm using modern hardware!" Not sofast. In many System 11 machines, the switches in the switch matrixwhich tell the CPU that a pop bumper or slingshot has been hit are notthe same switches that fire the coil! For example, the switch attachedto the skirt of the pop bumper that the ball hits is a high-voltageswitch that is physically connected to the pop bumper's coil. The CPUdoes not see that switch at all. When that switch is hit (if the flipperenable relay is active), then it grounds the connection to the coil andthe coil fires. When the coil fires, its shaft hits a second switchunderneath, and that's the switch that is connected to the switchmatrix and the CPU. (And actually there's a third switch under theretoo which is the EOS switch which cuts power to the coil after it'sbeen fired.) So in reality, yeah, you may see a switch in the switchmatrix for a pop bumper, but that switch is not, "Hey the pop bumperskirt switch was hit, so fire the pop bumper now," rather, that switchis, "Hey the pop bumper just fired. Just FYI." The exact details ofhow these special solenoids work depends on the specific machine andwhich version of System 11 it is. For example, some devices (like popbumpers and slingshots) should always be on whenever the flippers areenabled, so the flipper enable relay enables them too. Other devices(like diverters) should only be active sometimes, so they have their ownenable driver (which is like the flipper enable relay, but separate fromit) so they can be controlled individually.
The A/C Relay & Switched Solenoids
But wait! There's more! System 11 machines also have this concept ofthe A/C relay. This is not A/C in the terms of alternating current. Ithas nothing to do with that. It's actually used to control thingscalled A-side and C-side devices. The basic concept is that since thedriver circuitry was expensive, Williams decided they could get doubletheir "bang for their buck" by connecting two devices so a singleoutput. So you might see on a schematic that a single driver output isconnected to both a ball kickout coil and a flasher. Then there was arelay (called the A/C relay, or sometimes the C-select relay) connectedin there too. If the A/C relay was in the A position, then firing thatdriver would fire the coil connected to the A side of that output, andif the A/C relay was in the C position, then firing that driver wouldfire the device connected to the C side of that output. This workedbecause they had a single A/C relay that was connected to an entire bankof 8 drivers. So they could actually control 16 different devices (8drivers with two devices each) from just 9 driver outputs (8 driversplus 1 for the A/C relay). They were also smart about what types ofdevices they connected to each side of the relay. System 11 machines putthe "important" devices on the A side (things that interact with theball on the playfield, like diverters, kickout holes, motors, etc.), andthey put the "less important" things on the C side (flashers and theknocker coil). So this means they will constantly enable and disable theA/C relay to do different effects, but if two things need to happen atexactly the same time, they can service the A-side first (since thoseare the important ones) and then flip the relay to the C-side and pickthose up after a few hundred milliseconds of delay.
Controlled Solenoids
In addition to switched, controlled, and flipper solenoids, System 11machines also included what they called "controlled" solenoids whichwas their name for normal, modern-style solenoids. So in addition to allthe craziness of the other control schemes, some solenoids were regular.No special switches. No special handling. Just regular solenoids.
GI (General Illumination)
In WPC machines, GI strings are controlled via separate GI drivers(which are alternating current and which may or may not be dimmable). InSystem 11, GI strings were regular driver outputs, just like anysolenoid. The catch is that most (maybe all?) GI strings on System 11machines are "backwards" in the sense that the GI is on when thedriver is disabled, and you enable the driver to turn off the GI. Thiswas done because the GI is almost always on all the time, though thereare periods when you might want to turn it off for special effects. Soto save on wear of the relays and make things simpler, in System 11machines, the GI is just always on until the CPU turns it off.
Putting it all together
If you look at the solenoid table in the operators manual of a System 11machine, you'll see that all the drivers fall into these categories.Some are are switched, some are controlled, some are flippers, and someare special. Check out the solenoid table from PinBot. Note that thefirst 16 solenoids are the A/C switched solenoids, and there are twocoils for each number 1-8 with an "A" and "C" suffix denoting whichside they're on. Then the next 8 (numbers 9-16) are controlledsolenoids. These are the regular modern-style drivers which also includethe GI (remember they're active off) and important flashers they don'twant to share with A/C switched drivers. Then you have the next batch17-22 which are the special solenoids that are enabled when the flipperenable relay is enabled, but they can also be manually controlled forball search and testing. And finally you have the left and right flippersolenoids which don't have numbers because they're not connected tothe driver board. Also notice solenoid 14 is the "Solenoid SelectRelay." That's the A/C select which when inactive means that drivers1-8 are connected to the A-side devices, and when active means drivers1-8 are connected to the C-side devices.
(B) The Snux board
Okay, so now that you're caught up with the intricacies of System 11hardware, how do you actually control this via MPF? The usual way youcontrol an existing machine is to remove the original CPU board and toreplace it with either a P-ROC controller. The new pinball controllerplugs into the backbox and uses the existing driver board. The problemwith System 11 is that unlike more modern machines, the System 11 CPUboard and driver board were actually combined into one single hugeboard. So when you take out the CPU board, you also lose the driverboard. This means if you put a P-ROC controller into a System 11machine, you don't have a driver board. :( This is where the Snux boardcomes in. The Snux board (which is our name for it) is a System 11driver board created by Mark Sunnucks. (His online handle is Snux whichis why we call it the Snux board.) Mark developed this board a few yearsago because he wanted to control an F-14 machine with a P-ROC. The Snuxboard can be thought of kind of like the WPC power driver board exceptthat it's made to work with System 11 machines instead of WPC machines.Since the original System 11 combo CPU board / driver board was so huge,when you remove it from your System 11 machine there's plenty of roomto put the Snux board and a P-ROC controller in it's place. The Snuxboard connects to the P-ROC controller via the standard 34-pin ribboncable, and then it has all the connectors (in their proper locations) toconnect the existing wiring connectors from the System 11 machine to it.So in order to control a System 11 machine with MPF, you need to get aSnux board. Mark has a day job and built this board as a hobby, but hesells them to other folks who are interested in modernizing System 11machines. Mark lives in the UK, so the exact price you pay depends onthe exchange rate, shipping to your country but it's around \$180 US(Then you also have to buy a P-ROC to drive it.) You can contact Markvia PM (on Pinside as Snux). In addition to the board there are 3 or 4cables you'll need, Mark can advise.
Displays
All System 11 machines used various combinations of segment displays andthese cannot be directly controlled via the P-ROC. If you do want to usethe original segment displays, Jim at mypinballs.com sells an adaptorboard that will connect between the P-ROC and the displays. Otherwiseyou can use the various other display options that MPF provides.
(C) Understand how MPF works with the Snux board
Once you have your P-ROC controller and the Snux board installed in yourSystem 11 machine, you need to build your machine-wide configurationfile for your machine. MPF has a Snux interface which is actuallyimplemented as a platform overlay. A platform overlay, in MPF, is like asecond layer that sits on top of the regular platform interface andmodifies the way it works. So since the Snux board works with the P-ROCcontroller, the main platform interface MPF uses is the P-ROC platform.Then the Snux platform overlay layers on top of it to handle the specialcases that arise when using the P-ROC with a Snux board. (For example,automatically controlling the A/C relay to make sure it's in the rightposition when an A-side or C-side driver is activated, and preventingthe activation of C-side drivers when the A/C relay is in the A positionand vice-versa.) The Snux driver overlay completely hides the nuances ofthe System 11 hardware from you. You can freely enable, disable, orpulse any A-side or C-side driver you want, and MPF will automaticallycontrol the A/C relay and make sure it's in the proper position. SinceA-side drivers are more important in the machine, MPF will always givethem priority. If simultaneous requests for an A-side and C-side drivercome in at the same time, MPF will service the A-side driver and add theC-side driver to a queue, and then when the A-side driver is done, MPFwill flip the relay to the C-side and then service the C-side driver.Similarly if drivers on the C-side are active and an A-side requestcomes in, MPF will deactivate the C-side drivers, flip the relay, andthen service the A-side drivers. The takeaways from this are (1) A-sidedrivers always have priority, and (2) the handling of the A/C relay isautomatic.
(D) System 11-specific MPF configuration
Once you have your hardware setup, there are a few things you need to doin your config file.
1. Configure your hardware interface
The first thing to do is to configure your hardware options in thehardware section of your machine-wide config. You configure the mainplatform as p_roc, but then for driverboards you configure it assnux, like this:
hardware: platform: virtual driverboards: wpc coils: snux switches: snux
2. Configure snux options
The MPF machine-wide config file contains a few options for the Snuxdriverboard. These options are set in the default mpfconfig.yaml filewhich means you don't have to add them to your own config file, butwe're including them here just for completeness:
coils: c_diag_led_driver: number: c24 default_hold_power: 1.0snux: diag_led_driver: c_diag_led_driver
The Snux board maps driver c_diag_led_driver
which is driver 24 to the"diag" LED on the board. When you power on your machine, the diag LEDis off. Then when MPF connects to the board, this LED turns on solid.Finally when MPF is done loading and it starts the main machine loop,this LED flashes twice per second. If this LED stops flashing, thatmeans MPF crashed. :)
3. Configure system11 options
Next you need to add a system11: section to your machine-wide config andspecific some System 11 options. At this point you might be wondering,"Why aren't these options in the snux section?" The reason is thatthe settings in the snux section apply to the Snux board itself, whereasthe settings in this system11 section apply to any System 11 machinethat MPF might control. Of course at this point, that's only possiblevia the Snux board, but they're technically separate settings since thearchitecture allows for future System 11 boards that may exist at somepoint. Here's the system11 configuration section from Pin*Bot:
system11: ac_relay_delay_ms: 75 ac_relay_driver_number: c14
The ac_relay_delay_ms is the number of milliseconds MPF waits beforeand after flipping the A/C select relay to allow for it to fully switchpositions. For example, if you have a C-side driver active and you needto activate an A-side driver, MPF cannot simply deactivate the A/C relayand the C-side device and activate the A-side device all at the sametime. If it does then power will "leak" from one side to the other asthe relay is transitioning. So what actually happens in this scenario isthat MPF will deactivate the C-side devices, then wait 75ms for them toreally be "off", then deactivate the A/C relay, then wait another 75msfor the relay to flip, then activate the A-side device. We did someexperimentation with different delay times. On Pin*Bot, 50ms wasdefinitely too short as we'd see some weak flashes from C-side flashersconnected to A-side devices we were activating on the transition. 75msseems fine, though really this is all faster than humans can perceive(and C-side devices aren't as time sensitive), so even setting this to100ms is probably fine. 75ms is the default if you don't add thissection to your config. The ac_relay_driver_number is the driver (witha "C" added to it) from the manual for the A/C select relay. Be sureyou check the A/C relay driver number from your manual. It's differentin the two System 11 machines we tested. (C14 in PinBot* and C12 inJokerz!) Also it's labeled differently in different manuals. In theJokerz! manual it's called the "A/C Select Relay," and in thePinBot* manual it's called the "Solenoid Select Relay."
4. Enable flippers
The Snux board uses driver 23 to enable the flippers:
digital_outputs: flipper_enable_relay: number: c23 type: driver enable_events: ball_started disable_events: ball_will_end
You can change the events when the flipper should enable and disable. Bydefault we will enable the flippers on ball start and disable them onball end.
5. Configuring driver numbers
Warning
Please ensure that you have establishedcommon ground between logic and coil power before turning on high voltage on your coils (especially onhomebrew machines). Ignoring this might lock on your coils, overheatthem, burn down your house or kill you. We are serious, floating groundsare dangerous. If you are not an electrical engineer read theguide about voltages and power.
In a nutshell: You need to connect your logic ground (5V/12V) and yourhigh voltage ground (48V or 80V). Apower entry or power filter board is a convenient solution to solve this (and more) issues.
Always turn all PSUs off when connecting power or you might fry allboards at once. This is generally a good idea but even more importantwhen connecting more than one power supply to a board.
IF YOU DID NOT UNDERSTAND WHAT THIS WARNING MEANS STOP NOW AND TRY TOUNDERSTAND IT. OTHERWISE YOUR HARDWARE WILL LIKELY BURST INTO FLAMES ANDYOU NEED TO WAIT A FEW DAYS FOR A REPLACEMENT OR EVEN WORSE IT MIGHTKILL YOU. IGNORING THIS IS THE MOST COMMON CAUSE FOR BROKEN DRIVERBOARDS.
When you configure coils, flashers, and gis in your MPF hardware config,you can enter the numbers straight out of the operators manual. The onlything to note here is that you must add a "C" to the beginning of thedriver number (even for flashers and GI), since that's what triggersMPF to do a WPC-style lookup to convert the driver number to theinternal hardware number the platform uses. (It's an WPC-style lookupsince the Snux driver board emulates a WPC driver board.) Also forswitched solenoids which use the A/C relay, you also need to add an"A" or a "C" to the end of the driver number. Here's a snippet(incomplete) from the PinBot* machine-wide config file:
coils: outhole: number: c01a knocker: number: c01c trough: number: c02a visor_motor: number: c13 allow_enable: true upper_pf_and_topper_1: number: c02c left_insert_bottom: number: c03c right_insert_bottom: number: c04c lower_pf_and_topper_2: number: c05c energy: number: c06c left_playfield: number: c07c sun: number: c08c robot_face_insert_bottom: number: c09 topper_3: number: c15 topper_4: number: c16
Again, don't forgot the "a" or the "c" at the end of the switchedsolenoids, since that's how MPF knows it needs to use the A/C relaylogic for those devices!
6. Configure lamps
Configuring the numbers for matrix lamps is pretty straightforward andsomething you can also use the manual for. The format for lamp number isthe letter "L" followed by the column, then the row. In other words,light number L25 is the light in column 2, row 5. This is a bitconfusing because these are not the numbers that the lamps use in themanual! The lights in the lamp matrix table are simply numbered from 1to 64. So you need to use the chart in the manual to get the column androw positions, not to get the actual light numbers! (When Williamsswitched to WPC, they switched to lamp numbers based on the column androw. So in WPC machines, the lamps in column 1 are numbers 11-18, thelamps in column 2 are 21-28, etc. System 11 numbers would be 1-8 forcolumn 1, 9-16 for column 2, etc. Basically since System 11 machineshave an 8x8 lamp matrix, there should be no numbers 9 or 0 anywhere inyour lamp numbers. Here's a snippet of the configuration from Pin*Bot:
lights: game_over_backbox: number: L11 match_backbox: number: L12 bip_backbox: number: L13 mouth1_backbox: number: L14 mouth2_backbox: number: L15 mouth3_backbox: number: L16 mouth4_backbox: number: L17 mouth5_backbox: number: L18 bonus_2x: number: L21 bonus_3x: number: L22
Again, don't forget that they should all start with "L", and they'rebased on the positions in the matrix, not on the numbers from themanual.
7. Configure switches
Switch numbering in System 11 machines is the same as lamp numbering,except the numbers start with "S". Again the numeric portion of thenumber is based on the column/row, not the switch number in the manual.So even though the manual says that the switch in column 5, row 6 isnumber 38, you actually enter "L56". Here's another snippet fromPinBot*:
switches: left_outlane: number: S24 label: Left Outlane tags: playfield_active left_inlane: number: S25 label: Left Inlane tags: playfield_active right_inlane: number: S26 label: Right Inlane tags: playfield_active right_outlane: number: S27 label: Right Outlane tags: playfield_active
You might have to do some detective work to figure out where theswitches are and how they work. For example, remember that switches fromslingshots or pop bumpers are most likely activated by the physicalaction of the device's coil, not by the switch above the playfield. Soon Pin*Bot hitting the pop bumper skirt does not activate the popbumper switch, but manually pushing the pop bumper ring down with yourfingers will activate that switch. Also you might see switches withnames along the lines of "Right Lane Change." If the lane change inthat machine is activated by a slingshot, then most likely the RightLane Change switch is under the playfield and activated by the physicalslingshot arm hitting it. Same for flipper-controlled lane changes.You'll have to hunt to see whether there's a second switch in theflipper EOS stack under the playfield or perhaps a second switch in thestack behind the flipper button.
8. Create your System 11-style trough
Troughs in System 11 machines are not like troughs in modern machines.Rather than a single ball device which acts as the drain as well as thefeeder to the plunger lane, System 11 machines have two separate deviceswith two solenoids. One device is typically called the "outhole" (or"drain") which receives the ball from the playfield, and it kicks theball over to the trough where the ball is stored. Then the trough has asecond coil which kicks the ball into the plunger lane when it needs it.We have a separate How To guide which details how to setup a System 111980s-style trough, link below (since many games do this, even ones thataren't System 11), so you can read that for more details. The resultthough will look something like this:
#! switches:#! outhole:#! number: 1#! trough1:#! number: 2#! trough2:#! number: 3#! plunger_lane:#! number: 4#! coils:#! outhole:#! number: 1#! trough:#! number: 2ball_devices: outhole: ball_switches: outhole eject_coil: outhole confirm_eject_type: target eject_targets: trough tags: drain trough: ball_switches: trough1, trough2 eject_coil: trough eject_targets: plunger_lane tags: home, trough plunger_lane: ball_switches: plunger_lane mechanical_eject: true eject_timeouts: 3s
The key is that you're setting up a "chain" of devices (fromouthole to trough to plunger lane), and you're breaking up thespecial tags so that each device is tagged with it's exact role. (Andhey! Now you know why these are all separate tags in MPF instead of asingle tag called "trough".)
SeeSetting up a System 11 Style Trough for details.
(E) Final Steps and additional information
MPF's System 11 interface is new, and we haven't yet built a completegame using it. There are most likely things that we haven't thought ofyet, so if you're using MPF with a System 11 machine, please post tothe forum if you find anything that's weird or that doesn't work asexpected.
This is an example code block with the main Sys11 elements in.
hardware: platform: virtual driverboards: wpc coils: snux switches: snuxsystem11: ac_relay_delay_ms: 75 ac_relay_driver: c_ac_relaysnux: diag_led_driver: c_diag_led_driverdigital_outputs: flipper_enable_relay: number: c23 type: driver enable_events: ball_started disable_events: ball_will_endcoils: c_diag_led_driver: number: c24 default_hold_power: 1.0 c_ac_relay: number: c25 default_hold_power: 1.0 c_side_a1: number: c11a c_side_a2: number: c12a default_hold_power: 0.5 c_side_c1: number: c11c c_side_c2: number: c12c default_hold_power: 0.5
What if it did not work?
Have a look at ourhardware troubleshooting guide.
Something missing or wrong? You can fix it!
This website is edited by people like you!Is something wrong or missing? Is something out of date, or can you explain it better?
Please help us! You can fix it yourself and be an official "open source" contributor!
It's easy! See our Beginner's guide to editing the docs.
Page navigation via the keyboard: < >
You can navigate this site via the keyboard. There are two modes:
General navigation, when search is not focused:
- F , S , / : open search dialog
- P , , : go to previous page
- N , . : go to next page
While using the search function:
- Down , Up : select next / previous result
- Esc , Tab : close search
- Enter : go to highlighted page in the results