(Topic ID: 239045)

Arduino Pinball Controller

By AmokSolderer

6 months ago

Topic Stats

  • 135 posts
  • 17 Pinsiders participating
  • Latest reply 6 days ago by AmokSolderer
  • Topic is favorited by 42 Pinsiders


Linked Games

No games have been linked to this topic.

    Topic poll

    “Are you using the APC and what's the reason if not?”

    • I'm using APC with MPF 0 votes
    • I'm programming APC natively 0 votes
    • I'm waiting for PinMame support 1 vote
    • I have an APC board, but I still have to populate it 0 votes
    • I would only use the APC if populated boards were available 0 votes

    (1 vote)

    Topic Gallery

    There have been 19 images uploaded to this topic. (View topic image gallery).

    DSCN4998 (resized).JPG
    P1020627 (resized).JPG
    IMG_20190706_134344 (resized).jpg
    Mouser (resized).JPG
    IMG_20190701_162857 (resized).jpg
    APC_Audio (resized).png
    TDApin2 (resized).JPG
    TDA_pinning (resized).PNG
    AlphaNumerics2 (resized).jpg
    AlphaNumerics (resized).jpg
    IMG_20190608_165314 (resized).jpg
    IMG_20190607_165511 (resized).jpg
    IMG_20190607_165430 (resized).jpg
    IMG_20190605_121203 (resized).jpg
    P1020494 (resized).JPG

    You're currently viewing posts by Pinsider amoksolderer.
    Click here to go back to viewing the entire thread.

    #1 6 months ago

    I have designed an Arduino based pinball controller for use in Williams games from System6 to System11c.

    This board will replace all CPU, Power driver and Music/Speech related boards - an interface for hardware extensions is also present.

    At the moment this board cannot be used as a pure replacement as it cannot use the original EPROM software, instead it is meant for people who want to program their own games or add some hardware toys. I have therefore programmed some kind of pinball operating system which takes care of the hardware related stuff and offers an API for the game programmer to work with.

    The board is quite cheap (well below 100€) and has no special components like FPGAs on it, so it is quite easy to build it by yourself.

    There's a catch of course: I don't want to earn money with this project, which means I'm not going to sell boards or anything else to you, so you don't have much choice except of building it by yourself. However I put all the necessary data to my project page at GitHub, together with a lot of information to make it as easy as possible.


    It's still a lot of work to do the code for a new game and I'm some how fed up with doing it all by myself. Therefore my hope is to establish a small community of people who have fun designing new game rules and who just needed a base to start from.

    So, if you are interested in this project, please give me some feedback.

    The photo below shows the APC in my Pinbot

    APC_Pinbot (resized).JPG
    #5 6 months ago
    Quoted from zacaj:

    Why system 6 and not 3 and 4?

    Hmm, mainly because I don't know any System3 or 4 games and just forgot them.

    However, after a first glance at the schematics I think you're right and they should work as well.
    I see a difference in connector 1J4. Apparently, the System3 and 4 games don't have a pin for the 'Memory Protection' switch and no GND pin. This would require some kind of simple cable adapter.

    But I'm a bit confused about the 12V supply of the CPU board. In the schematics of the Flash CPU (System6) pin 9 of 1J2 is labeled with '12V unreg', but in the connector overview (attached below) it is mentioned that this pin has only 'unregulated 5V' (I guess it's a five, the scan is not very good).
    In the 'Disco Fever' schematics it is consistent, schematics and connector overview state that there's only 5V unregulated present at this pin, but I wonder how they want to exceed the threshold voltage of the 6.8V zener diode they have there to release the Reset signal as soon as the voltages have risen sufficiently to ensure a stable operation of the 5V regulator.

    If you have a System3 and 4 game at hand, could you please measure the voltage at pin 9 of connector 1J2? The APC needs 12V there to supply it's audio amplifier, so it would be good to know whether they're there or not.

    Thanks in advance

    Flash (resized).png
    #7 6 months ago

    I found the schematics of a System3 power supply board and it looks like they spared the bridge rectifier, but used only TWO diodes to rectify the 9.3VAC coming from the transformer. That would mean the voltage at pin 9 of 1J2 should be in the range of 6.3VDC (half of System7) which is not enough for the APC.
    The easiest way would probably be to just use a cheap 12V power supply and a cable adapter to feed this voltage to 1J2.

    Quoted from zacaj:

    If you only need it for the sound card though, it shouldn't matter. Sys3-7 all have a dedicated external card they can use

    That's true, but the goal is to replace the sound card also and to be able to spice up the sound of these old machines a bit.

    #8 6 months ago

    I found the schematics of a System3 power supply board and it looks like they spared the bridge rectifier, but used only TWO diodes to rectify the 9.3VAC coming from the transformer. That would mean the voltage at pin 9 of 1J2 should be in the range of 6.3VDC (half of System7) which is not enough for the APC.
    The easiest way would probably be to just use a cheap 12V power supply and a cable adapter to feed this voltage to 1J2.

    Quoted from zacaj:

    If you only need it for the sound card though, it shouldn't matter. Sys3-7 all have a dedicated external card they can use

    That's true, but the goal is to replace the sound card also and to be able to spice up the sound of these old machines a bit.

    #10 6 months ago

    Just for your information: there is a vivid discussion ongoing in the german pinball forum (also with Jan) about how to add support for PinMame and the Mission Pinball Framework to the APC, which would require a PC (or Raspi) to be connected to the APC via USB.
    With PinMame running on the PC it would be possible to use the original Williams EPROM software and MPF would ease the development of homebrew game rules.

    Albeit this is mainly a software topic, I'm thinking about adding an analog audio input to the APC. With the audio output of the PC being connected to this, the audio amplifier of the APC could be used to play sounds generated by the PC on the pinball's loudspeakers.

    I'll send an update when a decision is reached.

    Additionally I'm going to add System 3 and 4 games to the list of supported platforms (under certain preconditions). Thanks to zacaj for pointing this out.

    #11 6 months ago

    By the way:

    Quoted from AmokSolderer:

    That would mean the voltage at pin 9 of 1J2 should be in the range of 6.3VDC (half of System7) which is not enough for the APC.

    This was bullshit of course (never drink beer while replying to technical threads). With 9.3VAC you have an amplitude of more than 13V and if you subtract the threshold voltage of the rectifying diodes you end up slightly above 12V.

    That means, if I didn't miss anything the only adaption needed for System 3 and 4 boards to work with the APC is to add a small cable adapter to connector 1J4.

    #12 6 months ago


    I have generated a Base Code which should run on all machines with minor modifications and is a good base for own game code.

    My next task is to implement an API to control the APC via USB which would enable PinMame and MPF support.

    Furthermore I'm not going to add an audio jack to the board. I've tried it out and the signal strength coming from the PC is too weak to get a decent audio quality. To improve it one would have to add more gain to the pre-amplifier which is just used as an active filter at the moment. But if you have to solder anyway you can also add the audio jack by yourself - or spend 5 bucks to buy a cheap amplifier board from china.

    That means the board stays like it is and I'm about to get a quote from a german board manufacturer. When we know the price you can still decide whether you want one. Or does anyone know a suitable manufacturer in the US?

    And as requested the Gerber files for the Mask and Silk Layers have been added to the Layout section.

    #14 6 months ago

    The quotes from the PCB manufacturers have arrived. I have received quotes from the german manufacturer IBR/Ringler and from Seeed in China.
    One big difference is that IBR charges 75€ for preparation (exposition masks and so on). If the board doesn't change afterwards you can order more without having to pay the preparation fee again, but with the first order you have to pay it. I'd add 5€ to each board to compensate for this. This way I'd be even after 15 boards.

    For 5 boards the price at IBR would be for you:

    127€ (Boards) + 7€ (shipping) = 134€ : 5 = 27€ (per Board) +5€ (preparation cost contribution) + 10€ (shipment to the US) = 42€

    The same for 10 boards:

    158€ (Boards) + 7€ (shipping) = 165€ : 10 = 17€ (per Board) +5€ (preparation cost contribution) + 10€ (shipment to the US) = 32€

    Seeed doesn't charge any preparation fees, but shipment is more expensive.

    5 boards from Seeed:

    71€ (Boards) + 34€ (shipping) = 105€ : 5 = 21€ (per Board) + 10€ (shipment to the US) = 31€

    10 boards from Seeed:

    96€ (Boards) + 45€ (shipping) = 141€ : 10 = 14€ (per Board) + 7€ (shipment to the US) = 24€

    Of course, there is a certain risk of a shipment from China getting lost. Additionally every now and then shipments like this are stopped by the german customs, which will add a lot more to the price. Furthermore I did some businness with IBR some years ago and I know they're delivering good quality.
    I'd therefore prefer to order from IBR, which would mean a price per board of 42€ (roughly $38) for you if we just order 5 boards.

    So please drop a line if you want a board for this price. The more people are interested the cheaper it get's of course.

    #16 6 months ago

    In the german Forum someone came up with https://jlcpcb.com/
    Apparently they charge only 32€ for 5 boards including shipping
    Shipping takes a while, but he has ordered from them several times and the boards were of good quality.

    For us this would mean that shipping the boards from Germany to the US would cost more than the boards itself, which makes no sense.
    Therefore I propose the following: I'm going to order 5 of them for Germany only. Then we check whether the boards are OK and if they are I'd be very grateful if one of you would order 5 for the US. This person would then save the shipping cost and it would probably still be cheaper for the rest of the US guys. Additionally this company probably knows how to ship stuff overseas while minimizing customs trouble.
    At the moment I have 3 ordered boards from the US (4 if Pinash confirms his interest), but I think there will be a lot more as soon as some of you have confirmed it to work.

    What do you think about this?

    #18 6 months ago
    Quoted from Cheddar:

    I can handle the us orders for you

    Thank you Cheddar, I appreciate that.

    I have just placed the order and for some reason they haven't charged the shipping costs, because I just paid $24.
    I'll send an update when the boards have arrived.

    By the way I'm just implementing the new USB API to control the APC via USB commands. So hopefully we will have PinMame and MPF support soon.

    1 week later
    #19 5 months ago


    System11c displays and USB command mode are working.
    Next task is to add support for System7 displays as our first machine to try PinMame on will be a Jungle Lord.

    Still waiting for the boards.

    IMG_0120 (resized).JPG
    1 week later
    #21 5 months ago

    The boards have arrived and they look great.
    Now it's up to you to decide whether you want to order now or wait for the german guys to clean the pipe.

    I already implemented an additional minor HW change which makes the use of pre Sys11 displays a bit easier. It's just an additional resistor and a transistor. I still have to change the documentation accordingly, but the design data is up to date.
    I got the idea from the discussion in the german forum and it is of course possible that more improvements come up when more people start using the boards.

    However, it seems to be much more difficult to get the DIL version of the 74FST3244 devices in the states, so I'm thinking about changing the layout to an SMD footprint.

    What do you prefer, should I change the layout or do you want to look for the DIL version? I think the german vendor also ships to the US, but of course it will be more expensive. I used this offer:

    ebay.com link » 5x Idt74fst3244p Octal Fet Bus Switch Idt
    P1020494 (resized).JPG

    #23 5 months ago
    Quoted from jabdoa:

    Could you put both the SMD and the DIL footprint onto the board? That would allow assembly based on availability of parts.

    I gave it a try, but the result always turned out to be quite messy. So I did some research about the replacement of the 74FST3244.
    There's one direct replacement 74cbt3244 which seems to be still in production, but not in a DIL package.

    The second alternative is the 74BCT760. This is not a direct replacement, since it's not a bus switch but an open collector buffer. Electrically this is IMO the better solution, as it provides a clear separation between the switch matrix and the special switches. This is the kind of device I had in mind when I designed this stage. The bus switch was just a second choice when I couldn't find an open collector buffer.
    And even better: the DIL version of this device is available at DigiKey.

    Hope this helps.

    2 weeks later
    #25 4 months ago

    Hi Mark,

    thanks for your Feedback.

    I hope we will have first results witch PinMame soon. Luckily there is an expert living nearby who has just built his own APC board and is now going to make PinMame work. Last time we met he was almost able to run my Jungle Lord. Lamps, Coils and Displays were already working - just some issue with the switch numbering prevented us from starting a game.

    Jan was also here and we tried to let MPF run the APC via the USB connection. The results were quite promising so I hope to be able to do my new Rollergames rules in MPF.

    The main technical discussion ist currently taking place in the german forum, but I'm trying to keep you posted from time to time.

    However if you want to join the discussion I could ask the others to move it to Pinside (at least partly).


    #27 4 months ago

    If you wrote the german sentence without any help from your wife then you're only lacking german Umlaute on your keyboard to be perfect.
    The link to the german forum is:


    You're welcome to join our discussion.


    1 week later
    #31 4 months ago
    Quoted from legtod2:

    May I suggest that the USB communication also enable command for an external device to control a DMD display or command to talk to a different sound controller, or commands to an addon LED controller (more LIGHTS or topper).

    The USB interface is still under heavy discussion as we're currently implementing some changes. It's not yet complete, but you can see the latest dev version here:


    Basically you could also use the APC alone to control additional HW - there is this 'Hardware extensions interface video' link on my GitHub page which is showing the use of an additional LED Controller and as you suggested, the USB interface could be used also. At a later stage, I might expand my SW to also support stuff like DMDs and so on, but at the moment most people seem to be interested in using MPF. Therefore they need to have an external master PC or Raspi and then it's probably easier to let this device control additional HW also.

    In the end it depends on the demand. If some guys are starting to use the APC alone, I'm going to spend more of my time for supporting my own API, but at the moment I'm lucky to have very competent guys working on APC support for MPF and PinMame, so I'm doing my best to keep the pace.

    Quoted from Tranquilize:

    Just ordered some boards to Canada. Thanks so much for your hard work on this!

    You're welcome. Feel free to participate by pointing out unclear parts or gaps in the documentation for example. This is a work in progress and every helping hand is welcome.

    #34 4 months ago

    Hi Lance,

    ICs and resistor networks look good.

    I think you can skip the lines 35 - 37 of your shopping list as they have a 2.54mm pitch and a lock.
    The rest seems to be OK, but let's try to sum it up, just to be sure:

    P1 -> 1x6 male pinheader with 2.54mm pitch
    P2 -> 1x7 male pinheader with 2.54mm pitch
    P4 -> 2x18 male pinheader with 2.54mm pitch
    P5 -> 1x8 male pinheader with 2.54mm pitch
    P6 -> 1x2 male pinheader with 2.54mm pitch
    P7 -> 2x3 female pinheader with 2.54mm pitch
    P8 -> 1x6 female pinheader with 2.54mm pitch
    P9 -> 1x4 male pinheader with 2.54mm pitch
    P11 -> 2x8 male pinheader with 2.54mm pitch
    1J8 -> 2x13 male pinheader with 2.54mm pitch

    That should be all with a pitch of 2.54mm, the rest has a pitch of 3,96mm.

    3 times 1x4 male pinheader with 3.96mm pitch and locking mechanism
    20 times 1x9 male pinheader with 3.96mm pitch and locking mechanism
    1 times 1x9 male pinheader with 3.96mm pitch and locking mechanism (in the BOM this is still a 9 pin connector but your board will already have the 12 pin)

    If you only want to use your board in Sys9 and Sys11 machines (like your Millionaire) you can skip the Sys3 - Sys7 connectors. That means six 9 pin connectors less and the 12 pin I mentioned can still be a 9 pin. You can see it on the board when there is an inner and an outer connector then the inner one is for Sys9/Sys11 and the outer one is for Sys3-Sys6. If there is only one then it is used for both. I'm going to add a table to my documentation to make it more clear.

    The 74FST3244 is a real pain in the a*, your eBay link is about the QSOP package which cannot be used. Apparently the DIP version of it is available only in Germany. That's why I'm trying to get rid of it by using a 74BCT760 instead, which is avaiable from Mouser in a DIP package. The problem is that nobody is using it yet so there is a small risk that it's not going to work as expected. Mark is the first to try, so I would like to wait until he has confirmed it to work. I'm afraid it's up to you to decide whether to risk it or wait a bit. Your boards will probably need more than two weeks to arrive anyway.

    Hope I didn't make it more confusing.

    Quoted from Nihonmasa:

    Do you provide the BOM?

    The BOM is linked in the Wiki on my GitHub Page.
    I'm sorry, but I don't sell any boards. I ordered 5 to check my Gerber files and the quality of the manufacturer, but these boards are already gone.
    If you order at https://jlcpcb.com/ like I did, the price for 5 boards is below 40€ including shipping, which IMHO is quite a bargain. Of course it would be great if you could offer the remaining 4 boards to others.

    Thanks in advance


    #35 4 months ago

    By the way, we're using the Molex 26-48-1245 connector (Mouser# 538-26-48-1245). I like this connector as it sells in a length of 24 pins and you can just cut it to the length you need. Additionally the clamping mechanism of these connectors is not that strong which is a big advantage when you want to change a board.

    #41 4 months ago
    Quoted from Tranquilize:

    Hey Frank, thanks for all of your help!

    Thanks for your patience. If my documentation would be finished you wouldn't have to ask most of these questions.

    Quoted from Tranquilize:

    Can you tell me what I would want to watch out for in the way of strange behaviour?

    This 74BCT760 is for connecting the special solenoid switches to the switch inputs as some kind of 9th row of the switch matrix. That means if things go south with this IC you're going to have switch problems. But I checked the datasheet several times and if I'm not totally blind then this thing will work. Worst thing that could probably happen is that slings and pop bumpers double fire occasionally, but this could then be fixed by changing the value of RR1.

    Quoted from Tranquilize:

    If you could give it another quick browse to be sure I have correct 760 chip and the correct values for the 2.54 and 3.96 headers, that would be awesome.

    Looks good to me. Don't be surprised when you find pads for an additional transistor and a resistor on your board. This is a new feature for pre Sys11 games so you can just ignore them.

    Quoted from legtod2:

    As the APC ages, some things can go wrong. System diagnostics would be handy to test especially after everything is all nicely soldered to the board.

    Alas, there's no way for the APC to detect whether lamps, coils and so on are working properly - at least not without a huge effort in terms of circuitry. As Jan already wrote, there are several test modes available, but in the end it's up to the user to judge if everything is OK. However, the self diagnostics we all know from the old original boards couldn't do that either, as their self tests were mainly to check CPU related stuff like memories. This is something we don't need to care about any more, because today all this stuff is integrated in the Arduino.

    Quoted from legtod2:

    I would love to have these boards in a prebuilt state (All soldering done) so I could experiment.

    Yeah, this is a problem, because at the moment you need some hardware and coding skills to use the APC. I wouldn't mind if someone would build the boards and sell them, but at the moment it's probably too early for that.

    #46 4 months ago
    Quoted from Tranquilize:

    My boards came in today!

    Wow, that was fast.

    Have you seen that there's a step-by-step assembly instruction in the Wiki? Might save some trouble.

    #49 4 months ago
    Quoted from Tranquilize:

    I ended up with a ton of errors.

    If you clone my repository you should get a directory named APC with all the .ino files inside. You have to compile APC.ino, the rest will be included automatically as long as it is in the same directory.
    But for assembly step 1 you should start with the Soundcheck anyway. There is a directory APC_Soundcheck on GitHub in DOC/Software which contains two files APC_Soundcheck.ino and Sound.h. In the Arduino IDE the main .ino files has to have the same name as the directory, so open APC_Soundcheck.ino in your Arduino IDE and try to run it.

    Quoted from Tranquilize:

    can you publish a photo of your board diagram that includes the Xs on the pins that should be removed?

    The picture is already online but not yet published. You can find it on GitHub in my working branch AmokWork -> DOC -> PICS -> APC_Connector.png.

    Quoted from Tranquilize:

    I apologize in advance for my ignorance.

    No reason to apologize. It just shows me howto improve my documentation.

    #52 4 months ago
    Quoted from Tranquilize:

    I had Tool playing on my machine with a sound playing every ten seconds

    Congratulations, that means you have already completed the most difficult soldering tasks.

    The sound quality should be quite good. That means if you hear some kind of noise or distortion than something is not right. A bit of static is normal of course, but it should only be audible when you turn up the volume without playing any sound. This will vanish if you later decide to use the digital volume control, because then the audio amp will be muted when no sound is played.
    With the old boards you sometimes had quite some distortion depending on lamp and display activity - this should also be gone now.

    Quoted from Tranquilize:

    On a side note, as you can see in the image, some of my connectors (volume and speakers) were different than your schematics and the Williams Millionaire manual schematic

    Sorry, but I don't see it, can you post a close up of the connectors? Basically your Millionaire should have the same connectors as my Pinbot and I didn't have any problems.

    Quoted from Tranquilize:

    EDIT: Displays worked!

    You're soldering faster than I'm able to reply.
    For the next step you need to use the normal APC.ino software instead of the Soundcheck, because the latter doesn't support the switches.

    I'll check for the BOM issues. Thanks to you there will be a new BOM coming soon with all parts having Mouser ordering numbers, but until now it's just in the AmokWork branch. I'm going to merge it to the master branch soon, but first I have to implement the new version of the USB API.

    Glad to see you're making so much progress. You have already been of great help for this project.

    #54 4 months ago
    Quoted from Tranquilize:

    The sound had a slight hiss and some tiny crackling, nothing too noticable.

    Could also be the old volume control knob. As you now have control of the switches, you could try to unplug the connector for the old volume control and use the digital one instead. For this you have to enter the System Settings then press Advance until you reach 'Speaker Volume'. The System should play the MUSIC.BIN file and you can increase the volume by pressing the 'Game Start' button.
    When there's still some crackling take a look at your speakers. I didn't realize the speaker of my JL was damaged until I tried the APC in this machine. The speaker was still good enough for the old Sys7 sounds, but it sounded lousy when the APC was playing real music.

    Quoted from Tranquilize:

    It turned out to be what looks to be J5 on the sound board.

    Ah OK, I thought you were referring to the connectors of the APC. The Sys11 Sound configuration was quite messy, because they changed it several times over the years.

    Quoted from Tranquilize:

    I would get a switch repeatedly firing without clear text on the display

    When does this happen? Every switch being triggered should leave a message in the 'Switch Edges' test.

    #57 4 months ago
    Quoted from Tranquilize:

    Should I replace the amp?

    It has a temp sensor, so it should protect itself. Try it again when it has completely cooled down. Probably something is wrong with your digital volume Control, so switch the setting back to zero and use the knob for starters.

    Quoted from Tranquilize:

    The display works, but the far left digits do not light up

    That's a bad soldering joint at U14.

    Quoted from Tranquilize:

    Is this more to do with code than hardware?

    Can you make a photo of this? It it only in the lower display row? Then you have to change the Display Setting to Pinbot.

    Quoted from Tranquilize:

    Each of them locks on coils an/or flashers... Sounds like I may have messed up while building part of the board... Any help would be appreciated.

    This is probably not a big deal, but the problem is that I'm busy for the next 6 hours at least. Don't worry - we're going to fix this later.

    #59 4 months ago

    Hi Lance,

    Quoted from Tranquilize:

    Thanks again for your help! I'm in no rush, so if you're busy, I completely understand.

    No problem, I'm back, slightly drunk but hopefully still helpful.

    Quoted from Tranquilize:

    I set the music level at 00 and still just get crackles. I think something might be blown

    That's strange. Like I wrote the IC has a temperature protection, so it won't die from overheating. That means if it's really blown than something has killed it and we should find out what it was before we put the next IC at risk. Most probably it's a short somewhere.
    Let's first measure your speaker. Please unplug the speaker connector from the APC (10J2) and measure the resistance of the APC pins and the speaker cables to GND. None of them must have a resistance of less than 1Kohm to GND.
    Then try whether the amp IC still get's hot with the speaker connector and the volume connector (10J4) removed and the digital volume set to 00.
    Also check the voltage at pin 3 of the TDA. This is the volume control, which means the voltage at this pin should be 0V when the voltage control is set to 00 and then rise when you increase the setting until it reaches 5V at a setting of 255. After that, set the volume setting back to 00 and connect the manual volume control (10J4). When you turn the knob, the voltage should vary between 0V and 5V but it must never exceed 7V.
    Also note that the manual volume control must always be unplugged when using the digital volume control, but even if it's not it shouldn't damage anything.

    Quoted from Tranquilize:

    some of the second row displays strange artifacts.

    This is due to a wrong display setting. The default setting of the APC is for both rows having alphanumerical displays. That means the APC treats your lower display row like alphanumericals which leads to these artifacts.
    It's the first entry in 'System Settings', the default is '4Alpha+Credit', press 'Start' to change it to 'Sys11 Pinbot'. After that proceed to 'Exit settings' which should write this setting to your SD Card. After that the artifacts should be gone (if not do a power cycle).

    To be continued ...

    #61 4 months ago
    Quoted from Tranquilize:

    the voltage on the volume control is a constant 5v, regardless of the volume plug or not.

    That's good news, because it means that it's just your volume control causing the problems. Apparently the control voltage is stuck to the maximum volume which leads to distortion and overheating of the amp. Please unplug the manual voltage control (10J4), remove R70 and measure the voltage again. If it's still stuck to 5V then you have a short to 5V somewhere near C4, R76, C10 or even at pin 3 of the TDA itself. If it's close to 0V now, reconnect 10J4 and you should be able to use your sound with the manual voltage control. In this case check the soldering joints of Q5 and R68.

    Quoted from Tranquilize:

    I did change the display to pinbot and F14, but both display some minor artifacts in the lower row. See Pic below.

    Look good to me. The lower display row of your Millionaire has only numerical displays and that's how it looks when the APC tries to show characters on them. But you're only going to see this in the settings, because in the game mode the lower row is only used for numbers.

    The next steps involve the use of your logic probe, so let's first make sure that we're talking about the same thing. Your logic probe should have a GND and a supply cord, each with a clamp. A tip of course and two LEDs (probably red and green), one for high and one for low logic level.

    Unplug connector 1J1 of the APC, then connect the supply clamps of the logic probe to +5V and GND on the power board of your Millionaire and power it up - both of your LEDs should be unlit as well as the Player 1 and the Player 3 display. Now try all pins of connector 1J1 with your logic probe. Both LED should light up which means that the pin is toggling. I expect that to happen at every pin except pin 7, as this is the one responsible for your leftmost Display column. If no LED is lit at this pin you have a bad solder joint at your connector, if only the high level LED is lit, the bad joint is probably at pin 2 of U14.

    Try the logic probe also on all pins of the Solenoid Drivers (1J11, 1J12 and 1J19) with the connectors unplugged. Both LEDs should stay off, but as you said all coils at one solenoid connector were being activated I expect the low Level LED of your logic probe to be lit at these pins. It would be important to know whether this is the case for all pins of all solenoid connectors or just for some of them.

    Cheer up - we're making progress. I'm confident you're Millionaire is going to work soon.


    Edit: fixed some typos

    #64 4 months ago
    Quoted from Tranquilize:

    Sorry, I was counting pin 5 as pin 3 The voltage is not at 5... was pin 5.

    OK, I've attached a pic of the TDA pinning, because we should be very clear on what pins we're talking about. I also added a picture to the docs which should help to identify the connectors:


    For the following test you should unplug the speaker connector (10J2) in order to protect the amplifier.

    As your problems started with the digital volume control it's probably a good idea to disconnect it. As mentioned above you can do that by removing R70 on the APC board. After that reconnect the volume connector (10J4 or 1J16 for Sys11), power up and look what happens to the voltage at pin 3 of the TDA when you turn the old volume control knob. Can the voltage be smoothly adjusted this way or do you read sudden jumps to 5V?
    If this looks good you should be safe to try the sound again. For this you should adjust the volume to a low level (low voltage at pin 3) and reconnect the speaker connector. Now play some music and try if the manual volume control works.
    Depending on your results we can decide how to proceed.

    Good luck


    TDA_pinning (resized).PNG
    #66 4 months ago
    Quoted from Tranquilize:

    The pin I'm testing is the third from the bottom, which is the second one in the front row (facing inside the board). That is the one that appears to match the diagram.

    Sounds completely correct and I might be getting paranoid, but I've attached another picture anyway - just to be very sure.
    Please check the GND of your multimeter also, the 'Solenoid GND' connector of the APC is a good place to connect it to. Pardon my scrutiny, but you can get all kinds of strange results if the ground connection is bad.

    However, if all the above is correct and the voltage at pin 3 of the TDA is still as you've described then please measure the same at pin 2 of the voltage control connector (10J4). Can you now use the pot to control the voltage?

    TDApin2 (resized).JPG
    #68 4 months ago
    Quoted from Tranquilize:

    We are on the same page with pin 3 on the TDA .

    I guessed so

    But the result of all of this: you have a break between both pins and it is probably a loose connection at R76 - Please check the solder joints.
    To check the connectivity, disconnect the volume connector J4 again, do not power up the board and measure the resistance between pin 3 of the TDA and pin 2 of J4. When everything is right, the resistance should be 300K.

    #70 4 months ago

    Just like this or did you resolder it?

    #72 4 months ago

    That measurement is fine indeed.

    But the sound has worked before, so we're dealing with a loose connection which means it can be OK in one second and then gone. You're close, it has to be there somewhere. May be try to apply some pressure to the resistor and remeasure it. Or just try to resolder it and then check again if you're able to control the voltage at pin 3 of the TDA with the pot (reconnect J4 of course

    #75 4 months ago
    Quoted from Tranquilize:

    Is it also possible that I shorted the amp just by touching it to metal? I don't think this occured, but it is possible. I could replace the amp as I do have one spare...

    I don't think so. For some reason you cannot control your voltage at pin 3 any more. From the voltage readings you get it sounds like the pin is not connected and floating, which would result in random volume levels with a strong spike after turn on (which is what you see). As long as we're not able to adjust the pin 3 voltage the amplifier cannot work properly.

    Could you please measure the voltage between both pins pf R76 with the same setup as above and see if the voltage changes when you turn the pot?

    #77 4 months ago
    Quoted from Tranquilize:

    This must be a pain in the ass!

    Oh yes it is, but that's not your fault. You just have one nasty problem there.

    However, you should be able to mute the sound with the pot, so something's still not right there.

    And let me rephrase my latest statement. Of course it is also possible that the pin 3 of the TDA itself is faulty and causing a current which spoils the voltage at this pin. But I don't just want to replace it because these pins don't die easily and I don't want to put the next amp at risk. We have to find the root cause first.

    So please disconnect your speaker again, then try to unsolder pin 3 of the TDA and lift it until it has no electrical connection to the pad any more (I know this wont be easy). Then try the standard measurement again (adjusting the voltage with the pot), but measure the voltage at the pad now being empty, not at the lifted pin.

    #79 4 months ago
    Quoted from Tranquilize:

    and the solder joint facing the inside mirrors pin 3 of the TDA, which was 2.6 and dropping.

    With pin 3 being lifted? That would mean the TDA is not damaged.

    OK C10 is the last device left, please remove it and try again.

    #81 4 months ago
    Quoted from Tranquilize:

    It looks like the issue may not be the TDA as the votage was still high (1.9v) when I pulled that pin and tested the board with the pot set to zero. It also had spiked voltage when I turned the machine on

    Do I get you right that with pin 3 lifted you get the correct voltages on the outer pin of R76, but the same strange voltage readings at the inner pin of R76?

    #85 4 months ago

    Hi Lance,

    it's still getting more strange. Either we have some misunderstanding or things are really weird on your board. To prevent the former let me just summarize what we did and what the results were. I have attached a picture of the circuit we're dealing with. As you can see this is nothing fancy.

    At the beginning you removed R70 to disconnect the digital volume control. After that it's just the pot, a bit of RC filtering and the input pin of the TDA. For clarification I have named the input side of R76 (the pin closer to the rim of the board) as 'Node A' and the other pin of R76 (which is connected to pin 3 of the TDA) as 'Node B'.

    Our goal is to use the pot to control the voltage at Node B, but for some reason you can only control the voltage at Node A, but not at B.

    At first you checked R76 to ensure that the electrical connection between Node A and B is OK. You used a multimeter to measure the resistance between A and B and found it to be in the range of 300K which is fine. You even measured this resistance between pin 3 of the TDA and pin 2 of J4 to check the corresponding board traces also.

    As the voltage at Node B was different from Node A and R76 was fine, it had to be a current through R76 causing a voltage drop at this resistor. But this current has to come from somewhere so we tried to exclude the possible candidates. First you lifted pin 3 of the TDA and after this didn't help you also removed C10.

    However, when I got you right then all of this didn't help, the voltages at Node A and Node B are still not equal, right?

    That means we still have a voltage across a resistor and according to ohms law this requires a current. But since you have removed all electrical connections except the resistor itself there should be no path left for the current to use and that means there has to be an unwanted current path from Node B to somewhere else.

    Please check the pads of R76, C10 and pin3 for possible shorts. It might be a barely visible droplet of solder, so try to use a magnifier. And be sure to check the pad of pin 3 also on the top side of the board, may be something is hidden there. Try to measure the resistance between Node B and it's neighbours as well as GND, +5V. None of these values should be less than the value of R76, because this should be the only way out for the current.

    Even though it is extremely unlikely, it might also be a board manufacturing problem. We know, that the design and layout is working, because several people are using it already, but it might be an issue with your particular board. Therefore please take a close look at the board traces also.

    I'm afraid that's all I can do for you from the technical point of view. If all of this doesn't help we can try to setup a Skype meeting to look together.

    Good luck


    APC_Audio (resized).png
    #87 4 months ago
    Quoted from Tranquilize:

    but I noticed the pot is dirty and kept sending voltage spikes.

    Yeah, but that's normal with the old pots. In the end I would recommend to use the digital voltage control anyway, but before we have to find out what causes your problems.

    Like I wrote above, the critical point is that you have measured different voltages at Node A and Node B. This can only have two possible reasons, a damaged R76 or board trace (which is not the case according to your measurement) OR a current through R76.

    Let's assume there is an unwanted current path to Node B and it's so well hidden that you're not able to find it. Then let's try to avoid Node B by building a new one. Just put R76 vertically on the pad belonging to Node A without the second pin touching Node B, do the same with C10, solder it vertically on the GND pad without the second pin touching Node B. Then simply connect the lifted pins of R76 and C10, power up and measure the voltage at Node A and the two connected lifted pins. If your problem has something to do with the board trace then you should now be able to control the voltage at the connected lifted pins with the pot, because we avoided the trace completely.
    If it works you can also lift pin 3 of the TDA again to disconnect it from the pad and use a wire to connect it to the lifted pins of R76 and C10.

    #90 4 months ago
    Quoted from Tranquilize:

    Should I be getting 10v from the supply?

    I have to study the schematics to see if that's possible. I never had any problems with my Pinbot though, which is the same generation as your Millionaire. However, 10V at the volume pin could possibly fry the amp, as the max voltage at this pin is specified with 7V.

    Quoted from Tranquilize:

    I'm in the process of lowering the volume of the sound file by 10db to help with the speakers drawing so much power.

    I wouldn't do that, because it'll cost you some audio quality. Just disconnect the pot by unplugging J4 and just use the digital volume control instead. It cannot cause any damage, as it applies 5V max. I use a volume setting of 35-40 and never got any problems. The worst thing to happen is that the amp gets too hot and mutes the speaker, but it's not giong to be damaged by this. If this happens, you can just apply a heatsink to it's back. I never had the need to do it, but that's the reason the amp is sitting at the rim of the board.

    Concerning your solenoid issues. Are all three solenoid connectors (J11, J12 and J19) affected or is it only one?
    If you don't want to use your logic probe as I described in the assembly help wiki you could also use your flippers to check. There is probably an extra two pin connector for pin 1 and 2 of 1J19 (APC connector 2J12) - this is for the flippers. The advantage is that they wont suffer from being acitivated permanently, so you can use them to probe whether the coil drivers of a certain connector are powered or not. Just connect the small connector to the one you want to probe and try the flipper buttons, if the coil driver is active then the flippers will work.

    2 weeks later
    #93 3 months ago
    Quoted from Snux:

    If this works well with MPF

    I have just finished the MPF Tutorial and it works well with the APC. We still have to update the display and sound commands in the API, but lamps, switches and solenoids are already doing well.

    Quoted from Nihonmasa:

    Getting the BOM parts is a nightmare in Switzerland...

    No Digikey, Mouser or Reichelt in Switzerland?

    #95 3 months ago

    Depending on what pinball generations you want to use the APC with, you could cut the price by not assembling all Molex connectors. In the BOM some connectors are marked with 'Only needed for Sys9 - Sys11' or 'Only needed for Sys3 – Sys7', which means that you don't need these connectors if you don't want to support that kind of games.

    Additionally you could check the shipping costs of Reichelt.de which is the cheapest electronics retailer I know of. This would have the additional advantage that you could use my Reichelt shopping list. I think Snux also used Reichelt, because they were still cheaper than the rest even when shipping to the UK. Alas, they don't sell all the required parts, so you still have to order the Molex connectors, the 74HCT154 and the 74BCT760 somewhere else. And the Arduino of course, but this you can order from china.

    Concerning the boards you could ask the dutch guys from post #88 to sell one to you.

    2 weeks later
    #100 89 days ago
    Quoted from cobra18t:

    I know it is not directly compatible

    System7 works very well and if you intend to program the APC natively, there is even a game software available for Black Knight. The effects need some polish and you have to add the sounds by yourself, but the game itself is working quite well.
    As mentioned on my GitHub page, I didn't use the original displays, but a self made alphanumerical type. This means that the text messages of the BK software won't be readable, but numbers like points will be shown correctly.

    Quoted from cobra18t:

    but I also have a rescued Gottlieb Tag Team that I will hack to do some testing

    Do you know https://lisy.dev/ ? It's a replacement MPU for Gottlieb pinballs. Might fit better in your Tag Team than the APC.

    #102 87 days ago
    Quoted from cobra18t:

    The one APC board and some power supplies just seems easier to me than building up multiple Gottlieb style boards.

    I'm not familiar with Gottlieb machines, but the basic structure is probably the same. You have to pay attention to the details of course, because if the differences are severe enough to require a change of the HW driver then things might become cumbersome.

    At the moment I'm in close contact with the developer of the Lisy boards, as he is currently adapting PinMame to be used with the APC. So I'm just going to ask him what the main differences between Gottlieb and Williams are and if he sees some major problems for your hack.

    #104 86 days ago
    Quoted from bontango:

    I know that Bally & Gottlieb have different concepts as Gottlieb do strobe with 'low' signal

    Williams does also strobe with a LOW signal, so this should work. Are there any special switches like the Special Solenoid Switches in Williams machines?
    Alas, I'm unable to find a Gottlieb schematic, so I cannot look by myself.

    #106 86 days ago
    Quoted from cobra18t:

    I was already considering using addressable LEDs for lighting

    That's probably a good idea, I plan on doing the same with an old Firepower playfield that's currently getting an overhaul. As you have probably seen on my GitHub page, I have designed a small LED expansion board for this purpose.
    If you want to use the APC with MPF than you're probably better off with Facecandy, as it is already supported by MPF. But if you want to use the APC natively or with PinMame, then my expansion board might be worth a try. It's still in an early phase, but it is already implemented in the APC driver SW and can be activated in the settings menu. It does automatically take care about smooth turn on/off of the LEDs, because it hurts my eyes when LEDs are switching hard.

    Quoted from cobra18t:

    It is good to see that you two seem to have a collaboration in the works with LISY_Mini.

    Yeah, we found out that we're living quite nearby and working on similar stuff. So we decided to use the Lisy_Mini to run MPF or PinMame on and control the APC via USB.

    #108 83 days ago

    I'd planned to wait until the APC has become a bit more 'established'. By this I wanted to avoid people getting confused by multiple versions circling around.
    What would you like to modify by the way? I'm always curious for new ideas.

    #110 81 days ago

    OK, I think I'm going to add the KiCad files to the next GitHub update. This will be earliest in two weeks, as I'm on vacation at the moment, without access to my design data.

    1 week later
    #111 68 days ago

    There will be a new HW revision coming soon. Snux found an issue with the direct switches in Sys11a and b machines. Nothing severe, it can be fixed with a single wire, but if you're thinking about ordering boards better wait a bit for the new version to come.
    I'm going to post it here when the update is online.

    And some good news. Except from the mentioned issue Snux was quite successful in making his MPF controlled 'F-14 Second Sortie' work with the APC.

    #113 65 days ago

    That's the news I was waiting for.
    Many thanks to Snux for his great work, he even overcame his fear of SMD soldering.

    Only thing not yet tested with MPF is the sound, but at least I've successfully tested that the APC plays the requested sound and music files if you send the corresponding commands via USB. So it should be OK from the APC point of view.

    As everything seems to work I have just released the new version, it contains HW V2.4 and SW V0.11. I also added the KiCad design files to DOC/Hardware.


    Note that the project page now features a status table showing which system generations have been tested and whether there's anything special to take care of. Below that table is a link to a changelog, which gives an overview about what has been done and why, also details to the new HW and SW versions are mentioned there.

    BTW, I got several questions like : I want to change the rules of my machine, does that mean I have to reprogram everything?

    Well that depends on the severity of the changes you want to perform. For small changes it might be enough to run your game in PinMame and just manipulate the interface. To understand what that means you have to know how the collaboration between PinMame and the APC works.

    In the system settings of the APC you can select which game SW shall be executed. If you want to use MPF or PinMame you'd choose USBcontrol since MPF or PinMame have to run on an external computer (PC or https://lisy.dev/lisy_mini.html) which controls the APC via USB. This is handled by the USBcontrol.ino program which is part of the APC software.
    To implement small gameplay changes you could write an own program which you select in the system settings. This program could act like a man in the middle and would normally just forward any event to USBcontrol.ino and back. But for certain events this program could act differently and introduce the desired gameplay change.
    Of course this only works up to a certain extend, because you always have to be aware about what PinMame is expecting to happen.

    It should work great for additional effects. Especially on older machines with no backbox effects you could put a LED strip behind the backglas and run a fancy lightshow depending on what happens on the playfield. If the machine has unused solenoid drivers you could even add flashers to such a machine (or someone has to develop an additional driver board for flashers and connect it to the HW extensions port of the APC).

    I hope that helped, now have fun with it


    1 month later
    #118 22 days ago

    I just released SW Version 0.12 to make the sound work with MPF.
    With these changes the APC should be all set for MPF, the next task is to make PinMame work also.

    You can find some more information in the changelog including a video showing my humble MPF (and filming) skills at work.


    Quoted from RatShack:

    With APC I'd probably end up making my own board because as you mentioned it is geared towards Williams hardware.

    It's probably mostly changing the connectors. Of course it would be great if you'd also make your board data available to others.

    #122 21 days ago
    Quoted from RatShack:

    Did I get the wrong Arduino?

    Don't worry, all Arduino DUEs are operated with 3.3V.
    Apart from being bus drivers, the 74HCT244 ICs you've seen in the schematic act also as levelshifters from 3.3V to 5V. It's one of the main features of the HCT logic family that you can operate their inputs with 3.3V signals while supplying them with 5V.

    Quoted from ThatOneDude:

    I added a hack to pinmame to drive a DMD

    I also did some experiments with DMDs, because I thought about adding DMD support to the APC and a small DMD controller would be a good solution IMHO. You could control it via USB or the APC's hardware extension interface.
    I used an Arduino UNO to find out how to control the display, but this was just a test as it lacks the necessary processing power to control the display and simultaneously receive the data via USB.

    However, I still consider buying a Teensy and write the necessary SW, but to be honest I don't even know if there's any need for something like this.
    P1020627 (resized).JPG

    #125 20 days ago
    Quoted from RatShack:

    To make sure I understand your design, in the switch driver section it's using R77-R85 and RR8 to get the 74BCT760 output to 3.3V?

    Basically yes, but the 74BCT760 is an open collector driver and can only pull it's output lines to GND.
    Therefore RR7 does also belong to the resistive divider dropping the 5V down to 3.3V. With the BCT760 I just added a 9th switch row to the matrix to handle the direct and special switches.

    Quoted from ThatOneDude:

    The nice thing about the Teensy is that most of the work is already done for you:

    Yes, but my setup was meant for the old DMDs from the WPC era as I was thinking about controlling the old WPC DMDs with the APC. I've found several projects dealing with RGB LEDs, but I didn't find a small controller for the old DMDs. May be because it's too simple - with the UNO you don't even need additional HW. Or just because there is no need.

    1 week later
    #128 9 days ago

    From my point of view the APC is all set to be used with MPF or to be programmed natively.
    However after several questions concerning the population of the boards it has been become rather quite.

    At the moment I know of only two people actually using the board in their machines, so I wonder what has happened to the rest? Is the population of the board such a big problem, are you waiting for PinMame support or what else is making you hesitate to use it?

    I'm just curious so I'm going to start a poll about the problems you might have. Of course you're also welcome to post your opinion here.

    For me this feedback is important to learn whether further support is needed from my side. Alas there's not much I can to to support the PinMame development as I'm lacking the necessary knowledge to be of much help there. The USB interface is set up, but it seems that Ralf is busy with Lisy and has no time to continue his work on PinMame at the moment.

    #132 8 days ago
    Quoted from Snux:

    I guess I'm one of the two

    Your guess is right, good to have you back.

    Quoted from Snux:

    You might find that the Teensy doesn't have enough pins

    I think you can probably make it work with 40 pins, but using a Teensy instead of a DUE would still require some work. I see the main problem in the SW as you would have to change the HW driver. In order to speed it up it is accessing the DUE's registers directly instead of using the Arduino commands.
    Therefore I wouldn't change the controller unless I absolutely had to.

    Quoted from ThatOneDude:

    I opted to base my serial protocol on the LISY protocol in MPF. If you do the same, most of my work would be reusable on the pinmame side.

    I'm also using the Lisy protocol. It has proceeded to version 0.09, so you have to to switch the MPF documentation to the dev branch to be able to see it.

    Quoted from Snux:

    But many people are "just software folks" and the thought of building something with through-hole is already scary.

    Yeah, I expected that to become an issue. But to be honest I'm just not willing to solder boards in my spare time and then bother with shipping, customs and whatever might go wrong. For me it's just a hobby and I don't want it to become an obligation.
    But since I don't want to earn money with it, I wouldn't mind if someone else would build boards to sell. Who knows, when the PinMame stuff works and boards are available for sale, one day the numbers will probably go up.

    Quoted from Snux:

    maybe the various WMS generations have their connectors in the same place?

    Unfortunately not, they're completely different, so I optimized the layout for minimum crosstalk and ground bounce instead of trying to adapt it to one certain system generation. For example, if you take a look at the pic of Ralf's Comet in my changelog https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md it looks almost perfect. So the APC seems to fit much better in Sys9 than in Sys11.

    Quoted from Snux:

    The latter made it quite easy to see that software was running and connected.

    I got your point. Another way would be to make more use of the Arduino debug interface. This can send all kind of debug messages back to your PC. I have to admit that the SW doesn't support this feature very well at the moment. So one could also think about pimping the debug mode to send more meaningful messages to the PC.

    #135 6 days ago
    Quoted from Snux:

    This I understand 120%. Life is already too busy.

    Absolutely. And if it means that just some nerds like us are going to use this board then so be it.

    Promoted items from the Pinside Marketplace
    $ 10.95
    $ 244.99
    From: $ 149.00
    Playfield - Toys/Add-ons
    Sparky Pinball
    $ 75.00
    $ 76.95
    Cabinet - Shooter Rods
    Super Skill Shot Shop
    From: $ 19.99
    Matt's Basement Arcade
    $ 5.00
    Playfield - Decals
    Doc's Pinball Shop
    $ 3.00
    Cabinet Parts
    BK Pinball
    $ 7,499.00
    Pinball Machine
    Classic Game Rooms
    $ 115.00
    € 159.00
    Cabinet - Toppers
    $ 5,799.00
    Pinball Machine
    Operation Pinball
    $ 12.99
    Cabinet - Decals
    Bent Mods
    $ 1,099.00
    Pinball Machine
    $ 149.00
    $ 12,500.00
    Pinball Machine
    Great American Pinball
    $ 26.99
    Lighting - Interactive
    Lee's Parts
    $ 5.00
    $ 109.99
    $ 15.00
    Lighting - Led
    3D MODS
    From: $ 175.00
    Gameroom - Decorations
    Pinball Photos
    $ 16.95
    Playfield - Toys/Add-ons
    From: $ 42.00
    Cabinet - Shooter Rods
    ModFather Pinball Mods
    From: $ 9.99
    Matt's Basement Arcade

    You're currently viewing posts by Pinsider amoksolderer.
    Click here to go back to viewing the entire thread.

    Hey there! Got a moment?

    Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside