<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pinballindex.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DickHamill</id>
	<title>Custom Pinball Index - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://pinballindex.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DickHamill"/>
	<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php/Special:Contributions/DickHamill"/>
	<updated>2026-05-13T13:13:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://pinballindex.com/index.php?title=Initializing_the_Library&amp;diff=116</id>
		<title>Initializing the Library</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Initializing_the_Library&amp;diff=116"/>
		<updated>2023-07-01T17:23:08Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the .ino file, the setup() function will initialize the RPU library and prepare the MPU for booting.  &lt;br /&gt;
&lt;br /&gt;
There are several options for the RPU_InitializeMPU function that allow the developer to choose how the machine will boot.  &amp;lt;blockquote&amp;gt;unsigned long RPU_InitializeMPU(unsigned long initOptions=RPU_CMD_PERFORM_MPU_TEST, byte creditResetSwitch=0xFF);   &amp;lt;/blockquote&amp;gt;By default, the RPU_InitializeMPU function will assume that it should boot to the new code running on the Arduino. The parameters will describe the situations when the developer wants the board to boot to the original (M6800) code.  &amp;lt;blockquote&amp;gt;&lt;br /&gt;
 RPU_CMD_BOOT_ORIGINAL - This will boot to original unconditionally (disables new code completely for this install)&lt;br /&gt;
&lt;br /&gt;
 RPU_CMD_BOOT_ORIGINAL_IF_CREDIT_RESET - Only supported on Rev 4 or greater, boots original if the C/R button is held at power on&lt;br /&gt;
&lt;br /&gt;
 RPU_CMD_BOOT_ORIGINAL_IF_NOT_CREDIT_RESET - Only supported on Rev 4 or greater, boots original if the C/R button is NOT held at power on&lt;br /&gt;
&lt;br /&gt;
 RPU_CMD_BOOT_ORIGINAL_IF_SWITCH_CLOSED - boots to original if the switch is closed at power on&lt;br /&gt;
&lt;br /&gt;
 RPU_CMD_BOOT_ORIGINAL_IF_NOT_SWITCH_CLOSED - boots to original if the switch is NOT closed at power on&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;There are also parameters to control other boot behavior:  &amp;lt;blockquote&amp;gt;RPU_CMD_AUTODETECT_ARCHITECTURE - For Rev 101 and greater--the code detects architecture of board (mainly for diagnostics applications)  &lt;br /&gt;
&lt;br /&gt;
RPU_CMD_PERFORM_MPU_TEST - perform basic tests on PIAs and return result codes  &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
These defines are used as Bit flags in the first parameter of the function.&lt;br /&gt;
  &lt;br /&gt;
To tell the board to boot to original code if the jumper switch is not set, or the credit/reset button is held at power on, these parameters can be used:&amp;lt;blockquote&amp;gt;&lt;br /&gt;
  RPU_InitializeMPU(RPU_CMD_BOOT_ORIGINAL_IF_CREDIT_RESET | RPU_CMD_BOOT_ORIGINAL_IF_NOT_SWITCH_CLOSED, SW_CREDIT_RESET);&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Note: the second parameter must tell the library the ID of the Credit/Reset switch if that's being used for a boot condition.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Initializing_the_Library&amp;diff=115</id>
		<title>Initializing the Library</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Initializing_the_Library&amp;diff=115"/>
		<updated>2023-07-01T17:18:53Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Created page with &amp;quot;In the .ino file, the setup() function will initialize the RPU library and prepare the MPU for booting.   There are several options for the RPU_InitializeMPU function that allow the developer to choose how the machine will boot.      '''   unsigned long RPU_InitializeMPU(unsigned long initOptions=RPU_CMD_PERFORM_MPU_TEST, byte creditResetSwitch=0xFF);   '''      By default, the RPU_InitializeMPU function will assume that it should boot to the new code running on the Ardu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the .ino file, the setup() function will initialize the RPU library and prepare the MPU for booting.  &lt;br /&gt;
There are several options for the RPU_InitializeMPU function that allow the developer to choose how the machine will boot.  &lt;br /&gt;
  &lt;br /&gt;
'''  &lt;br /&gt;
unsigned long RPU_InitializeMPU(unsigned long initOptions=RPU_CMD_PERFORM_MPU_TEST, byte creditResetSwitch=0xFF);  &lt;br /&gt;
'''  &lt;br /&gt;
  &lt;br /&gt;
By default, the RPU_InitializeMPU function will assume that it should boot to the new code running on the Arduino. The parameters will describe the situations when the developer wants the board to boot to the original (M6800) code.  &lt;br /&gt;
RPU_CMD_BOOT_ORIGINAL - This will boot to original unconditionally (disables new code completely for this install)  &lt;br /&gt;
RPU_CMD_BOOT_ORIGINAL_IF_CREDIT_RESET - Only supported on Rev 4 or greater, boots original if the C/R button is held at power on  &lt;br /&gt;
RPU_CMD_BOOT_ORIGINAL_IF_NOT_CREDIT_RESET - Only supported on Rev 4 or greater, boots original if the C/R button is NOT held at power on  &lt;br /&gt;
RPU_CMD_BOOT_ORIGINAL_IF_SWITCH_CLOSED - boots to original if the switch is closed at power on  &lt;br /&gt;
RPU_CMD_BOOT_ORIGINAL_IF_NOT_SWITCH_CLOSED - boots to original if the switch is NOT closed at power on  &lt;br /&gt;
  &lt;br /&gt;
There are also parameters to control other boot behavior:  &lt;br /&gt;
RPU_CMD_AUTODETECT_ARCHITECTURE - For Rev 101 and greater--the code detects architecture of board (mainly for diagnostics applications)  &lt;br /&gt;
RPU_CMD_PERFORM_MPU_TEST - perform basic tests on PIAs and return result codes  &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
These defines are used as Bit flags in the first parameter of the function.  &lt;br /&gt;
To tell the board to boot to original code if the jumper switch is not set, or the credit/reset button is held at power on, these parameters can be used:  &lt;br /&gt;
'''&lt;br /&gt;
RPU_InitializeMPU(RPU_CMD_BOOT_ORIGINAL_IF_CREDIT_RESET | RPU_CMD_BOOT_ORIGINAL_IF_NOT_SWITCH_CLOSED, SW_CREDIT_RESET);  &lt;br /&gt;
'''  &lt;br /&gt;
Note: the second parameter must tell the library the ID of the Credit/Reset switch if that's being used for a boot condition.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Software_Resources&amp;diff=114</id>
		<title>Software Resources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Software_Resources&amp;diff=114"/>
		<updated>2023-07-01T17:07:42Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To facilitate the creation of games, there are a number of templates, utilities, and helper libraries available on the BSOS GitHub site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Base Library Functions]]&lt;br /&gt;
&lt;br /&gt;
[[Initializing the Library]]&lt;br /&gt;
&lt;br /&gt;
[[Audio Functions Library]]&lt;br /&gt;
&lt;br /&gt;
[[Drop Target Handler Library]]&lt;br /&gt;
&lt;br /&gt;
[[Lamp Animation Helper Executable]]&lt;br /&gt;
&lt;br /&gt;
[[Machine Diagnostics]]&lt;br /&gt;
&lt;br /&gt;
[[Pinball Machine Base]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Software_Resources&amp;diff=113</id>
		<title>Software Resources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Software_Resources&amp;diff=113"/>
		<updated>2023-07-01T17:07:15Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To facilitate the creation of games, there are a number of templates, utilities, and helper libraries available on the BSOS GitHub site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Base Library Functions]]&lt;br /&gt;
&lt;br /&gt;
[Initializing the Library]&lt;br /&gt;
&lt;br /&gt;
[[Audio Functions Library]]&lt;br /&gt;
&lt;br /&gt;
[[Drop Target Handler Library]]&lt;br /&gt;
&lt;br /&gt;
[[Lamp Animation Helper Executable]]&lt;br /&gt;
&lt;br /&gt;
[[Machine Diagnostics]]&lt;br /&gt;
&lt;br /&gt;
[[Pinball Machine Base]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Part_Sources&amp;diff=112</id>
		<title>Part Sources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Part_Sources&amp;diff=112"/>
		<updated>2023-06-25T14:29:13Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added parts for Rev 100+ boards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arduinos ==&lt;br /&gt;
&lt;br /&gt;
* Arduino Nano (for [[BSOS Hardware Revisions|Rev 1]] or [[BSOS Hardware Revisions|Rev 2]])&lt;br /&gt;
** [https://www.amazon.com/HiLetgo-ATmega328P-Controller-Development-Unsoldered/dp/B01DLIJQA2/ On Amazon] - currently $17.49 for 3 (search for &amp;quot;Arduino Nano ATmega328P CH340G&amp;quot;)&lt;br /&gt;
* Mega 2560 Pro (for [[BSOS Hardware Revisions|Rev 3]] or greater, or [[BSOS Hardware Revisions|RPG]] board)&lt;br /&gt;
** [[https://www.aliexpress.us/item/3256804647334883.html via Ali Express]] - currently $9.55 each (Still being tested by Mike)&lt;br /&gt;
** [https://www.amazon.com/SongHe-ATMEGA2560-16AU-Pinheaders-Compatible-Mega2560/dp/B07TGF9VMQ/ On Amazon] - currently $17.99 each (search for &amp;quot;Arduino MEGA 2560 Pro&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Female Connectors for Arduino MEGA 2560 Pro ==&lt;br /&gt;
&lt;br /&gt;
* Configuration 1&lt;br /&gt;
** Qty 1 - 2x5 pin connector (to add to a 2x16 for the 2x21 connector)&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-05-RA?qs=neFkstNq%252B6Ex1fEfkze0Fg%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.42 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-05-10/682218 Digikey] - currently $1.27 each&lt;br /&gt;
** Qty 2 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
* Configuration 2&lt;br /&gt;
** Qty 1 - 2x21 pin connector&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-21-10/682234 Digikey] - currently $4.60 each&lt;br /&gt;
** Qty 1 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
&lt;br /&gt;
== Parts for Rev 100+ boards ==&lt;br /&gt;
&lt;br /&gt;
* Male socket pins (2.54mm Male 40 Pin Single Row Straight Round Pin Header Strip 1*40P):  &lt;br /&gt;
** https://www.aliexpress.us/item/2251832506677289.html?gatewayAdapt=glo2usa4itemAdapt&lt;br /&gt;
* 40-pin CPU sockets&lt;br /&gt;
** (wiper) https://www.digikey.com/en/products/detail/cnc-tech/245-40-1-06/3441588&lt;br /&gt;
** (round - machine pin) https://www.digikey.com/en/products/detail/adam-tech/ICM-640-1-GT-HT/9832971&lt;br /&gt;
** (round - machine pin) https://www.mouser.com/ProductDetail/Mill-Max/110-99-640-41-001000?qs=WZeyYeqMOWfGzlTYkXtFyQ%3D%3D&lt;br /&gt;
&lt;br /&gt;
== WAV Trigger Holder ==&lt;br /&gt;
If you have access to a 3D printer, [https://pinballrefresh.com/s/WAV_Trigger_Mount.stl WAV Trigger Mount] is a printable bracket to mount the WAV Trigger with adhesive or cable ties (created by @turren).&lt;br /&gt;
&lt;br /&gt;
== WiFi Module (Rev 4 and above) ==&lt;br /&gt;
Wifi Module for connecting to a scoring server:  https://www.amazon.com/gp/product/B07BK435ZW/&lt;br /&gt;
&lt;br /&gt;
== OLED Display (Rev 4 and above) ==&lt;br /&gt;
Display for diagnostics: https://www.amazon.com/gp/product/B08J1D212N/&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Hardware_Revisions&amp;diff=111</id>
		<title>BSOS Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Hardware_Revisions&amp;diff=111"/>
		<updated>2023-06-24T16:23:42Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: DickHamill moved page BSOS Hardware Revisions to RPU Hardware Revisions: rebranding of BSOS to MPU&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[RPU Hardware Revisions]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=110</id>
		<title>RPU Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=110"/>
		<updated>2023-06-24T16:23:42Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: DickHamill moved page BSOS Hardware Revisions to RPU Hardware Revisions: rebranding of BSOS to MPU&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= RPU Hardware Revisions =&lt;br /&gt;
Interfacing the Arduino to the MPU is done using the J5 connector on the board. The J5 connector is at the top of the board and it was originally meant as a diagnostic port. It contains access to all the lines needed except for the IRQ line on the original MPU's. &lt;br /&gt;
&lt;br /&gt;
The hardware interface board has gone through several revisions. The original version interfaced with an Arduino Nano, though due to program space limitations and the need for additional pins current versions use the Arduino Mega 2560 Pro.   &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Board Version&lt;br /&gt;
!Arduino Required&lt;br /&gt;
!Compatible &lt;br /&gt;
Bally MPUs&lt;br /&gt;
!Compatible &lt;br /&gt;
Stern MPUs&lt;br /&gt;
!Compatible&lt;br /&gt;
Williams MPUs&lt;br /&gt;
!Bally Sound Cards&lt;br /&gt;
!Stern Sound Cards&lt;br /&gt;
!Willams Sound Cards&lt;br /&gt;
!Boots&lt;br /&gt;
Original &lt;br /&gt;
Code&lt;br /&gt;
|-&lt;br /&gt;
|Revision 1&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 2&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 3&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 4&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 101&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 102 &lt;br /&gt;
(auto detects CPU)&lt;br /&gt;
|[https://pinballindex.com/index.php/MEGA_2560_PRO MEGA 2560 PRO]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|}&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb|Early BSOS Prototype]]&lt;br /&gt;
== Early Prototypes ==&lt;br /&gt;
The earliest versions of the BSOS system were based on breadboards - manual versions of what would eventually become Version 1.&lt;br /&gt;
&lt;br /&gt;
[[File:Mega2560 Pro.jpg|thumb|Arduino Mega 2560 Pro]]&lt;br /&gt;
[[File:Mega-2560-Pro-Pinout.jpg|thumb|Arduino Mega 2560 Pro Pinout]]&lt;br /&gt;
&lt;br /&gt;
== Version 1 ==&lt;br /&gt;
Revision 1 uses a 74125 buffer chip to interface an Arduino NANO to the MPU. This board works for most Bally -17, -35, and Stern -100, and -200 games, but won't allow the NANO to control the SB300 (like in Meteor and Galaxy).&lt;br /&gt;
&lt;br /&gt;
== Version 2 ==&lt;br /&gt;
Revision 2 uses two ICs (74155 &amp;amp; 74240) to interface more thoroughly. It can talk to the SB300.&lt;br /&gt;
&lt;br /&gt;
== Version 3 ==&lt;br /&gt;
Revision 3 upgrades the Arduino to a MEGA 2560 PRO and works with all Bally/Stern early SS games (NOTE: the MEGA 2560 PRO has a different layout than a typical MEGA 2560. You need a MEGA 2560 PRO with D0-D31 on the same header)&lt;br /&gt;
&lt;br /&gt;
== Version 4 - in-progress ==&lt;br /&gt;
&lt;br /&gt;
== IRQ Line ==&lt;br /&gt;
On the original MPU boards (Altek replacement boards have the IRQ line on J5) a jumper from top lead of R134 on the MPU board needs to be connected to the IRQ pin on the interface board so the Arduino can sense the interrupt line.&lt;br /&gt;
&lt;br /&gt;
== WAVTrigger board ==&lt;br /&gt;
WAVTrigger is a separate add-on board that receives signals via a serial port and can play sounds from an SD card.&lt;br /&gt;
&lt;br /&gt;
== Installing the card onto the J5 connector ==&lt;br /&gt;
Your MPU should be working before you attempt this step. There are some situations where you can use this daughter card without parts of your MPU functioning. For example, the new code will not require the PROMs, RAM, CRAM, or reset section of the board to be operable. However, until you know your MPU is in working order, I advise you to start there.&lt;br /&gt;
&lt;br /&gt;
With the machine off, plug in your new card into J5, ensuring that the rightmost pin (pin 1) of the daughter card is connected to the rightmost pin (pin 1) of J5. The J5 connector is keyed on pin 29, for reference.&lt;br /&gt;
&lt;br /&gt;
On a Bally AS-2518-17, -35, or Stern MPU-100 board, the J5 connector doesn’t contain the IRQ line. For those boards, you’ll need to run a jumper between the Arduino’s pin D2 and the top leg of R134&lt;br /&gt;
[[File:Interrupt Jumper.jpg|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Stern MPU-200 or an Alltek MPU Replacement (Bally/Stern), the J5 connector is 34 pins and it contains an IRQ line on pin 34. For these boards, the daughter card can pick up the IRQ directly from the board&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=109</id>
		<title>RPU Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=109"/>
		<updated>2023-06-24T16:22:53Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: /* BSOS Hardware Revisions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= RPU Hardware Revisions =&lt;br /&gt;
Interfacing the Arduino to the MPU is done using the J5 connector on the board. The J5 connector is at the top of the board and it was originally meant as a diagnostic port. It contains access to all the lines needed except for the IRQ line on the original MPU's. &lt;br /&gt;
&lt;br /&gt;
The hardware interface board has gone through several revisions. The original version interfaced with an Arduino Nano, though due to program space limitations and the need for additional pins current versions use the Arduino Mega 2560 Pro.   &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Board Version&lt;br /&gt;
!Arduino Required&lt;br /&gt;
!Compatible &lt;br /&gt;
Bally MPUs&lt;br /&gt;
!Compatible &lt;br /&gt;
Stern MPUs&lt;br /&gt;
!Compatible&lt;br /&gt;
Williams MPUs&lt;br /&gt;
!Bally Sound Cards&lt;br /&gt;
!Stern Sound Cards&lt;br /&gt;
!Willams Sound Cards&lt;br /&gt;
!Boots&lt;br /&gt;
Original &lt;br /&gt;
Code&lt;br /&gt;
|-&lt;br /&gt;
|Revision 1&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 2&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 3&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 4&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 101&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 102 &lt;br /&gt;
(auto detects CPU)&lt;br /&gt;
|[https://pinballindex.com/index.php/MEGA_2560_PRO MEGA 2560 PRO]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|}&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb|Early BSOS Prototype]]&lt;br /&gt;
== Early Prototypes ==&lt;br /&gt;
The earliest versions of the BSOS system were based on breadboards - manual versions of what would eventually become Version 1.&lt;br /&gt;
&lt;br /&gt;
[[File:Mega2560 Pro.jpg|thumb|Arduino Mega 2560 Pro]]&lt;br /&gt;
[[File:Mega-2560-Pro-Pinout.jpg|thumb|Arduino Mega 2560 Pro Pinout]]&lt;br /&gt;
&lt;br /&gt;
== Version 1 ==&lt;br /&gt;
Revision 1 uses a 74125 buffer chip to interface an Arduino NANO to the MPU. This board works for most Bally -17, -35, and Stern -100, and -200 games, but won't allow the NANO to control the SB300 (like in Meteor and Galaxy).&lt;br /&gt;
&lt;br /&gt;
== Version 2 ==&lt;br /&gt;
Revision 2 uses two ICs (74155 &amp;amp; 74240) to interface more thoroughly. It can talk to the SB300.&lt;br /&gt;
&lt;br /&gt;
== Version 3 ==&lt;br /&gt;
Revision 3 upgrades the Arduino to a MEGA 2560 PRO and works with all Bally/Stern early SS games (NOTE: the MEGA 2560 PRO has a different layout than a typical MEGA 2560. You need a MEGA 2560 PRO with D0-D31 on the same header)&lt;br /&gt;
&lt;br /&gt;
== Version 4 - in-progress ==&lt;br /&gt;
&lt;br /&gt;
== IRQ Line ==&lt;br /&gt;
On the original MPU boards (Altek replacement boards have the IRQ line on J5) a jumper from top lead of R134 on the MPU board needs to be connected to the IRQ pin on the interface board so the Arduino can sense the interrupt line.&lt;br /&gt;
&lt;br /&gt;
== WAVTrigger board ==&lt;br /&gt;
WAVTrigger is a separate add-on board that receives signals via a serial port and can play sounds from an SD card.&lt;br /&gt;
&lt;br /&gt;
== Installing the card onto the J5 connector ==&lt;br /&gt;
Your MPU should be working before you attempt this step. There are some situations where you can use this daughter card without parts of your MPU functioning. For example, the new code will not require the PROMs, RAM, CRAM, or reset section of the board to be operable. However, until you know your MPU is in working order, I advise you to start there.&lt;br /&gt;
&lt;br /&gt;
With the machine off, plug in your new card into J5, ensuring that the rightmost pin (pin 1) of the daughter card is connected to the rightmost pin (pin 1) of J5. The J5 connector is keyed on pin 29, for reference.&lt;br /&gt;
&lt;br /&gt;
On a Bally AS-2518-17, -35, or Stern MPU-100 board, the J5 connector doesn’t contain the IRQ line. For those boards, you’ll need to run a jumper between the Arduino’s pin D2 and the top leg of R134&lt;br /&gt;
[[File:Interrupt Jumper.jpg|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Stern MPU-200 or an Alltek MPU Replacement (Bally/Stern), the J5 connector is 34 pins and it contains an IRQ line on pin 34. For these boards, the daughter card can pick up the IRQ directly from the board&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=108</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=108"/>
		<updated>2023-06-24T16:22:07Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that the BSOS project has been renamed to &amp;quot;Retro Pin Upgrade&amp;quot; - This was done to avoid any intellectual property confusion/issues.  Until other areas have been updated, assume any reference to BSOS is the same as RetroPin Upgrade.[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for RPU reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?|Introduction - What is RPU?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements|RPU System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|RPU Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known RPU machines]]&lt;br /&gt;
&lt;br /&gt;
[[List of known BSOS installations|List of known RPU installations]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Part Sources]]&lt;br /&gt;
&lt;br /&gt;
[[How to Build and Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Part_Sources&amp;diff=106</id>
		<title>Part Sources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Part_Sources&amp;diff=106"/>
		<updated>2023-05-15T22:25:29Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added more hardware links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arduinos ==&lt;br /&gt;
&lt;br /&gt;
* Arduino Nano (for [[BSOS Hardware Revisions|Rev 1]] or [[BSOS Hardware Revisions|Rev 2]])&lt;br /&gt;
** [https://www.amazon.com/HiLetgo-ATmega328P-Controller-Development-Unsoldered/dp/B01DLIJQA2/ On Amazon] - currently $17.49 for 3 (search for &amp;quot;Arduino Nano ATmega328P CH340G&amp;quot;)&lt;br /&gt;
* Mega 2560 Pro (for [[BSOS Hardware Revisions|Rev 3]] or greater, or [[BSOS Hardware Revisions|RPG]] board)&lt;br /&gt;
** [[https://www.aliexpress.us/item/3256804647334883.html via Ali Express]] - currently $9.55 each (Still being tested by Mike)&lt;br /&gt;
** [https://www.amazon.com/SongHe-ATMEGA2560-16AU-Pinheaders-Compatible-Mega2560/dp/B07TGF9VMQ/ On Amazon] - currently $17.99 each (search for &amp;quot;Arduino MEGA 2560 Pro&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Female Connectors for Arduino MEGA 2560 Pro ==&lt;br /&gt;
&lt;br /&gt;
* Configuration 1&lt;br /&gt;
** Qty 1 - 2x5 pin connector (to add to a 2x16 for the 2x21 connector)&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-05-RA?qs=neFkstNq%252B6Ex1fEfkze0Fg%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.42 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-05-10/682218 Digikey] - currently $1.27 each&lt;br /&gt;
** Qty 2 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
* Configuration 2&lt;br /&gt;
** Qty 1 - 2x21 pin connector&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-21-10/682234 Digikey] - currently $4.60 each&lt;br /&gt;
** Qty 1 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
&lt;br /&gt;
== WAV Trigger Holder ==&lt;br /&gt;
If you have access to a 3D printer, [https://pinballrefresh.com/s/WAV_Trigger_Mount.stl WAV Trigger Mount] is a printable bracket to mount the WAV Trigger with adhesive or cable ties (created by @turren).&lt;br /&gt;
&lt;br /&gt;
== WiFi Module (Rev 4 and above) ==&lt;br /&gt;
Wifi Module for connecting to a scoring server:  https://www.amazon.com/gp/product/B07BK435ZW/&lt;br /&gt;
&lt;br /&gt;
== OLED Display (Rev 4 and above) ==&lt;br /&gt;
Display for diagnostics: https://www.amazon.com/gp/product/B08J1D212N/&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=105</id>
		<title>RPU Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=105"/>
		<updated>2023-04-19T16:00:17Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Updated revision table to conform to new naming&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BSOS Hardware Revisions =&lt;br /&gt;
Interfacing the Arduino to the MPU is done using the J5 connector on the board. The J5 connector is at the top of the board and it was originally meant as a diagnostic port. It contains access to all the lines needed except for the IRQ line on the original MPU's. &lt;br /&gt;
&lt;br /&gt;
The hardware interface board has gone through several revisions. The original version interfaced with an Arduino Nano, though due to program space limitations and the need for additional pins current versions use the Arduino Mega 2560 Pro.   &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Board Version&lt;br /&gt;
!Arduino Required&lt;br /&gt;
!Compatible &lt;br /&gt;
Bally MPUs&lt;br /&gt;
!Compatible &lt;br /&gt;
Stern MPUs&lt;br /&gt;
!Compatible&lt;br /&gt;
Williams MPUs&lt;br /&gt;
!Bally Sound Cards&lt;br /&gt;
!Stern Sound Cards&lt;br /&gt;
!Willams Sound Cards&lt;br /&gt;
!Boots&lt;br /&gt;
Original &lt;br /&gt;
Code&lt;br /&gt;
|-&lt;br /&gt;
|Revision 1&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 2&lt;br /&gt;
|[[NANO ATMega328P]]&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 3&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|Revision 4&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 101&lt;br /&gt;
|[[MEGA 2560 PRO]]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|Revision 102 &lt;br /&gt;
(auto detects CPU)&lt;br /&gt;
|[https://pinballindex.com/index.php/MEGA_2560_PRO MEGA 2560 PRO]&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
&lt;br /&gt;
System 6a&lt;br /&gt;
&lt;br /&gt;
System 7&lt;br /&gt;
&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Type 1&lt;br /&gt;
Type 2&lt;br /&gt;
System 11 Sound&lt;br /&gt;
System 11 Music&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|}&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb|Early BSOS Prototype]]&lt;br /&gt;
== Early Prototypes ==&lt;br /&gt;
The earliest versions of the BSOS system were based on breadboards - manual versions of what would eventually become Version 1.&lt;br /&gt;
&lt;br /&gt;
[[File:Mega2560 Pro.jpg|thumb|Arduino Mega 2560 Pro]]&lt;br /&gt;
[[File:Mega-2560-Pro-Pinout.jpg|thumb|Arduino Mega 2560 Pro Pinout]]&lt;br /&gt;
&lt;br /&gt;
== Version 1 ==&lt;br /&gt;
Revision 1 uses a 74125 buffer chip to interface an Arduino NANO to the MPU. This board works for most Bally -17, -35, and Stern -100, and -200 games, but won't allow the NANO to control the SB300 (like in Meteor and Galaxy).&lt;br /&gt;
&lt;br /&gt;
== Version 2 ==&lt;br /&gt;
Revision 2 uses two ICs (74155 &amp;amp; 74240) to interface more thoroughly. It can talk to the SB300.&lt;br /&gt;
&lt;br /&gt;
== Version 3 ==&lt;br /&gt;
Revision 3 upgrades the Arduino to a MEGA 2560 PRO and works with all Bally/Stern early SS games (NOTE: the MEGA 2560 PRO has a different layout than a typical MEGA 2560. You need a MEGA 2560 PRO with D0-D31 on the same header)&lt;br /&gt;
&lt;br /&gt;
== Version 4 - in-progress ==&lt;br /&gt;
&lt;br /&gt;
== IRQ Line ==&lt;br /&gt;
On the original MPU boards (Altek replacement boards have the IRQ line on J5) a jumper from top lead of R134 on the MPU board needs to be connected to the IRQ pin on the interface board so the Arduino can sense the interrupt line.&lt;br /&gt;
&lt;br /&gt;
== WAVTrigger board ==&lt;br /&gt;
WAVTrigger is a separate add-on board that receives signals via a serial port and can play sounds from an SD card.&lt;br /&gt;
&lt;br /&gt;
== Installing the card onto the J5 connector ==&lt;br /&gt;
Your MPU should be working before you attempt this step. There are some situations where you can use this daughter card without parts of your MPU functioning. For example, the new code will not require the PROMs, RAM, CRAM, or reset section of the board to be operable. However, until you know your MPU is in working order, I advise you to start there.&lt;br /&gt;
&lt;br /&gt;
With the machine off, plug in your new card into J5, ensuring that the rightmost pin (pin 1) of the daughter card is connected to the rightmost pin (pin 1) of J5. The J5 connector is keyed on pin 29, for reference.&lt;br /&gt;
&lt;br /&gt;
On a Bally AS-2518-17, -35, or Stern MPU-100 board, the J5 connector doesn’t contain the IRQ line. For those boards, you’ll need to run a jumper between the Arduino’s pin D2 and the top leg of R134&lt;br /&gt;
[[File:Interrupt Jumper.jpg|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a Stern MPU-200 or an Alltek MPU Replacement (Bally/Stern), the J5 connector is 34 pins and it contains an IRQ line on pin 34. For these boards, the daughter card can pick up the IRQ directly from the board&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=104</id>
		<title>BSOS Machines</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=104"/>
		<updated>2023-04-19T15:53:23Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Updated board version number to match new scheme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Machines ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|Status&lt;br /&gt;
|Originating Author&lt;br /&gt;
|Github/Other Links&lt;br /&gt;
|Version&lt;br /&gt;
|[[BSOS Hardware Revisions|Board Req'd]]&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/BlackJack2020&lt;br /&gt;
|1&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Black Knight 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|101&lt;br /&gt;
|-&lt;br /&gt;
|Centaur-2022&lt;br /&gt;
|Released&lt;br /&gt;
|Ryan O'Donnell&lt;br /&gt;
|https://github.com/ryanjpodonnell/centaur-2022&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Eight Ball Plus&lt;br /&gt;
|Released&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|https://github.com/BallySternOS/Eight-Ball-Plus&lt;br /&gt;
|80&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Fireball Classic&lt;br /&gt;
|In Progress&lt;br /&gt;
|Valor Pinball&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|101&lt;br /&gt;
|-&lt;br /&gt;
|Flash Gordon 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Tim Murren&lt;br /&gt;
|https://github.com/BallySternOS/FlashGordon2021&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|(Beyond) Future Spa&lt;br /&gt;
|In Progress&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Galaxy 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Galaxy2021&lt;br /&gt;
|13&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Lord 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|101&lt;br /&gt;
|-&lt;br /&gt;
|Lightning 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Meteor 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Meteor2021&lt;br /&gt;
|8&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Scorpion 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|101&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania 2021]]&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/SilverballMania2021MEGA&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|6&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|[[StarTrek 2022|Star Trek 2022]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|John Turner&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Stellar Wars 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/StellarWars2022&lt;br /&gt;
|1&lt;br /&gt;
|101&lt;br /&gt;
|-&lt;br /&gt;
|Supersonic 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Supersonic2022&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2020&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2022&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|Mike from PinballHelp.com&lt;br /&gt;
|https://www.youtube.com/watch?v=4fBk7Wx4ABU&amp;amp;t=335s&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=List_of_known_BSOS_installations&amp;diff=96</id>
		<title>List of known BSOS installations</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=List_of_known_BSOS_installations&amp;diff=96"/>
		<updated>2023-01-09T00:56:31Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Installations (existing games modified with BSOS) ==&lt;br /&gt;
&lt;br /&gt;
Following is a list of known BSOS games and their (general) location.  Many of these may be in private locations, but if there's a way to contact the owners, it may be possible to visit/demo the games.&lt;br /&gt;
&lt;br /&gt;
Since this Wiki is the official BSOS Wiki, we're going to sequentially number each known instance of the game as has been submitted to us.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Title'''&lt;br /&gt;
|'''Game #'''&lt;br /&gt;
|'''Status'''&lt;br /&gt;
|'''Owner'''&lt;br /&gt;
|'''Location'''&lt;br /&gt;
|'''Notes'''&lt;br /&gt;
|'''Link/Reference'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Trident]] 2020&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|additional mods&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Trident]] 2020&lt;br /&gt;
|&lt;br /&gt;
|'''public'''&lt;br /&gt;
|&lt;br /&gt;
|Tres Bon BBQ (Harahan, LA)&lt;br /&gt;
|&lt;br /&gt;
|https://tresbonmeats.com/&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]] 2023&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|Demo: https://www.youtube.com/watch?v=4fBk7Wx4ABU&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Mata Hari]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Meteor]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Supersonic]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|&lt;br /&gt;
|'''public'''&lt;br /&gt;
|&lt;br /&gt;
|Wessie's Den &lt;br /&gt;
|212 Brown St Westbrook Maine&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=List_of_known_BSOS_installations&amp;diff=95</id>
		<title>List of known BSOS installations</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=List_of_known_BSOS_installations&amp;diff=95"/>
		<updated>2023-01-09T00:55:24Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: /* Known BSOS Installations (existing games modified with BSOS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Installations (existing games modified with BSOS) ==&lt;br /&gt;
&lt;br /&gt;
Following is a list of known BSOS games and their (general) location.  Many of these may be in private locations, but if there's a way to contact the owners, it may be possible to visit/demo the games.&lt;br /&gt;
&lt;br /&gt;
Since this Wiki is the official BSOS Wiki, we're going to sequentially number each known instance of the game as has been submitted to us.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Title'''&lt;br /&gt;
|'''Game #'''&lt;br /&gt;
|'''Status'''&lt;br /&gt;
|'''Owner'''&lt;br /&gt;
|'''Location'''&lt;br /&gt;
|'''Notes'''&lt;br /&gt;
|'''Link/Reference'''&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|&lt;br /&gt;
|'''public'''&lt;br /&gt;
|&lt;br /&gt;
|Wessie's Den &lt;br /&gt;
|212 Brown St Westbrook Maine&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Trident]] 2020&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|additional mods&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Trident]] 2020&lt;br /&gt;
|&lt;br /&gt;
|'''public'''&lt;br /&gt;
|&lt;br /&gt;
|Tres Bon BBQ (Harahan, LA)&lt;br /&gt;
|&lt;br /&gt;
|https://tresbonmeats.com/&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]] 2023&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|Demo: https://www.youtube.com/watch?v=4fBk7Wx4ABU&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Mata Hari]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Meteor]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|Central Arkansas&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Supersonic]]&lt;br /&gt;
|&lt;br /&gt;
|private&lt;br /&gt;
|[[Mike/PinballHelp.com]]&lt;br /&gt;
|New Orleans, LA&lt;br /&gt;
|work in progress&lt;br /&gt;
|https://pinchurch.com&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Part_Sources&amp;diff=91</id>
		<title>Part Sources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Part_Sources&amp;diff=91"/>
		<updated>2023-01-06T21:44:15Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added WAV Trigger holder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arduinos ==&lt;br /&gt;
&lt;br /&gt;
* Arduino Nano (for [[BSOS Hardware Revisions|Rev 1]] or [[BSOS Hardware Revisions|Rev 2]])&lt;br /&gt;
** [https://www.amazon.com/HiLetgo-ATmega328P-Controller-Development-Unsoldered/dp/B01DLIJQA2/ On Amazon] - currently $17.49 for 3 (search for &amp;quot;Arduino Nano ATmega328P CH340G&amp;quot;)&lt;br /&gt;
* Mega 2560 Pro (for [[BSOS Hardware Revisions|Rev 3]] or greater, or [[BSOS Hardware Revisions|RPG]] board)&lt;br /&gt;
** [[https://www.aliexpress.us/item/3256804647334883.html via Ali Express]] - currently $9.55 each (Still being tested by Mike)&lt;br /&gt;
** [https://www.amazon.com/SongHe-ATMEGA2560-16AU-Pinheaders-Compatible-Mega2560/dp/B07TGF9VMQ/ On Amazon] - currently $17.99 each (search for &amp;quot;Arduino MEGA 2560 Pro&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Female Connectors for Arduino MEGA 2560 Pro ==&lt;br /&gt;
&lt;br /&gt;
* Configuration 1&lt;br /&gt;
** Qty 1 - 2x5 pin connector (to add to a 2x16 for the 2x21 connector)&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-05-RA?qs=neFkstNq%252B6Ex1fEfkze0Fg%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.42 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-05-10/682218 Digikey] - currently $1.27 each&lt;br /&gt;
** Qty 2 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
* Configuration 2&lt;br /&gt;
** Qty 1 - 2x21 pin connector&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-21-10/682234 Digikey] - currently $4.60 each&lt;br /&gt;
** Qty 1 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
&lt;br /&gt;
== WAV Trigger Holder ==&lt;br /&gt;
If you have access to a 3D printer, [https://pinballrefresh.com/s/WAV_Trigger_Mount.stl WAV Trigger Mount] is a printable bracket to mount the WAV Trigger with adhesive or cable ties (created by @turren).&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=90</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=90"/>
		<updated>2023-01-06T21:31:27Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for BSOS reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|BSOS Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known BSOS machines]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Part Sources]]&lt;br /&gt;
&lt;br /&gt;
[[How to Build and Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=How_to_Build_and_Install_on_Your_Machine&amp;diff=89</id>
		<title>How to Build and Install on Your Machine</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=How_to_Build_and_Install_on_Your_Machine&amp;diff=89"/>
		<updated>2023-01-06T21:30:03Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: /* How to Build,Get, &amp;amp; Install on Your Machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How to Build and Install on Your Machine =&lt;br /&gt;
&lt;br /&gt;
# Purchase an Arduino Mega 2560 pro like this [https://www.amazon.com/Gowoops-ATMEGA2560-16AU-headers-Compatible-Mega2560/ one]&lt;br /&gt;
# Get an interface board (RoyGBev sells them on [https://pinside.com/pinball/market/shops/1304-roygbev-pinball Pinside]) If the board is pre-flashed skip the downloading and compiling sections&lt;br /&gt;
# Download the [[BSOS Machines|code for your game]], compile, and install it on your Ardiuno&lt;br /&gt;
# Install it onto your MPU board via the J5 connector&lt;br /&gt;
# Install a remote switch or jumper to enable/disable the original code on your machine&lt;br /&gt;
# [[Preparing your WAV trigger|Set up your WAV trigger to play the new sound effects]]&lt;br /&gt;
# Turn on the machine and play!&lt;br /&gt;
&lt;br /&gt;
==Downloading and compiling the code ==&lt;br /&gt;
The code for the machines is written in Arduino (Based on C++)&lt;br /&gt;
&lt;br /&gt;
# To download the pinball machine BSOS code, go to the GitHub repository page for the machine you are installing ([[BSOS Machines|See the list of machines and the git libraries).]] On the right side of the page, you should see a green button that says &amp;quot;Code&amp;quot;. Click this button and then select &amp;quot;Download ZIP&amp;quot; from the dropdown menu. This will download a zip file containing the code and all of its associated files to your computer.&lt;br /&gt;
#Once the download is complete, unzip the file to a location on your computer where you want to store the code.&lt;br /&gt;
#Next, open the Arduino IDE. From the File menu, select &amp;quot;Open&amp;quot; and navigate to the folder where you unzipped the pinball machine BSOS code. Open the file with the &amp;quot;.ino&amp;quot; extension. This will load the code into the IDE.&lt;br /&gt;
#Before you can upload the code to the Arduino Mega 2560, you will need to set the correct board and serial port in the IDE. To do this, go to the Tools menu and select the &amp;quot;Board&amp;quot; and &amp;quot;Port&amp;quot; options. Choose &amp;quot;Arduino/Genuino Mega or Mega 2560&amp;quot; as the board and the serial port that your Arduino is connected to as the port.&lt;br /&gt;
# Finally, to upload the code to the Arduino, click the &amp;quot;Upload&amp;quot; button in the IDE (it looks like an arrow pointing to the right). This will compile the code and send it to the Arduino, where it will be run. If the upload is successful, you should see a message in the IDE indicating that it was completed.&lt;br /&gt;
&lt;br /&gt;
== Installing the card onto the J5 connector==&lt;br /&gt;
Your MPU should be working before you attempt this step. There are some situations where you can use this daughter card without parts of your MPU functioning. For example, the new code will not require the PROMs, RAM, CRAM, or reset section of the board to be operable. However, until you know your MPU is in working order, I advise you to start there.&lt;br /&gt;
&lt;br /&gt;
With the machine off, plug in your new card into J5, ensuring that the rightmost pin (pin 1) of the daughter card is connected to the rightmost pin (pin 1) of J5. The J5 connector is keyed on pin 29, for reference.&lt;br /&gt;
&lt;br /&gt;
On a Bally AS-2518-17, -35, or Stern MPU-100 board, the J5 connector doesn’t contain the IRQ line. For those boards, you’ll need to run a jumper between the Arduino’s pin D2 and the top leg of R134&lt;br /&gt;
[[File:Instal on J5.jpg|center|thumb|J5 Install]]&lt;br /&gt;
[[File:Interrupt Jumper.jpg|center|thumb|Jumper to the interrupt line]]&lt;br /&gt;
On a Stern MPU-200 or an Alltek MPU Replacement (Bally/Stern), the J5 connector is 34 pins and it contains an IRQ line on pin 34. For these boards, the daughter card can pick up the IRQ directly from the board.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=How_to_Build,Get,_%26_Install_on_Your_Machine&amp;diff=88</id>
		<title>How to Build,Get, &amp; Install on Your Machine</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=How_to_Build,Get,_%26_Install_on_Your_Machine&amp;diff=88"/>
		<updated>2023-01-06T21:29:11Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: DickHamill moved page How to Build,Get, &amp;amp; Install on Your Machine to How to Build and Install on Your Machine: simplification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[How to Build and Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=How_to_Build_and_Install_on_Your_Machine&amp;diff=87</id>
		<title>How to Build and Install on Your Machine</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=How_to_Build_and_Install_on_Your_Machine&amp;diff=87"/>
		<updated>2023-01-06T21:29:10Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: DickHamill moved page How to Build,Get, &amp;amp; Install on Your Machine to How to Build and Install on Your Machine: simplification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How to Build,Get, &amp;amp; Install on Your Machine =&lt;br /&gt;
&lt;br /&gt;
# Purchase an Arduino Mega 2560 pro like this [https://www.amazon.com/Gowoops-ATMEGA2560-16AU-headers-Compatible-Mega2560/ one]&lt;br /&gt;
# Get an interface board (RoyGBev sells them on [https://pinside.com/pinball/market/shops/1304-roygbev-pinball Pinside]) If the board is pre-flashed skip the downloading and compiling sections&lt;br /&gt;
# Download the [[BSOS Machines|code for your game]], compile, and install it on your ardiuno&lt;br /&gt;
# Install it onto your MPU board via the J5 connector&lt;br /&gt;
# Install a remote switch or jumper to enable/disable the original code on your machine&lt;br /&gt;
# [[Preparing your WAV trigger|Set up your WAV trigger to play the new sound effects]]&lt;br /&gt;
# Turn on the machine and play!&lt;br /&gt;
&lt;br /&gt;
==Downloading and compiling the code ==&lt;br /&gt;
The code for the machines is written in Arduino (Based on C++)&lt;br /&gt;
&lt;br /&gt;
# To download the pinball machine BSOS code, go to the GitHub repository page for the machine you are installing ([[BSOS Machines|See the list of machines and the git libraries).]] On the right side of the page, you should see a green button that says &amp;quot;Code&amp;quot;. Click this button and then select &amp;quot;Download ZIP&amp;quot; from the dropdown menu. This will download a zip file containing the code and all of its associated files to your computer.&lt;br /&gt;
#Once the download is complete, unzip the file to a location on your computer where you want to store the code.&lt;br /&gt;
#Next, open the Arduino IDE. From the File menu, select &amp;quot;Open&amp;quot; and navigate to the folder where you unzipped the pinball machine BSOS code. Open the file with the &amp;quot;.ino&amp;quot; extension. This will load the code into the IDE.&lt;br /&gt;
#Before you can upload the code to the Arduino Mega 2560, you will need to set the correct board and serial port in the IDE. To do this, go to the Tools menu and select the &amp;quot;Board&amp;quot; and &amp;quot;Port&amp;quot; options. Choose &amp;quot;Arduino/Genuino Mega or Mega 2560&amp;quot; as the board and the serial port that your Arduino is connected to as the port.&lt;br /&gt;
# Finally, to upload the code to the Arduino, click the &amp;quot;Upload&amp;quot; button in the IDE (it looks like an arrow pointing to the right). This will compile the code and send it to the Arduino, where it will be run. If the upload is successful, you should see a message in the IDE indicating that it was completed.&lt;br /&gt;
&lt;br /&gt;
== Installing the card onto the J5 connector==&lt;br /&gt;
Your MPU should be working before you attempt this step. There are some situations where you can use this daughter card without parts of your MPU functioning. For example, the new code will not require the PROMs, RAM, CRAM, or reset section of the board to be operable. However, until you know your MPU is in working order, I advise you to start there.&lt;br /&gt;
&lt;br /&gt;
With the machine off, plug in your new card into J5, ensuring that the rightmost pin (pin 1) of the daughter card is connected to the rightmost pin (pin 1) of J5. The J5 connector is keyed on pin 29, for reference.&lt;br /&gt;
&lt;br /&gt;
On a Bally AS-2518-17, -35, or Stern MPU-100 board, the J5 connector doesn’t contain the IRQ line. For those boards, you’ll need to run a jumper between the Arduino’s pin D2 and the top leg of R134&lt;br /&gt;
[[File:Instal on J5.jpg|center|thumb|J5 Install]]&lt;br /&gt;
[[File:Interrupt Jumper.jpg|center|thumb|Jumper to the interrupt line]]&lt;br /&gt;
On a Stern MPU-200 or an Alltek MPU Replacement (Bally/Stern), the J5 connector is 34 pins and it contains an IRQ line on pin 34. For these boards, the daughter card can pick up the IRQ directly from the board.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=86</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=86"/>
		<updated>2023-01-06T21:28:16Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Undo revision 85 by DickHamill (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for BSOS reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|BSOS Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known BSOS machines]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Part Sources]]&lt;br /&gt;
&lt;br /&gt;
[[How to Build,Get, &amp;amp; Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=85</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=85"/>
		<updated>2023-01-06T21:26:44Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for BSOS reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|BSOS Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known BSOS machines]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Part Sources]]&lt;br /&gt;
&lt;br /&gt;
[[How to Build and Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Part_Sources&amp;diff=84</id>
		<title>Part Sources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Part_Sources&amp;diff=84"/>
		<updated>2023-01-06T18:54:08Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added parts links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arduinos ==&lt;br /&gt;
&lt;br /&gt;
* Arduino Nano (for [[BSOS Hardware Revisions|Rev 1]] or [[BSOS Hardware Revisions|Rev 2]])&lt;br /&gt;
** [https://www.amazon.com/HiLetgo-ATmega328P-Controller-Development-Unsoldered/dp/B01DLIJQA2/ On Amazon] - currently $17.49 for 3 (search for &amp;quot;Arduino Nano ATmega328P CH340G&amp;quot;)&lt;br /&gt;
* Mega 2560 Pro (for [[BSOS Hardware Revisions|Rev 3]] or greater, or [[BSOS Hardware Revisions|RPG]] board)&lt;br /&gt;
** [[https://www.aliexpress.us/item/3256804647334883.html via Ali Express]] - currently $9.55 each (Still being tested by Mike)&lt;br /&gt;
** [https://www.amazon.com/SongHe-ATMEGA2560-16AU-Pinheaders-Compatible-Mega2560/dp/B07TGF9VMQ/ On Amazon] - currently $17.99 each (search for &amp;quot;Arduino MEGA 2560 Pro&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Female Connectors for Arduino MEGA 2560 Pro ==&lt;br /&gt;
&lt;br /&gt;
* Configuration 1&lt;br /&gt;
** Qty 1 - 2x5 pin connector (to add to a 2x16 for the 2x21 connector)&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-05-RA?qs=neFkstNq%252B6Ex1fEfkze0Fg%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.42 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-05-10/682218 Digikey] - currently $1.27 each&lt;br /&gt;
** Qty 2 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;br /&gt;
* Configuration 2&lt;br /&gt;
** Qty 1 - 2x21 pin connector&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-21-10/682234 Digikey] - currently $4.60 each&lt;br /&gt;
** Qty 1 - 2x16 pin connectors&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-16-RA?qs=neFkstNq%252B6FJU7HdNnS4aQ%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $4.34 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-16-10/682229 Digikey] - currently $3.51 each&lt;br /&gt;
** Qty 2 - 2x3 pin connector&lt;br /&gt;
*** [https://www.mouser.com/ProductDetail/3M-Electronic-Solutions-Division/929852-01-03-RA?qs=neFkstNq%252B6F%252BzjJp1uEEhA%3D%3D&amp;amp;countryCode=US&amp;amp;currencyCode=USD Mouser] - currently $2.10 each&lt;br /&gt;
*** [https://www.digikey.com/en/products/detail/3m/929852-01-03-10/682216 Digikey] - currently $0.76 each&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=How_to_Build/Get/Install_on_Your_Machine&amp;diff=66</id>
		<title>How to Build/Get/Install on Your Machine</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=How_to_Build/Get/Install_on_Your_Machine&amp;diff=66"/>
		<updated>2023-01-05T00:56:43Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Created page with &amp;quot;Build a daughter card Get other components (Arduino, sound card, etc.) Load game code onto Arduino Install in your game&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Build a daughter card&lt;br /&gt;
Get other components (Arduino, sound card, etc.)&lt;br /&gt;
Load game code onto Arduino&lt;br /&gt;
Install in your game&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=65</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=65"/>
		<updated>2023-01-05T00:49:58Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for BSOS reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|BSOS Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known BSOS machines]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;br /&gt;
&lt;br /&gt;
[[How to Build/Get/Install on Your Machine]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=63</id>
		<title>BSOS Machines</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=63"/>
		<updated>2023-01-05T00:32:27Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: /* Known BSOS Machines */ Added column for minimum required board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Machines ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|Status&lt;br /&gt;
|Originating Author&lt;br /&gt;
|Github/Other Links&lt;br /&gt;
|Version&lt;br /&gt;
|[[BSOS Hardware Revisions|Board Req'd]]&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/BlackJack2020&lt;br /&gt;
|1&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Black Knight 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|RPG&lt;br /&gt;
|-&lt;br /&gt;
|Centaur-2022&lt;br /&gt;
|Released&lt;br /&gt;
|Ryan O'Donnell&lt;br /&gt;
|https://github.com/ryanjpodonnell/centaur-2022&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Eight Ball Plus&lt;br /&gt;
|Released&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|https://github.com/BallySternOS/Eight-Ball-Plus&lt;br /&gt;
|80&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Fireball Classic&lt;br /&gt;
|In Progress&lt;br /&gt;
|Valor Pinball&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|RPG&lt;br /&gt;
|-&lt;br /&gt;
|Flash Gordon 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Tim Murren&lt;br /&gt;
|https://github.com/BallySternOS/FlashGordon2021&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|(Beyond) Future Spa&lt;br /&gt;
|In Progress&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Galaxy 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Galaxy2021&lt;br /&gt;
|13&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Lord 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|RPG&lt;br /&gt;
|-&lt;br /&gt;
|Lightning 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Meteor 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Meteor2021&lt;br /&gt;
|8&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Scorpion 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|RPG&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania 2021]]&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/SilverballMania2021MEGA&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|6&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|[[StarTrek 2022|Star Trek 2022]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|John Turner&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Stellar Wars 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/StellarWars2022&lt;br /&gt;
|1&lt;br /&gt;
|RPG&lt;br /&gt;
|-&lt;br /&gt;
|Supersonic 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Supersonic2022&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2020&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2022&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|Mike from PinballHelp.com&lt;br /&gt;
|https://www.youtube.com/watch?v=4fBk7Wx4ABU&amp;amp;t=335s&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=62</id>
		<title>BSOS Machines</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=62"/>
		<updated>2023-01-03T14:41:28Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added Centaur-2022&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Machines ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|Status&lt;br /&gt;
|Originating Author&lt;br /&gt;
|Github/Other Links&lt;br /&gt;
|Version&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/BlackJack2020&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Black Knight 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Centaur-2022&lt;br /&gt;
|Released&lt;br /&gt;
|Ryan O'Donnell&lt;br /&gt;
|https://github.com/ryanjpodonnell/centaur-2022&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eight Ball Plus&lt;br /&gt;
|Released&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|https://github.com/BallySternOS/Eight-Ball-Plus&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Fireball Classic&lt;br /&gt;
|In Progress&lt;br /&gt;
|Valor Pinball&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash Gordon 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Tim Murren&lt;br /&gt;
|https://github.com/BallySternOS/FlashGordon2021&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|(Beyond) Future Spa&lt;br /&gt;
|In Progress&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Galaxy 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Galaxy2021&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Lord 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lightning 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Meteor 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Meteor2021&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Scorpion 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania 2021]]&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/SilverballMania2021MEGA&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|[[StarTrek 2022|Star Trek 2022]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|John Turner&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Stellar Wars 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/StellarWars2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Supersonic 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Supersonic2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2020&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|Mike from PinballHelp.com&lt;br /&gt;
|https://www.youtube.com/watch?v=4fBk7Wx4ABU&amp;amp;t=335s&lt;br /&gt;
|1&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=61</id>
		<title>BSOS Machines</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=61"/>
		<updated>2022-12-20T04:41:22Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Machines ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|Status&lt;br /&gt;
|Originating Author&lt;br /&gt;
|Github/Other Links&lt;br /&gt;
|Version&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/BlackJack2020&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Black Knight 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Eight Ball Plus&lt;br /&gt;
|Released&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|https://github.com/BallySternOS/Eight-Ball-Plus&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Fireball Classic&lt;br /&gt;
|In Progress&lt;br /&gt;
|Valor Pinball&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash Gordon 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Tim Murren&lt;br /&gt;
|https://github.com/BallySternOS/FlashGordon2021&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|(Beyond) Future Spa&lt;br /&gt;
|In Progress&lt;br /&gt;
|Brian MacKay&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Galaxy 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Galaxy2021&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Lord 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lightning 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Meteor 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Meteor2021&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Scorpion 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania 2021]]&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/SilverballMania2021MEGA&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|[[StarTrek 2022|Star Trek 2022]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|John Turner&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Stellar Wars 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/StellarWars2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Supersonic 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Supersonic2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2020&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|Mike from PinballHelp.com&lt;br /&gt;
|https://www.youtube.com/watch?v=4fBk7Wx4ABU&amp;amp;t=335s&lt;br /&gt;
|1&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=59</id>
		<title>RPU Hardware Revisions</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=RPU_Hardware_Revisions&amp;diff=59"/>
		<updated>2022-12-07T18:50:49Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Hardware revisions table added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BSOS Hardware Revisions =&lt;br /&gt;
Interfacing the Arduino to the MPU is done using the J5 connector on the board. The J5 connector is at the top of the board and it was originally meant as a diagnostic port. It contains access to all the lines needed except for the IRQ line on the original MPU's. &lt;br /&gt;
&lt;br /&gt;
The hardware interface board has gone through several revisions. The original version interfaced with an Arduino Nano, though due to program space limitations and the need for additional pins current versions use the Arduino Mega 2560 Pro.   &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Board Version&lt;br /&gt;
!Arduino Required&lt;br /&gt;
!Compatible &lt;br /&gt;
Bally MPUs&lt;br /&gt;
!Compatible &lt;br /&gt;
Stern MPUs&lt;br /&gt;
!Compatible&lt;br /&gt;
Williams MPUs&lt;br /&gt;
!Bally Sound Cards&lt;br /&gt;
!Stern Sound Cards&lt;br /&gt;
!Boots&lt;br /&gt;
Original &lt;br /&gt;
Code&lt;br /&gt;
|-&lt;br /&gt;
|BSOS Version 1&lt;br /&gt;
|NANO ATMega328P&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|BSOS Version 2&lt;br /&gt;
|NANO ATMega328P&lt;br /&gt;
|AS-2518-17 &lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|BSOS Version 3&lt;br /&gt;
|MEGA 2560 PRO&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|BSOS Version 4 - J5&lt;br /&gt;
|MEGA 2560 PRO&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Hardware switch&lt;br /&gt;
|-&lt;br /&gt;
|BSOS Version 4 - CPU&lt;br /&gt;
|MEGA 2560 PRO&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|-&lt;br /&gt;
|RPG Version 1&lt;br /&gt;
|MEGA 2560 PRO&lt;br /&gt;
|AS-2518-17&lt;br /&gt;
AS-2518-35&lt;br /&gt;
|MPU-100&lt;br /&gt;
MPU-200&lt;br /&gt;
|System 4&lt;br /&gt;
System 6&lt;br /&gt;
System 6a&lt;br /&gt;
System 7&lt;br /&gt;
System 11&lt;br /&gt;
| -21, -50, -51&lt;br /&gt;
|SB-100, SB-300&lt;br /&gt;
|Hardware switch&lt;br /&gt;
or hold Credit/Reset&lt;br /&gt;
button on boot&lt;br /&gt;
|}&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb|Early BSOS Prototype]]&lt;br /&gt;
== Early Prototypes ==&lt;br /&gt;
The earliest versions of the BSOS system were based on breadboards - manual versions of what would eventually become Version 1.&lt;br /&gt;
&lt;br /&gt;
[[File:Mega2560 Pro.jpg|thumb|Arduino Mega 2560 Pro]]&lt;br /&gt;
[[File:Mega-2560-Pro-Pinout.jpg|thumb|Arduino Mega 2560 Pro Pinout]]&lt;br /&gt;
&lt;br /&gt;
== Version 1 ==&lt;br /&gt;
Revision 1 uses a 74125 buffer chip to interface an Arduino NANO to the MPU. This board works for most Bally -17, -35, and Stern -100, and -200 games, but won't allow the NANO to control the SB300 (like in Meteor and Galaxy).&lt;br /&gt;
&lt;br /&gt;
== Version 2 ==&lt;br /&gt;
Revision 2 uses two ICs (74155 &amp;amp; 74240) to interface more thoroughly. It can talk to the SB300.&lt;br /&gt;
&lt;br /&gt;
== Version 3 ==&lt;br /&gt;
Revision 3 upgrades the Arduino to a MEGA 2560 PRO and works with all Bally/Stern early SS games (NOTE: the MEGA 2560 PRO has a different layout than a typical MEGA 2560. You need a MEGA 2560 PRO with D0-D31 on the same header)&lt;br /&gt;
&lt;br /&gt;
== Version 4 - in-progress ==&lt;br /&gt;
&lt;br /&gt;
== IRQ Line ==&lt;br /&gt;
On the original MPU boards (Altek replacement boards have the IRQ line on J5) a jumper from top lead of R134 on the MPU board needs to be connected to the IRQ pin on the interface board so the Arduino can sense the interrupt line.&lt;br /&gt;
&lt;br /&gt;
== WAVTrigger board ==&lt;br /&gt;
WAVTrigger is a separate add-on board that receives signals via a serial port and can play sounds from an SD card.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Drop_Target_Handler_Library&amp;diff=51</id>
		<title>Drop Target Handler Library</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Drop_Target_Handler_Library&amp;diff=51"/>
		<updated>2022-12-05T02:04:52Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Wrote page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Drop targets on pinball machines can be as simple as a switch for each target and a solenoid to reset those targets. Why would you need a library to handle those? In some machines (early Williams solid state machines), there is a switch that momentarily makes contact as each switch falls, and then another daisy-chained switch to indicate that all the targets are down. In early Bally machines, the switch is triggered when the target is all the way down and a poorly-gapped switch can give multiple readings when vibrations move through the playfield. This library handles those cases and only returns valid closures (one per target per reset). It also keeps track if the targets were dropped in order, and it knows to ignore closures that happen during the reset. &lt;br /&gt;
&lt;br /&gt;
=== Constructor ===&lt;br /&gt;
DropTargetBank(byte s_numSwitches, byte s_numSolenoids, byte s_bankType, byte s_solenoidOnTime);&amp;lt;blockquote&amp;gt;s_numSwitches - total number of drop targets in this bank&lt;br /&gt;
&lt;br /&gt;
s_numSolenoids - total number of solenoids required to reset this bank&lt;br /&gt;
&lt;br /&gt;
s_bankType&lt;br /&gt;
&lt;br /&gt;
* DROP_TARGET_TYPE_BALLY_1 - normal Bally&lt;br /&gt;
* DROP_TARGET_TYPE_STERN_1 - normal Stern&lt;br /&gt;
* DROP_TARGET_TYPE_STERN_2 - Stern &amp;quot;memory&amp;quot; drops (each target can be retracted with it's own solenoid)&lt;br /&gt;
* DROP_TARGET_TYPE_WILLIAMS_1 - extra switch for all targets down&lt;br /&gt;
&lt;br /&gt;
s_solenoidOnTime - number of cycles for solenoid reset (12 is common for Bally/Stern)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
void DefineSwitch(byte switchOrder, byte switchNum); // this function is called for each target's switch&amp;lt;blockquote&amp;gt;switchOrder - zero index (used for knowing if targets were dropped in order)&lt;br /&gt;
&lt;br /&gt;
switchNum - machine's switch matrix index&amp;lt;/blockquote&amp;gt;void DefineResetSolenoid(byte solIndex, byte solChannelNumber); // this function is called for each reset solenoid for this bank&amp;lt;blockquote&amp;gt;solIndex - zero index solenoid number&lt;br /&gt;
&lt;br /&gt;
solChannelNumber - machine's solenoid index&amp;lt;/blockquote&amp;gt;void AddAllTargetsSwitch(byte s_allTargetsSwitch); // this function is only called if the bank has an &amp;quot;all down&amp;quot; switch (i.e. early Williams)&amp;lt;blockquote&amp;gt;s_allTargetsSwitch - machine's switch matrix index&amp;lt;/blockquote&amp;gt;byte HandleDropTargetHit(byte switchNum); // this function is called whenever the game loop sees a drop target switch on the stack&amp;lt;blockquote&amp;gt;switchNum - machine's switch matrix index&lt;br /&gt;
&lt;br /&gt;
Return value - returns a bit mask of all targets down since last hit&lt;br /&gt;
&lt;br /&gt;
* b0 - drop target index 0 is newly down (true/false)&lt;br /&gt;
* b1 - drop target index 1 is newly down (true/false)&lt;br /&gt;
* etc.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;byte CheckIfBankCleared(); // this function is called after a target switch is seen to determine if bank has been cleared&amp;lt;blockquote&amp;gt;Return values:&lt;br /&gt;
&lt;br /&gt;
* 0 - bank not clear&lt;br /&gt;
* 1 - DROP_TARGET_BANK_CLEARED&lt;br /&gt;
* 2 - DROP_TARGET_BANK_CLEARED_IN_ORDER&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;void Update(unsigned long currentTime); // this function should be called in the program's main loop&amp;lt;blockquote&amp;gt;currentTime - the current time in milliseconds&amp;lt;/blockquote&amp;gt;void ResetDropTargets(unsigned long timeToReset, boolean ignoreQuickDrops=false); // call this function to reset the bank&amp;lt;blockquote&amp;gt;timeToReset - machine time in milliseconds to reset; typically CurrentTime + (any delay in ms)&lt;br /&gt;
&lt;br /&gt;
ignoreQuickDrops - set this parameter to ignore drops that come immediately after reset, in case of mechanical failure or Williams&amp;lt;/blockquote&amp;gt;byte GetStatus(); // call to get a bit mask of the current drops down&amp;lt;blockquote&amp;gt;Return value:&lt;br /&gt;
&lt;br /&gt;
* b0 - drop target index 0 is down (true/false)&lt;br /&gt;
* b1 - drop target index 1 is down (true/false)&lt;br /&gt;
* etc.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common Usage ===&lt;br /&gt;
Global variable for each bank:&amp;lt;blockquote&amp;gt;DropTargetBank DropTargets6(6, 2, DROP_TARGET_TYPE_WILLIAMS_1, 50);&amp;lt;/blockquote&amp;gt;Targets are configured in setup() function:&amp;lt;blockquote&amp;gt;  DropTargets6.DefineSwitch(0, SW_LEFT_3_DROP_1);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineSwitch(1, SW_LEFT_3_DROP_2);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineSwitch(2, SW_LEFT_3_DROP_3);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineSwitch(3, SW_RIGHT_3_DROP_1);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineSwitch(4, SW_RIGHT_3_DROP_2);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineSwitch(5, SW_RIGHT_3_DROP_3);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.AddAllTargetsSwitch(SW_3_DROPS_COMPLETE);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineResetSolenoid(0, SOL_3_DROP_LEFT_RESET);&lt;br /&gt;
&lt;br /&gt;
  DropTargets6.DefineResetSolenoid(1, SOL_3_DROP_RIGHT_RESET);&amp;lt;/blockquote&amp;gt;Targets are reset in InitNewBall&amp;lt;blockquote&amp;gt;    DropTargets6.ResetDropTargets(CurrentTime + 200, true);&amp;lt;/blockquote&amp;gt;Switch hits are sent to a handler function&amp;lt;blockquote&amp;gt;    case SW_LEFT_3_DROP_1:&lt;br /&gt;
&lt;br /&gt;
    case SW_LEFT_3_DROP_2:&lt;br /&gt;
&lt;br /&gt;
    case SW_LEFT_3_DROP_3:&lt;br /&gt;
&lt;br /&gt;
    case SW_RIGHT_3_DROP_1:&lt;br /&gt;
&lt;br /&gt;
    case SW_RIGHT_3_DROP_2:&lt;br /&gt;
&lt;br /&gt;
    case SW_RIGHT_3_DROP_3:&lt;br /&gt;
&lt;br /&gt;
    case SW_3_DROPS_COMPLETE:&lt;br /&gt;
&lt;br /&gt;
      if (Handle6Drops(switchHit)) {&lt;br /&gt;
&lt;br /&gt;
        LastSwitchHitTime = CurrentTime;&lt;br /&gt;
&lt;br /&gt;
        if (BallFirstSwitchHitTime == 0) BallFirstSwitchHitTime = CurrentTime;&lt;br /&gt;
&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      break;&amp;lt;/blockquote&amp;gt;Score is added in switch handler, and targets are checked to see if they have been cleared&amp;lt;blockquote&amp;gt;void Handle6Drops(byte switchHit) {  &lt;br /&gt;
&lt;br /&gt;
byte result = DropTargets6.HandleDropTargetHit(switchHit);&lt;br /&gt;
&lt;br /&gt;
  unsigned long numTargetsDown = (unsigned long)CountBits(result);&lt;br /&gt;
&lt;br /&gt;
  if (numTargetsDown) CurrentScores[CurrentPlayer] += PlayfieldMultiplier * numTargetsDown * 100;&lt;br /&gt;
&lt;br /&gt;
  byte cleared = DropTargets6.CheckIfBankCleared();&lt;br /&gt;
&lt;br /&gt;
  if (cleared) {&lt;br /&gt;
&lt;br /&gt;
    // currently no award for clearing in order&lt;br /&gt;
&lt;br /&gt;
    DropTargets6.ResetDropTargets(CurrentTime + 500, true);&lt;br /&gt;
&lt;br /&gt;
    if (Drop6Clears[CurrentPlayer]&amp;lt;4) {&lt;br /&gt;
&lt;br /&gt;
      CurrentScores[CurrentPlayer] += Drop6ClearRewards[Drop6Clears[CurrentPlayer]] * PlayfieldMultiplier;&lt;br /&gt;
&lt;br /&gt;
      Drop6Clears[CurrentPlayer] += 1;&lt;br /&gt;
&lt;br /&gt;
    } else {&lt;br /&gt;
&lt;br /&gt;
      AwardSpecial();&lt;br /&gt;
&lt;br /&gt;
      Drop6Clears[CurrentPlayer] = 0;&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    IncreasePlayfieldMultiplier(30000);&lt;br /&gt;
&lt;br /&gt;
    PlaySoundEffect(SOUND_EFFECT_DROP_TARGET_RESET);&lt;br /&gt;
&lt;br /&gt;
  } else if (numTargetsDown) {&lt;br /&gt;
&lt;br /&gt;
    PlaySoundEffect(SOUND_EFFECT_DROP_TARGET_HIT);&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
...&amp;lt;/blockquote&amp;gt;Targets are updated in loop() or ManageGameMode()&amp;lt;blockquote&amp;gt;  DropTargets6.Update(CurrentTime);&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Where to find it ===&lt;br /&gt;
[https://github.com/BallySternOS/BallySternOS/tree/master/HelperClasses Latest code on GitHub - DropTargets.h]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Software_Resources&amp;diff=50</id>
		<title>Software Resources</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Software_Resources&amp;diff=50"/>
		<updated>2022-12-05T01:34:30Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To facilitate the creation of games, there are a number of templates, utilities, and helper libraries available on the BSOS GitHub site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Audio Functions Library]]&lt;br /&gt;
&lt;br /&gt;
[[Drop Target Handler Library]]&lt;br /&gt;
&lt;br /&gt;
[[Lamp Animation Helper Executable]]&lt;br /&gt;
&lt;br /&gt;
[[Machine Diagnostics]]&lt;br /&gt;
&lt;br /&gt;
[[Pinball Machine Base]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Main_Page&amp;diff=49</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Main_Page&amp;diff=49"/>
		<updated>2022-12-05T01:30:50Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added a link/page for software&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bsos square.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;This is the site for BSOS reference material and related things.... &lt;br /&gt;
&lt;br /&gt;
[[File:Ardino-board01.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Introduction - What is BSOS?]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS System Requirements]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Hardware Revisions|BSOS Hardware Revisions]]&lt;br /&gt;
&lt;br /&gt;
[[BSOS Machines|List of Known BSOS machines]]&lt;br /&gt;
&lt;br /&gt;
[[Software Resources]]&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=30</id>
		<title>BSOS Machines</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=BSOS_Machines&amp;diff=30"/>
		<updated>2022-11-30T16:42:07Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: /* Known BSOS Machines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Known BSOS Machines ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|Status&lt;br /&gt;
|Originating Author&lt;br /&gt;
|Github/Other Links&lt;br /&gt;
|Version&lt;br /&gt;
|-&lt;br /&gt;
|Black Jack 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/BlackJack2020&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Black Knight 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Flash Gordon 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Tim Murren&lt;br /&gt;
|https://github.com/BallySternOS/FlashGordon2021&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Galaxy 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Galaxy2021&lt;br /&gt;
|13&lt;br /&gt;
|-&lt;br /&gt;
|Jungle Lord 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lightning 2023&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Meteor 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Meteor2021&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Scorpion 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverball Mania 2021]]&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/SilverballMania2021MEGA&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|Stars 2021&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Stars2020-21&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|[[StarTrek|Star Trek]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|John Turner&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Stellar Wars 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/StellarWars2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|Supersonic 2022&lt;br /&gt;
|In Progress&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2020&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2020&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|Trident 2022&lt;br /&gt;
|Released&lt;br /&gt;
|Dick Hamill&lt;br /&gt;
|https://github.com/BallySternOS/Trident2022&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|[[Paragon]]&lt;br /&gt;
|In Progress&lt;br /&gt;
|Mike from PinballHelp.com&lt;br /&gt;
|https://www.youtube.com/watch?v=4fBk7Wx4ABU&amp;amp;t=335s&lt;br /&gt;
|1&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Introduction_-_What_is_BSOS%3F&amp;diff=29</id>
		<title>Introduction - What is BSOS?</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Introduction_-_What_is_BSOS%3F&amp;diff=29"/>
		<updated>2022-11-30T14:44:50Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Added more information about the name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BSOS (Bally/Stern Operating System) is a library of functions enabling an [https://www.arduino.cc/ Arduino] or other microcontroller to control a pinball machine. An adapter board interfaces the Arduino to the pinball machine's MPU (Main Processor Unit) either through a diagnostic port or the CPU socket. Then, the Arduino is able to control the machine's lamps, sounds, switches, and solenoids.&lt;br /&gt;
&lt;br /&gt;
With BSOS, people have created new rules for many early solid state [[BSOS Machines|pinball machines]].&lt;br /&gt;
&lt;br /&gt;
The name BSOS originated because the library was written to work with the Bally AS-2518-17 and Stern MPU-100 [https://pinwiki.com/wiki/index.php/Bally/Stern architectures]. Since that inception, the libraries have been expanded to accommodate other architectures, such as Bally's AS-2518-35, Stern's MPU-200, and Williams System 4-7 MPUs. Work is underway to support Atari, Game Plan, and Williams System 11 MPUs as well.&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
	<entry>
		<id>https://pinballindex.com/index.php?title=Introduction_-_What_is_BSOS%3F&amp;diff=28</id>
		<title>Introduction - What is BSOS?</title>
		<link rel="alternate" type="text/html" href="https://pinballindex.com/index.php?title=Introduction_-_What_is_BSOS%3F&amp;diff=28"/>
		<updated>2022-11-30T14:17:00Z</updated>

		<summary type="html">&lt;p&gt;DickHamill: Created page with &amp;quot;BSOS (Bally/Stern Operating System) is a library of functions enabling an [https://www.arduino.cc/ Arduino] or other microcontroller to control a pinball machine. An adapter board interfaces the Arduino to the pinball machine's MPU (Main Processor Unit) either through a diagnostic port or the CPU socket. Then, the Arduino is able to control the machine's lamps, sounds, switches, and solenoids.  With BSOS, people have created new rules for many early solid state BSOS Ma...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BSOS (Bally/Stern Operating System) is a library of functions enabling an [https://www.arduino.cc/ Arduino] or other microcontroller to control a pinball machine. An adapter board interfaces the Arduino to the pinball machine's MPU (Main Processor Unit) either through a diagnostic port or the CPU socket. Then, the Arduino is able to control the machine's lamps, sounds, switches, and solenoids.&lt;br /&gt;
&lt;br /&gt;
With BSOS, people have created new rules for many early solid state [[BSOS Machines|pinball machines]].&lt;/div&gt;</summary>
		<author><name>DickHamill</name></author>
	</entry>
</feed>