(Topic ID: 239045)

Arduino Pinball Controller

By AmokSolderer

5 years ago


Topic Heartbeat

Topic Stats

You

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 4 votes
      15%
    • I'm programming APC natively 2 votes
      7%
    • I'm waiting for PinMame support 5 votes
      19%
    • I have an APC board, but I still have to populate it 3 votes
      11%
    • I would only use the APC if populated boards were available 13 votes
      48%

    (27 votes)

    This poll has been closed.

    Topic Gallery

    View topic image gallery

    20240317_224906 (resized).jpg
    IMG_20220326_054355 (resized).jpg
    IMG_20220324_115019 (resized).jpg
    0803_1 (resized).jpg
    IMG_20220306_221732 (resized).jpg
    IMG_20220225_113217 (resized).jpg
    IMG_20220224_102209 (resized).jpg
    afficheur (resized).jpg
    bootok (resized).jpg
    20220225_100158 (resized).jpg
    20220225_100214 (resized).jpg
    20220225_084428 (resized).jpg
    U1wrongPol (resized).jpg
    453DBE7E-8CD8-4CAE-82B9-46E2E87021F9 (resized).jpeg
    32FCCD80-1C7F-4782-84A2-0C0FFE9F3D78 (resized).jpeg
    BA633E7E-D152-46C5-932E-E625D68C0A1F (resized).jpeg

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

    306 posts in this topic match your search for posts by AmokSolderer. You are on page 1 of 2.
    18
    #1 5 years 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.

    https://github.com/AmokSolderer/APC

    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).JPGAPC_Pinbot (resized).JPG
    #5 5 years 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).pngFlash (resized).png
    #7 5 years 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 5 years 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 5 years 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 5 years 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 5 years ago

    Update:

    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 5 years 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 5 years 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 5 years 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 years ago

    Update:

    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).JPGIMG_0120 (resized).JPG
    1 week later
    #21 4 years 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).JPGP1020494 (resized).JPG

    #23 4 years 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 years 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).

    Frank

    #27 4 years 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:

    https://www.flippertreff.de/start/forum/topic/11356-arduino-pinball-controller/

    You're welcome to join our discussion.

    Frank

    1 week later
    #31 4 years 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:

    http://docs.missionpinball.org/en/dev/hardware/lisy/protocol.html#protocol-reference-v0-09-rfc

    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 years 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

    Frank

    #35 4 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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 years 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.

    Frank

    Edit: fixed some typos

    #64 4 years 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:

    https://github.com/AmokSolderer/APC/blob/master/DOC/PICS/APC_Connectors.png

    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

    Frank

    TDA_pinning (resized).PNGTDA_pinning (resized).PNG
    #66 4 years 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).JPGTDApin2 (resized).JPG
    #68 4 years 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 years ago

    Just like this or did you resolder it?

    #72 4 years 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 years 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 years 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 years 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 years 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 years 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

    Frank

    APC_Audio (resized).pngAPC_Audio (resized).png
    #87 4 years 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 years 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 4 years 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 4 years 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 4 years 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 4 years 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 4 years 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 4 years 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 4 years 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 4 years 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 4 years ago

    Update:
    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 4 years 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.

    https://github.com/AmokSolderer/APC

    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

    Frank

    1 month later
    #118 4 years 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.

    https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md

    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 4 years 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).JPGP1020627 (resized).JPG

    #125 4 years 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 4 years 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 4 years 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 4 years 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.

    1 week later
    #138 4 years ago
    Quoted from bontango:

    But I don't think that you can solve that without putting a lot of additional effort in your project.

    Basically it would mean turning it into a professional product. This means a lot of non-fun work which would only make sense if I'd want to sell it.

    Doing an FPGA might be a compromise solution. This could replace most of the components on the board while adding some additional functionality. Of course this would spoil the open source character of the project, but it would certainly fit to the product idea. With a hot air soldering system the FPGA could be easily pre-mounted on the board and would therefore reduce the soldering work for the end-user to a minimum.

    This might be something interesting for long winter evenings, but when I look at the poll then I don't see any real demand, so I'm not going to pursue it with a high priority.

    1 month later
    #140 4 years ago
    Quoted from jamescardona:

    If I am understanding correctly, this board is doing the equivalent job of a p-roc except for system 11, etc.?

    Exactly.

    Quoted from jamescardona:

    Connect a host controller (pi or PC) and the app does all the interface. Am I understanding correctly?

    Also correct, but it uses the Lisy USB protocol (http://docs.missionpinball.org/en/dev/hardware/lisy/protocol.html) which only works with MPF (http://missionpinball.org/) at the moment. There is someone doing the PinMame implementation, but it is not finished yet (Help from PinMame developers would be welcome).

    Quoted from jamescardona:

    I understand that p-roc does not work with system 11 without additional hardware so if the above is true then this is great and I want one.

    There's a catch I'm afraid: For me this is just a hobby and I'm not interested in manufacturing and shipping the boards. Instead I have put all the required information to order and populate the boards on my project page https://github.com/AmokSolderer/APC

    #142 4 years ago
    Quoted from ThatOneDude:

    I got zero responses from the core developers

    It doesn't have to be one of the original core developers I suppose, just someone who knows how to deal with the USB interface.

    Bontango wanted to do this and I guess he's exactly the right person, because he has already done the PinMame interface for the Gottlieb machines and his Lisy Controller. His first attempt with System9 was very promising already. Unfortunately he's quite busy with other stuff, but I'm going to ask him when he expects to have time for this.

    I have to ask him anyway, because I'm thinking about some kind of Lisy-APC. This would be an APC with a Pi on board running the Lisy SW. With this you could run MPF and PinMame directly without the need of an additional PC or Pi connected via USB.
    But as a joined Lisy and APC project it only makes sense if Bontango has the time to support it.

    1 month later
    #144 4 years ago

    Hi ledbetter, welcome to our thread.
    Before you order any boards, be sure to read the documentation. You're going to need some hardware and soldering skills to make it work.
    We had some people here who have announced to have ordered boards or even started populating, but most of them went silent so I assume they couldn't handle it.

    Which machines do you want to try it in? If you want to use with a certain machine only, you can spare at least some connectors.

    #148 4 years ago

    My old APC gerber files also don't work any more, so I think it's a problem at JLCPCB. It seems to happen during the gerber processing, as it tells me that all of my files are OK, but it fails determining the board outline anyway.
    May be their server is overloaded because smaller boards seem to work fine.

    Let's wait until tomorrow, may be they get it solved.

    #151 4 years ago

    OK, that means it worked for you?
    I still cannot see my board.
    When I click on the Gerber Viewer I get some strange error message about the tool not supporting files uploaded before July

    May be they didn't notice that it's 2020 by now and that at the moment it's difficult to upload files AFTER July.

    #156 4 years ago
    Quoted from ledbetter:

    i uploaded the files into a different program and got those measurments , so i just used them

    So it seems just the preview is not working.
    Like bontango wrote, you don't need the dimensions when everything works properly as the previewer determines them from the gerber data. Let's hope the rest of their software still works.

    Quoted from ThatOneDude:

    So, if I am wiring up a custom game with 8x8 matrices like Sys3-WPC, I should be able to control them with APC, correct?

    Correct, but do you really want to use a lamp matrix? Would probably be easier with an LED strip.

    Quoted from ThatOneDude:

    Also, for the SMD work, did you all use a reflow oven or hand solder them?

    I hand soldered everything, that's why I used large solder pads and components. The ICs still might require some practice, but you can buy a cheap hot air rework station if you don't want to solder them by hand.

    #162 4 years ago
    Quoted from ThatOneDude:

    Good point. I planned on using RGB serial LEDs for mine, and would be happy to stick with it.

    That means you don't need the lamp matrix, so you can spare some SMD components.

    Quoted from ThatOneDude:

    I don't see why this wouldn't work with driving a WPC era machine, right?

    Right, but with P-ROC there is already a working solution. However there is someone in the german forum planning to do an open source controller for WPC, so something might come up in the future.

    Quoted from ThatOneDude:

    Who is working on the pinmame side? How does it tie into the audio emulation?

    Bontango is doing the PinMame stuff. At the moment we're planning to extract the WAV files from PinMame and put them on an SD Card. Then PinMame can just tell the APC when to play which file. This makes changing sounds an easy job, since you can just change the files. Of course they have to be extracted for every game, but this must only be done once and can be automated.
    Actually we're going to try it this weekend with my Pinbot.

    #166 4 years ago
    Quoted from ThatOneDude:

    It also wouldn't work for sounds that are fully synthesized(like the Gorgar heart beat and such

    I know very little about PinMame, so I can just tell you how I understood it to work but I might be telling bullshit here.
    As far as I know all the old pre WPC games had synthesized music and even the speech wasn't sampled in a format we could simply use nowadays (at least in machines up to System11). Memory was just too expensive to do that so they used synthesizer ICs which generated waveforms that sounded like music. Therefore PinMame has to emulate these old ICs and generate a WAV or whatever can be used with today's audio cards.
    That means it's not enough to locate a certain sound in the ROM, but you must make PinMame play and record it as a WAV to be able to use it.

    Quoted from ThatOneDude:

    It would seem to me that it would be easier to use the built in sound emulation from pinmame and just feed that into the board as input(or utilize an external DAC + amp for those machines).

    True, the SW setup would be easier, but we'd loose flexibility in doing so. If we spend the (one time) effort to generate WAVs and let the APC use them, we can not only use these sounds with PinMame but also with MPF or the APC itself. The easiest would be to just replace certain files on the SD card to introduce your own music and effects. If you design your own game rules with MPF you could use the old sounds.
    And as the APC features it's own pinball operating API you could even run your game in PinMame, but let the APC act as a man in the middle and introduce certain rule and effect changes and with the sound and music files at hand you have the full flexibility.

    Quoted from ThatOneDude:

    In my case, I'm wiring up a Scared Stiff from scratch, so I don't need wiring compatibility with WPC per se.

    Ouch that's a lot of work. May I ask why you'd wanna do that?

    Quoted from matiou:

    However I gave up when I found out sounds where "layered", and successive calls to the same sound address were not producing the same results (it tunes the sound differently, for repetitive background sound as an example, to change the pace).

    That's the reason why it might take hours to extract the audio from PinMame because you have to make it play every pitch and tune and record it as an own WAV. You end up with hundreds of files and still have to know which file belongs to which sound.

    Like it wrote we're going to try it this weekend. I'll keep you posted about the result.

    #170 4 years ago
    Quoted from ThatOneDude:

    Lol, the current consensus seems to be insanity.

    Well, insanity seems to be a common disease among pinball enthusiasts.

    #176 4 years ago

    The APC offers good sound quality without any additional sound HW, so if we manage to play the right wav at the right time we're done IMHO. The main problem appears to be the mapping, but according to Snux it must be feasible, because this Pinsound Studio seems to do exactly the same.
    And as I already wrote we have the additional advantage that these sound files are accessible for MPF and APC games also. I think it's a great feature to run a game in PinMame and just add certain rules on the APC in C++.

    #183 4 years ago
    Quoted from ThatOneDude:

    If there any reason that an IRF540 couldn't be used in place of the IRF3808s?

    Yeah, this is probably overdone, but these FETs are for the flipper fingers and I hate when those are weak. So I tried to keep the on resistance as small as possible, but I think the 540 will be enough.

    The whole solenoid part is a bit overengineered, as I wanted to be able to conntect all kinds of fancy hardware to it without having to use a second driver stage as used in System11 for the high voltage coils.

    #184 4 years ago

    Update: the first PinMame tests are very promising.
    The lamps are working perfectly, displays and solenoids are having minor issues.
    We still have to increase the emulation speed, but according to Bontango this is just a setting.

    Navigating the test menu with the Advance and Up/Down switches doesn't work correctly. Do you know if the behaviour of these switches in PinMame is different from the original machines?
    Except of that all switches are working fine.

    We still have only partly implemented the sound handling. Up to now we just have 255 sound files which contain their their own numbers in speech, so Pinbot is telling me all the time which file he is playing at the moment. Mapping these file numbers to the correct sounds is one of the next tasks.

    But all these are relatively small problems and I was already able to play some games.

    #190 4 years ago
    Quoted from ThatOneDude:

    Also, a full set of components from Mouser runs about $100 USD

    I'm surprised by the high component prices. Did you order an Arduino DUE from China or did you pay the whole 40 bucks?

    #192 4 years ago

    Yeah, the Mouser prices seem very high to me. I checked some parts and almost everything is less than half the Mouser price here in Germany. A simple 1206 Resistor is almost 5 times the german price.

    That means, if I ever pull myself together and do a board version that can be populated by the board manufacturer it would probably even save some money for you US guys.

    3 weeks later
    #194 4 years ago
    Quoted from ThatOneDude:

    I'll keep you posted as we progress.

    I'm curious about it.
    Of course I'm especially interested to learn about missing or misleading parts of the documentation.

    #198 4 years ago
    Quoted from ThatOneDude:

    Was R80 removed from the board?

    Yes, R80 has been removed. Have to delete it from the Wiki also.

    #201 4 years ago
    Quoted from ThatOneDude:

    Is there a discussion of the hardware expansion system?

    I wasn't sure if someone except me would ever use it, so there is no documentation yet.
    At the moment it is hardcoded to just control the LED board when the corresponding setting is activated, but the task to do it right is on my todo list … somewhere

    Quoted from ThatOneDude:

    Also, I noticed that C2 is listed under a different footprint than C19/C23/C25/C27, but has the same mouser order. Is that correct?

    No, that's a mistake. C2 is supposed to be a 100uF electrolytic capacitor, so it's number should be something like 710-860040272001.
    Thanks for the hint. I'm going to change that.

    #205 4 years ago
    Quoted from ThatOneDude:

    If you don't mind, I will create a list for ordering parts with a link to a mouser project for the wiki.

    Of course, any kind of help is highly appreciated.

    Quoted from ThatOneDude:

    If you want to post the hardwired source in a branch, I could work on making it generic. Thanks!

    It is already included in the current branch. It's part of the lamp section in the HW driver (TC7_Handler in APC.ino) and that's part of the problem, because this driver does directly control the HW and it is therefore the most sensitive part of the SW. Any issues here may lead to very nasty consequences.
    So, give me some time and I'm at least going to add a command to send raw bytes to the HW extension interface. By this you don't have to deal with the HW driver directly, but you still have the flexibility to implement additional functionality as you like.

    Quoted from RatShack:

    I see the RX light blinking on the Due and get this in the logs

    It looks like the USB communication is not working. Are you sure your APC is in USBcontrol mode? In SW rev. 0.13 the system comes up in USBcontrol mode by default, but not in 0.12. This version comes up in the basecode mode and you have to switch to USBcontrol manually in the system settings. This is shown in my MPF video

    Quoted from RatShack:

    The v13 code wants the IDE to move the .ino files to their own folders, which I am not able to compile afterwards.

    Compiler-wise 0.13 should behave the same as 0.12. When Git has pulled it you should have a directory called APC with all the .ino files (you need all of them). Navigate there in your Arduino IDE and open the file APC.ino (the other .ino files should open as additional tabs). Now press compile and it should work. If you're still having problems please post the compiler error.

    #209 4 years ago
    Quoted from ThatOneDude:

    Ok. So, you are using PIOC to write to the expansion bus, and then a select line(SEL5 - 7, correct?) to activate the board, which then does something with the bus data.

    Exactly.

    Quoted from ThatOneDude:

    Are you using all three select lines as an address, or just 3 individual lines?

    At the moment I'm just using Sel5 as the LED_exp board is the only expansion board up to now. I think three select lines (four if you count the SPI_CS line which is also present at the exp connector) should be enough for most applications. Using it as an address is possible, but it would require additional logic on the receiver side.
    If you want to play with the expansion port, please note that only Sel7 is 5V tolerant, the other selects are directly connected to the DUE which can just handle 3.3V. That means these selects need LS or HCT logic in the receiver.

    Quoted from ThatOneDude:

    Do you have the code for Arduino Mini used in the board somewhere?

    I've added it to the LED_exp folder of the V0.13 branch, but be warned it's not exactly self-explanatory and far from ready.
    Let me summarize what I remember:
    - The APC sends one byte every millisecond.
    - The first 8 bytes represent the status of all 64 lamps, after that it might send an additional command. Up to now only two commands are implemented.
    - 192 is the optional color select command which is followed by three bytes representing Red, Green and Blue values. Every lamp that is turned on afterwards will light up to this color setting.
    - After 20ms the sync command 170 must occur which triggers the LED_exp board to write the new lamp states to the RGB strip. Then it starts again with the first 8 bytes of the next frame.
    - The LED_exp controller will fade the LEDs on and off in 5 steps to smooth the hard switching of LEDs.

    For complex animations we would need additional commands. It should be possible for example to assign a certain color to a particular lamp. At the moment it's not possible to turn on two lamps of different color in the same data frame.

    I've planned to do it when my Firepower is ready, because I want to equip it with an WS2812 strip instead of using the lamp matrix. Depending on the complexity of the lamp animations it may even be necessary to upgrade the LED_exp board to increase the data rate.
    Or may be I'm just going to buy a facecandy board and control it from the second USB port of the DUE.

    #210 4 years ago
    Quoted from RatShack:

    The Due does not require a separate power supply when using USB, correct?

    Yes, it can be powered from the USB port.

    #212 4 years ago
    Quoted from ThatOneDude:

    Just a thought.

    If you need more than 4 boards on the expansion bus then such an interface board would be a good way to do it. I'd probably go for a 74x138 but the outcome would be the same.

    However, this bus can only drive boards which are located close to the APC board. That's because these ribbon cables are quite susceptible to distortion and will pickup all kinds of noise when being too long. Therefore you won't be able to place extension boards outside of the backbox which is a huge drawback for this LED strip driver as the LEDs will be under the playfield.
    In my opinion Stern solved this problem in an elegant way by using shielded network cables as inter-board connections. So when we're thinking about an interface board it would probably be a good idea to plan for a parallel to serial converter which can then drive a network cable. The receiver would just need a shift register to get the parallel data back.

    #214 4 years ago
    Quoted from ThatOneDude:

    So, no switch/ solenoid matrix, just direct drivers.

    Yes, that's what I'm talking about. Why didn't you go for this solution?

    I'm still not sure if the APC is really the best solution for a homebrew machine, as it is tailored to the old machines with matrices for everything.
    When I got you correctly then you're not going to use the display part nor the lamp part of the APC, so why don't you use a modular solution like OPP?

    #216 4 years ago

    OK, so what kind of configuration do you need?

    - I guess the 8x8 switch matrix + 8 direct switches of the APC.
    - The 24 solenoid drivers of the APC and 5 extra?
    - Sound from the APC or external?
    - What about a facecandy board for the LEDs? It has USB which is less sensitive to noise than a ribbon cable and it is already supported by MPF.

    #220 4 years ago
    Quoted from ThatOneDude:

    I suggest a variable which can skip the regular lamp matrix as part of the configuration for those cases that are not hybrid models.

    Yeah, I have to update this part anyway when I'm doing my HW_exp interface rework. But the normal lamp matrix refresh needs just a few clock cycles, so not much to gain here.
    Are you planning to keep the APC in the backbox or do you want to place it in the cabinet? When you're doing a complete rewire anyway you have the choice and since you're not going to use the display part there's not much in the backbox to connect it to.

    Quoted from tonymachine:

    thank you very much to all the creators, with help from all of you ..

    You're welcome.

    #222 4 years ago

    For the additional solenoids of your Scared Stiff you could use use something like the attached schematic (is the name solenoid expander board a good choice or should I call it solenoid extension board?)
    This would be an easy solution if the APC and this board are kept closely together. If you wanna place one board in the backbox and one in the cabinet we should probably go for a USB solution. The Arduino DUE has one additional native USB port which we could use for that. That would require an Arduino Nano or something similar to control the extension board.

    APC_Solenoid_exp.pdfAPC_Solenoid_exp.pdf
    #225 4 years ago
    Quoted from ThatOneDude:

    Nice! I will grab those parts and start building!

    Don't rush. I have to do my rework of the HW_ext software first to make the APC SW support it. So you have enough time to bring your APC board to life first, because I'd like to have this PinMame stuff completed before I start new tasks.
    I'd also etch a board and test it, not only to test the SW but I'd also like to try these IRL530 transistors as a possible alternative for the APC board. This would spare the UDN2981 levelshifters and all those SMD resistors at the transistor gates. Plus they are available in an SMD package and can be automatically populated in China.

    Quoted from pb456:

    react to opto switches and sounds

    Sounds to me like you'd rather need a small controller with HV tolerant inputs and a solenoid driver. I did a shaker controller for a friend of mine. It features an Arduino Mini (or Nano) with 16 inputs which are 100V tolerant. That means you can connect any input with a solenoid output or some lines of the switch/lamp matrix of your pinball machine. By this you'd be able to program an event that can be triggered by certain patterns of the lamps, switches or solenoids.
    You can find the schematic attached and we even have done a board but it's also not tested yet. I think it won't take long to do it, but like I said I want to complete the PinMame support of the APC first.

    Talking about PinMame support - it is almost done. We still need to extract the sounds of the second sound channel and put them on the SD card of the APC, but we did it already with some of the channel one sounds and it works fine. I already spent some hours playing my Pinbot with Lisy_mini and APC controlling it and apart from some sounds still missing it works perfectly. So I hope the next APC SW release will come soon and after that I hopefully have a bit more time for other tasks.

    Shaker.pdfShaker.pdf
    #227 4 years ago
    Quoted from RatShack:

    I am using IRL540 for solenoid drivers, worked well in testing.

    Did you use them in an APC board?

    #228 4 years ago
    Quoted from ThatOneDude:

    Nice! I will grab those parts and start building!

    There's one thing you should be aware of:
    The APC (as well as the solenoid expansion board) does not have any free-wheeling diodes on board, because the pre-WPC machines had them soldered directly to the solenoids or on the aux power driver board.
    This changed with WPC when these diodes were moved to the normal power driver board.

    That means if you want to use the APC in a WPC or any homebrew machine you have to make sure to place them somewhere or your power driver transistors will fry eventually.

    #232 4 years ago
    Quoted from matiou:

    Can you directly connect the circuit to an existing switch matrix,

    That's the idea, but the design was done just based on the datasheet of the transistor. I still have to order some parts and do some measurements.
    The 47K might change as it is a trade-off to be able to connect the inputs to the switch matrix, as well as to the solenoid drivers. The switch matrix requires low currents in order not to disturb it. For the solenoid drivers the current needs to be higher as the parasitic GS capacitance of the protection transistor might produce a current spike at it's source and we don't want the resistor to transform it into a voltage spike.

    But the solenoid drivers are the tricky part, so if you just want to use it at the switch matrix then you could give it a try.

    Quoted from RatShack:

    I need to do the switch matrix interface next so MPF will let me start a game.

    Interesting. I don't know Gottlieb very well. Did you have to change a lot to make the APC work with it?

    #237 4 years ago
    Quoted from RatShack:

    Hoping I didn't fry one of the analog inputs by supplying the matrix with 5V.

    No problem, the input dividers (RR7, R77 - R85 and RR8) are reducing the input voltage to 3.3V.

    Quoted from RatShack:

    That's interesting with low vs high pulse. Will keep that in mind.

    Williams is also using a low pulse at the strobes (Sw Matrix Drivers).

    Quoted from RatShack:

    Gottlieb doesn't have a lamp matrix, it uses strobes + data lines

    Are you planning to use an LED Board or do you want to use the original light bulbs? The latter would require some kind of adapter at the HW_ext interface of the APC.

    #239 4 years ago
    Quoted from RatShack:

    I will be using the original light bulbs (LEDs) with a decoder/driver circuit I haven't designed yet

    I just have a System80 schematic, but if your system is similar then you could use the original driver board from Gottlieb and just add an adapter board for the HW_ext interface of the APC to it. From the first glance I think for the lamps this adapter board could be quite simple, a single 74HCT154 would probably do the job. This way you wouldn‘t have to populate all these lamp driver transistors at least for the prototype.

    1 week later
    #247 4 years ago
    Quoted from ThatOneDude:

    If I were to set up MPF with a dmd being driven by a smartmatrix, for example, how would that work, in your mind?

    I only tried it with the original displays in my Rollergames setup which is part of the Github project:

    https://github.com/AmokSolderer/APC/tree/master/DOC/Software/MPF/Rollergames

    This is the setup I used for my MPF video

    I don't know much about Smartmatrix, so I'd stick to the MPF documentation http://docs.missionpinball.org/en/latest/hardware/smartmatrix/index.html

    Did you populate the display related parts? If yes you might consider using your BK2K to make sure the board is working correctly before starting with MPF. You can adapt the Basecode.ino to the BK2K as described in the 'Software Preparation' part of the main Wiki page https://github.com/AmokSolderer/APC/wiki
    When the Basecode runs you can enter the test mode by pressing Advance with the Up/Down switch in down position. This way you can test the HW without having to bother with MPF's configs yet.

    #252 4 years ago
    Quoted from ThatOneDude:

    Do I need to adjust the display type?

    Yes, for some reason Williams changed the polarity of the display signals when they introduced the 2x16 alpha displays. That means all your characters are inverted (you can actually read it with a bit of training )

    The display type can be changed blindly by doing the following:

    - press the Advance button. This will make the display stop scrolling.
    - slowly press the game start button repeatedly until the display becomes readable
    - lock Up/Down in the down position and press Advance to get to „Exit Settings“
    - press Game Start to confirm. If an SD card is iinstalled the new setting is stored

    #254 4 years ago

    First of all: did it work, can you read your displays now?

    You're right I should probably state in the comments that DisplayType and so on are just pointers to APC_settings.
    If a settings file has been found on the SD card then APC_settings is read from there, otherwise the values from APC_defaults are used.

    #256 4 years ago
    Quoted from ThatOneDude:

    (stuck at home for quarantine but still stuck in front of my computer, such is the life of the devops engineer).

    Same here, but I think I wouldn't be able to resist. It's just some seconds and if no meetings are imminent

    Remember to change DisplayType back first or you might get some unexpected results.

    #259 4 years ago
    Quoted from ThatOneDude:

    Well, the bigger problem is that I'm only part way through step 3, so no switches yet.

    Of course I'm not trying to tempt you, but theoretically you could change the first byte of APC_defaults to 3

    Quoted from dudah:

    Love this project! Following! Keep up the good work guys!

    Thanks. When are you going to populate you first APC board?

    #268 4 years ago
    Quoted from Compy:

    If you need any pinmame help or anything, let me know.

    The current challenge with PinMame is to extract the sound files automatically. We have decided to just extract the files, put them on the SD card and let the APC play them. The APC offers good sound quality and it's easy to replace the files with own sounds if desired.
    If the files are stored on some internet server, then this work must only be done once for every machine. Bontango is currently extracting them for my PinBot. The results are very promising, but I think it's still mostly manual work. Up to know we have roughly half of the files for one of the two audio tracks.

    Quoted from ThatOneDude:

    Alas, no love. I suspect I have a hardware problem now.

    Hard to believe as it looks so familiar. Try to finish step 3 and press 'Advance'. If the result looks like the picture below than we know what it is. The other picture is the same with the right display setting.

    Sys11c_display (resized).jpgSys11c_display (resized).jpgSys11c_display2 (resized).jpgSys11c_display2 (resized).jpg
    #276 4 years ago
    Quoted from ThatOneDude:

    And here it is

    This doesn't look like a bad solder joint. Then you would expect certain display segments or whole digits to be missing.
    So let's look for the weird stuff:
    Is your ribbon cable connected correctly? It's very easy to have it shifted by one row and the result could be similar.

    Another idea would be to press the 'Highscore Reset' button after bootup (while the display is scrolling). This invokes the blanking which should make the display go blank. If this doesn't work and all segments are lit instead then check the jumper JP1. For your type of display the center pin of the jumper should be connected to +5V.

    I'd like to track this problem down systematically, because any additional soldering might just further damage your board.

    #278 4 years ago
    Quoted from ThatOneDude:

    My fault for not checking the SIPP sockets first.

    OK, but the damage is done so we have to make the best of it.
    When I got you right, you don‘t want to use the display part anyway. It seemed like a low hanging fruit to put the board into the BK2K and test it, but you can still skip the display part and test your board via USB.
    You could try to connect it to MPF or you could use a terminal program to send the USB commands directly.

    #280 4 years ago

    You‘re going to need a Pi or a PC to host MPF anyway, so it makes sense to let it control the DMD also.
    Since V0.13 the APC software comes up in USBcontrol mode, which means you won’t need to bother with the APC settings and therefore you don‘t need any feedback from the displays.

    BTW, I have decided to believe that alcohol is best suited to prevent Corona and I‘m determined to follow this principle, so pardon me if I didn‘t get the point

    #283 4 years ago

    You’d have to enter the switch test by pressing the game start button.
    But WriteUpper/Lower is only one way to control the displays and the switch test is using another method to show the switch numbers.

    If you want to control the APC via USB, you should use V0.13 as it comes up in USBcontrol mode, connect with a terminal program (I use HTerm) and use the Lisy protocol:

    http://docs.missionpinball.org/en/dev/hardware/lisy/protocol.html

    This way you have full access without having to bother with the APC code.

    Command 0x29 for example returns the numbers Of switches which have changed their status recently.

    #289 4 years ago
    Quoted from Compy:

    I forgot that Space Shuttle only has one channel

    But this is a limitation of your old sound hardware which you don't use at the moment.
    When using the APC you have two independent sound channels, but it looks like your channel 1 is not working.

    Quoted from ThatOneDude:

    Make sure you are getting a signal on the INR and INL leads.

    That's correct. If you don't have the right measurement equipment to check the signals then check the solder joints of the pins 1, 2 and 3 of U20. This is the small SMD IC. I guess these joints are the hardest to solder and therefore have the highest probability to fail.

    Quoted from ThatOneDude:

    29, however, gives me a ?

    It's 29 hex, so 41 decimal. It returns one byte. The value 127 means that no switch has been triggered since your last query. If a switch has been triggered then bit 7 indicates whether the switch has been set or cleared and the lower 7 bit hold the switch number. You have to repeat sending 41 until you receive 127.

    #291 4 years ago
    Quoted from ThatOneDude:

    Ah, of course. I was using hexlify to autoconvert it, but I wasn't thinking about the initial input. Danke!

    Gern geschehen

    Quoted from ThatOneDude:

    My thought is to write a quick python script that spams 0x29 until it gets a change and then uses 0x28 to get the state.

    I’m not sure what you want to achieve. For a simple switch test it would be sufficient to poll the changed switches by using 0x29 and after testing MPF will handle everything.

    Quoted from ThatOneDude:

    I assume that APC queues up switch changes and that subsequent calls to 0x29 should display those switch events until I empty the queue, correct?

    Exactly, when you receive 127 you know that your queue is empty.

    Quoted from ThatOneDude:

    Are there any significant differences in 0.08 and 0.09 of the LISY protocol? The MPF docs reference 0.08, but the board is replying with 0.09 on the API call.

    Yes, it‘s crucial for you to use 0.09. We changed a lot, so I do not expect the APC to work with 0.08. The link to the MPF docs I posted is dealing with 0.09. I know it states 0.08 at the beginning and the 0.09 part comes later, but this is only partly true. May be we should ask Jan to remove this.
    I think that the latest MPF uses 0.09, but you should probably use the dev version just to be sure.

    #293 4 years ago
    Quoted from ThatOneDude:

    Saves a lot of typing

    OK, got it - apparently you like coding more than using a terminal program.

    Quoted from ThatOneDude:

    Ok, just wanted to make sure I wasn't seeing a weird version mismatch when I noticed the change.

    The MPF link I posted is what I used as a reference when implementing the API and as everything works well we're not planning to change anything soon. If you start using MPF you should probably opt for the DEV version, just to be sure.

    #298 4 years ago
    Quoted from RatShack:

    Switch matrix driver is working and I'm able to start a game and score points.

    Congrats, I hope your breadboard won't fail you. Sometimes this stuff can get really nasty when it get's too complex.

    Quoted from RatShack:

    It's using PC1-PC8 for the data bus, pins 33-40, correct? So arD0 & D0 are controlled by PC1 on pin 33.

    Correct. On the Due board PC0 is not available as a GPIO, so I had to use PC1 - PC8.

    Quoted from RatShack:

    The switch matrix code initializes SwDrvMask = 2, which is PC1. But it is left shifted before it's used for the first time

    It is already used during setup:

    REG_PIOC_SODR = AllData - SwDrvMask; // put select pattern on data bus

    There Sw_Sel0 is selected which means it's set to low level (Williams uses a low level switch strobe).

    The basic principle is as follows:
    During the 1ms interrupt (TC7_handler) the switch rows (Sw_Sense) are queried first, before the next Sw_Sel is selected by shifting it to the left. This leaves 1ms for the switches to settle before the next interrupt occurs and the Sw_Sense pins are queried again.

    Normally SwDrvMask is related to SwDrv. The latter is the number of the active switch driver and SwDrvMask is the pattern to select this driver. One exception is when SwDrv becomes 7, because Williams uses 8 additional direct switches which are not part of the switch matrix. The APC treats those as a 9th switch column which is not selected by SwDrvMask but by Sel13 which selects U19.

    Quoted from RatShack:

    The latest code from GitHub gave me compiler errors such as the one below. I resolved it by moving APC_setlist after setup().

    I also have this from time to time. In Eclipse it is sufficient to do a 'Clean project' and compile again. If you move APC_setlist back to it's original position and compile again it's probably going to work now. There must be a compiler option to avoid this, but I don't know which.

    #302 4 years ago

    Looks like it fails to connect.

    You already had the USB connection working last week when you did your switch test. Does this setup still work with these two DUE boards?

    Quoted from ThatOneDude:

    I updated both

    Did you update them with V0.13? V0.12 won't come up in USB mode.

    #306 4 years ago
    Quoted from ThatOneDude:

    Is there a chance that this version of MPF(v0.53.3) isn't compatible with 00.13?

    I'm not sure, but I'd go for the DEV version of MPF.

    Quoted from ThatOneDude:

    This is on a board unconnected to the APC yet.

    Quoted from ThatOneDude:

    And then any subsequent attempt to connect with MPF will fail.

    Try to press the Reset button of the DUE.
    I had DUEs that wouldn't start automatically after powerup. Therefore the APC has a capacitor that generates a power on reset, but when you use the DUE without the APC board you might have to press Reset manually to make it work.

    #308 4 years ago
    Quoted from RatShack:

    Is that C14?

    Yep.

    #314 4 years ago

    Hi guys,

    we're currently facing one (hopefully) last problem with our PinMame implementation and I'd like to ask for your help to gather the required information to solve this.

    So far everything works well with PinMame controlling my Pinbot except for the music channel.
    Apparently PinMame distinguishes two sound boards (channels) and sends codes (bytes) to those. In case of the sound channel this seems to be quite straight forward and we were able to link every code to a sound to be played. This is already working quite well.
    However, in case of the music channel things are different as most of the codes being sent to this channel are not linked to a certain music score, but seem to be commands for the music board itself. At the moment this causes the APC to stop playing the current music file and complain about a missing music file instead.

    Alas, we havent been able to find any information about these 'command codes' for the music boards. For the APC we're mainly interested in the codes for Williams boards, but Bontango is having similar issues with Gottlieb https://pinside.com/pinball/forum/topic/gottlieb-system80b-soundboard-extended-sound-set , so any kind of information is welcome.

    #318 4 years ago
    Quoted from Snux:

    this might be the most useful link to some code in the FreeWPC repo...

    That's going to be an interesting read. Of course for us the major question is how much of this is also valid for System11 audio boards.

    #320 4 years ago

    Oh yeah. You have my vote for the 'master of breadboarding' challenge

    What do you plan to do next?
    V0.13 now features the WriteToHwExt command for controlling the HW extension port. This could help you to control the lamps, but up to now it's not documented.

    #322 4 years ago
    Quoted from RatShack:

    uses the existing lamp driver lines with new code.

    If you use 74HCT377 as buffers for 8 lamps each, you wouldn't even need new code IMHO. You could spare U3 and U5 of the APC and use the outputs of U6 to enable the new 74HCT377 ICs. Sel0 could still act as a clock for all of those.

    #325 4 years ago
    Quoted from RatShack:

    I wanted to eliminate the light dimming code at first while I got it running.

    You mean the DimInserts setting? Yes, that doesn't make much sense in your case.
    Similar situation with the LampWait counter. You could either remove it or use it to specify a refresh rate for the lamps. The latter would spare a few cycles of processing power, but it's almost nothing.

    Quoted from ThatOneDude:

    Finally had the time to finish the soldering.

    If you face a problem during testing, please promise to keep your soldering iron holstered and give me a chance to guide you through the debugging process first.

    #328 4 years ago

    I remember you had tested the switches successfully with this APC board. That means we can exclude any board related issues, right?

    If you run

    mpf -b -v
    MPF will write a more detailed log into your logs folder. It shows the whole USB traffic between MPF and APC.

    Command 0x28 queries a specific switch and 0x29 returns the number of a switch that has changed it's state recently.
    Consult the Lisy protocol reference for details :

    docs.missionpinball.org/en/dev/hardware/lisy/protocol.html

    #331 4 years ago
    Quoted from ThatOneDude:

    I'll try to post my testing methodology for anyone that might need it going forward.

    That could be quite helpful.

    Talking about Jokerz!
    I just learned that this machine uses a unique audio board which is able to generate stereo sounds. I was not aware of that and it has some impact on the use of the APC. The HW of the APC is able to generate stereo sounds, but the speakers must be connected with caps (DC-blocks) in this case. I have to include a warning about this in the documentation. Also the SW is only able to deal with mono signals at the moment.
    So be careful when connecting your Jokerz! speakers to the APC.

    #334 4 years ago
    Quoted from ThatOneDude:

    is there something in MPF or the APC platform that could explain this?

    Probably a typo in the config file. A missing space or a tab instead of a space - something like this in the definition of s_08. MPF is very picky with the syntax.

    #337 4 years ago

    Ooops, sorry - I should have remembered this.
    The High Score Reset is my blanking button. I use it mainly as an emergency stop which releases all coils and clears displays and lamps. And I use it when writing a new SW to the Arduino.
    The reason for the latter is that if you program the Arduino while the APC is running in your pinball, the SW is being stopped and the reset kicks in. But there is a delay between both events which causes the lamp and display matrix to stop for some ms at a certain position. Therefore the displays and lamps can produce a short bright flicker. This is not necessarily harmful, but they‘re not going to like it either.
    That‘s why I‘m pressing High Score Reset before I write a new SW to the Arduino.

    However, as you‘re using MPF there‘s no need for you to reprogram the Arduino, so you might as well comment out case 8 and use switch 8 for something different.
    But if the blanking is invoked once it can only be released by a system reset, so you have to choose whether you keep it as a blanking or use it differently.

    #339 4 years ago
    Quoted from ThatOneDude:

    What's the expected pinout of the special solenoid switches?

    The order of these switches is weird indeed, but it's still original.
    I have attached the corresponding part of a Williams Sys7 manual. The switch number is stated on the left, so pin 2 is for switch 3 and so on.

    The switches 71 and 72 are Special. 71 is the memory protect button and 72 is the Advance button.

    Quoted from ThatOneDude:

    Also, shouldn't these be causing the special solenoid pins to ground?

    No, the APC treats them as normal switches, so you have to define a 'Hardware Rule' in MPF to make the special solenoids respond to them.

    Special switches (resized).pngSpecial switches (resized).png
    #341 4 years ago
    Quoted from ThatOneDude:

    I also need to build a lamp matrix

    You could still put it in your BK2K.
    Since your displays aren‘t working you‘d have to change the APC_defaults in APC.ino. If you change the second byte from 3 to 0 the system will come up in the BaseCode which cycles the lamps from 1 to 64 as some basic attract mode.

    In order to do this your APC_defaults have to look like this:

    const byte APC_defaults[64] = {0,0,3,1,0,0,0,0, // system default settings
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0};

    #343 4 years ago

    I'm not sure which USB commands MPF uses to control these modern flipper fingers, but there's a good chance that it won't work with the APC. That's because all Williams games prior to WPC use a simple flipper relay.
    Therefore the correct way to enable the flipper fingers for these old games is:

    digital_outputs:
    game_over_relay:
    number: 25
    type: driver
    enable_events: ball_started
    disable_events: ball_will_end

    This will activate the Solenoids 23 and 24. You can take a look at the config of my Basic Rollergames Setup for the correct spacings.

    https://github.com/AmokSolderer/APC/tree/master/DOC/Software/MPF/Rollergames

    A simple way to trigger a solenoid is to add a pulse_event to it's definition:

    c_lock_diverter:
    number: 8
    default_pulse_power: 1
    default_pulse_ms: 2000
    pulse_events:
    balldevice_bd_lock_ejecting_ball

    #345 4 years ago
    Quoted from ThatOneDude:

    This is still bench testing, so there is no machine. I wanted to verify that each solenoid output will pulse with an LED prior to plugging this into a machine.

    Yeah, got that. That's why I suggested the pulse_event. It took my quite a while to find that in the MPF docs and I found it to be very useful for testing.

    Quoted from ThatOneDude:

    I'll experiment with pulse_events today. Are these defined somewhere? I don't see balldevice_bd_lock_ejecting_ball being defined in your configs, so I assume that the naming convention is defined by MPF.

    Oh, right. If you want to see the corresponding config you have to look into the V0.13 branch.
    I hope it's only a few days before I can do the new release. The current master branch is rather outdated.

    #347 4 years ago
    Quoted from ThatOneDude:

    Does it parse the string and figure out that this is referring to the bd_lock ball device?

    Yes, that's it You can find the corresponding help page here

    http://docs.missionpinball.org/en/latest/events/balldevice_name_ejecting_ball.html

    BTW, I'm still an MPF noob myself, but I think I know how you feel right now. I remember that I was totally confused after completing the tutorial by all the events and devices. I was missing some kind of golden thread leading me through all of this.
    However, for me it got a lot better after I found out how much information is available in the 'Reference' part of the docs. Especially the 'Config File Reference' is most helpful, because you can see the events and options for a particular device.

    #350 4 years ago

    Yes, correct. But if you're looking for a particular solenoid to probe, you have to consider that the 'Solenoid Drivers 1' connector is in the middle. So the order of the pins might be different than you expect.

    #352 4 years ago
    Quoted from ThatOneDude:

    USB_FireSolenoid(255, i);

    Depending on your test circuit 255ms may not be long enough to see a flash.

    I think it would be easier to do it with a terminal program and the Lisy protocol:

    http://docs.missionpinball.org/en/latest/hardware/lisy/protocol.html

    You could use command 0x15 (Enable Solenoid at Full Power) to permanently turn on a solenoid and command 0x16 (Disable Solenoid) to turn it off again.

    #353 3 years ago

    I just released SW Version 0.13 and updated the documentation.

    The main improvement is that we have implemented PinMame support, watch my Pinbot video to see it working:

    For details about what's new, please read the changelog

    https://github.com/AmokSolderer/APC/tree/master/DOC/Changes.md

    #355 3 years ago
    Quoted from RatShack:

    Is PinMAME support still limited to the Raspberry PI build?

    Yes, we're focussing on the PI. We're even planning a new APC version with the Pi being located on the APC board. You wouldn't need an additional Lisy_Mini board or a USB connection then - it would just work on one board via I2C.

    Actually, we're collecting ideas for the new APC board at the moment, but up to now adding the PI is our only functional upgrade.
    So if you feel that something is still missing and should be included on a new board, now is the right time to tell us.

    #357 3 years ago
    Quoted from ThatOneDude:

    For my work, a Pi is somewhat underpowered(even a Pi 4)

    Well, let's put it this way: you're probably not the typical user. I guess most guys are going to use the original segment displays and in this case even a Pi zero is enough to run PinMame on.

    For guys with special requirements like you, there will still be the USB control mode like it is today. That means you can just skip all this Pi stuff and connect what ever you want to the USB port.

    1 week later
    #364 3 years ago
    Quoted from RatShack:

    If the PI is able to emulate the displays via HDMI that might be enough to get me interested in using one.

    You mean the display emulation from PinMame?
    I'm not really familiar with Raspberry Pis, but I heard that they're quite common for emulating old video games. So I guess if they have enough power to run a full video game emulation than it should be sufficient for the display emulation of PinMame also.

    May be jabdoa knows whether you can run MPF-MC on a Pi and what the performance limit is.

    #371 3 years ago
    Quoted from matiou:

    Hi Frank, could you suggest a through hole equivalent to the BSS123 ?

    I have the stuff lying around here so I hope I can try it out next weekend.
    Basically you need a FET with a low Gate Threshold Voltage or your input pin of the Arduino won't recognize a H level. Of course the maximum Drain Source voltage of the transistor should be well above the voltage being applied to it.

    #372 3 years ago

    What I wanted to say is that it doesn't make sense to recommend any transistors before I don't know if the one I have in mind does even work correctly.

    #374 3 years ago

    That sounds like a question for RatShack

    1 week later
    #376 3 years ago

    Found some time to test the shaker controller
    https://pinside.com/pinball/forum/topic/arduino-pinball-controller/page/5#post-5511845
    and it works as expected.
    I just used some very basic test SW which is only indicating that the pin has been triggered. That means I didn't test the decoding of the lamp and switch matrix, but the signals look perfect on the oscilloscope so I don't expect any problems there.

    Quoted from matiou:

    Hi Frank, could you suggest a through hole equivalent to the BSS123 ? I don't think I'm good enough to solder tiny surface mount components

    Finding adequate through-hole components seems not to be so easy any more. It has to be an N-channel enhancement MOSFET. The maximum gate-threshold voltage should not exceed 2V and the maximum drain-source voltage should be greater than 80V. I guess the TN0110 should do the job.

    If you just want to trigger on solenoids and not on matrix signals like switches and lamps you could also spare the whole MOSFET stuff and use a simple 1N4148 diode instead. You would then have to use the internal pull-up resistors of the Arduino and connect the anode of the diode to the corresponding Arduino pin.

    #378 3 years ago
    Quoted from Kneissl:

    Anyone have an extra PCB they’d sell?

    Of the shaker board?
    I never ordered boards, but just etched one for a friend of mine. As it is so simple it could also be done on a breadboard.

    #380 3 years ago

    BTW, we're working on a new (and probably final) Version of the APC board. Schematics and first layout are done albeit not yet released.
    The only difference to V2.4 is that on the new APC board the Raspberry Pi is also included. Therefore no additional Lisy_Mini board is needed any more if you want to run PinMame or MPF without a PC connected.
    The use of the Pi is optional. If you don't populate it then you have the same functionality as in V2.4. Even if the Pi is populated you can still select the USB port for communication. That means you can use the on board Pi for PinMame and still use your PC to develop some MPF rules for your game.

    As many people seem to have problems populating the APC boards, I'm thinking about doing an additional layout for automated assembly. From my point of view there're three options:

    1. I'd try to move as many of the SMD components to one board side, as this is required by most chinese board manufacturers to do surface mount assembly. However, I'd keep the large 1206 packages and the through hole ICs, so it's likely that not all SMD components will fit on one side.

    2. Same as 1, but I'd change the packages to 0603 to ensure that the whole SMD stuff fits on one side.

    3. Same as 2, but I'd change the ICs to SMD also. This would leave only the connectors and some special components to be soldered by the user. In case of a repair you would then have to deal with SMD ICs of course.

    What do you prefer?

    #386 3 years ago
    Quoted from bontango:

    Of course with option 3 it is a lot of work todo for amoksolderer ...

    Doing layout work can even be fun from time to time, but browsing component lists is almost at the same fun level as doing my annual tax declaration.

    Quoted from ThatOneDude:

    I'm ambivalent about the ICs being smd or not, if I'm getting them prepopulated.

    I think nowadays most manufacturers only populate SMD components ...

    Quoted from Kneissl:

    I mainly just want the latest version.. in whatever form

    The prepopulated form has one big drawback of course - five boards will cost a lot more.
    Up to now you could just order five boards and only use one, but when you also have to pay for the components this is not a good deal any more.

    The do-it-yourself version is more or less ready, but I think I'll give the SMD design a try and release them both together.

    2 weeks later
    #395 3 years ago
    Quoted from Kneissl:

    Got audio and display going!

    Do you use this Whirlwind only for testing or is this the machine you want to use the APC in?
    I'm asking because Whirlwind uses a so called 'Sound Overlay Solenoid Board' to be able to control five additional solenoids and you'd be the first to test it with the APC.
    This board can be connected to the HW_ext interface, but I still have to add the corresponding SW option.

    So, if the Whirlwind is your target machine, you should ignore this Overlay Solenoid Board for starters. If you got everything else working, I have to add the SW Option and we have to give it a try.

    #400 3 years ago
    Quoted from Kneissl:

    Target machine is this.

    Well, this doesn‘t look like it‘s going to need more than 24 solenoid drivers.

    Quoted from Kneissl:

    But if you want someone to help test the sound overlay board shoot me a pm and I’ll do what i can.

    That won‘t be necessary. It’s just that I didn’t implement the SW for the solenoid expander board yet and the ‚Sound Overlay Solenoid Board‘ is very similar just with less drivers. So, if Whirlwind was your target machine I‘d have to do it for you being able to use all of Whirlwind‘s solenoids, but now it looks like I have a bit more time.

    Quoted from RatShack:

    I am never hand wiring a board this complex again.

    The master of breadboarding strikes again.

    3 weeks later
    #407 3 years ago
    Quoted from buskimanu:

    but I'm scared if this project is too much for me.

    If you're unsure whether your electronic skills are good enough to populate the boards then I'd recommend to wait for the APC 3.0.
    As already mentioned it will have the Pi already on board and I'm also working on a version which can have most of the parts populated by the chinese board manufacturer.

    Alas, this is going to require some patience as I still have to complete the layout and assign the manufacturer's component numbers. Then some SW rework is necessary to change the communication to I2C and implement a settings menu for the Lisy part as there won't be any DIP switches on the APC board. This is going to require also some work from my Lisy partner who is currently rather busy with other Lisy related issues.
    When all this is done I'm going to order some boards to test them and if everything works I can release the design.

    So in the end we're probably talking about 3 to 6 month depending on how many time we can spare for this project.

    After that you'd still need an auxiliary power driver board and in order to use PinMame without a sound board you'd have to extract the Big Guns sounds from PinMame and put them on the SD-card as described here:

    https://github.com/AmokSolderer/APC/blob/master/DOC/PinMame.md

    1 month later
    #413 3 years ago

    The SMD version of the 3.0 hardware is ready.

    Alas, during the ordering process I had to learn that the SOIC version of the IC I used most on the board has run out of stock at JLCPCB. They still have it in TSSOP, but while SOIC can still be soldered by hand quite well, this is much more difficult with TSSOP. So in the end it would mean that most people could not service their board in case of a defect.
    That was not my intention, so I just ordered 5 boards and I now have to solder the missing ICs by hand. Let's hope they're back in stock soon as this somehow betrays the idea of easing the assembly by letting the manufacturer do the job.

    But there's also good news, as the price for the SMD components and the assembly fee is below 10€ per board, which is a very good price IMHO.

    #415 3 years ago
    Quoted from ThatOneDude:

    Will the code change significantly between the older version and 3.0?

    No, the same code will run on all HW versions. This is also valid for future updates and bugfixes.
    Of course the 3.0 specific features will only work with this HW, but the older HW will still work and just ignore those.

    One example: if you look into the 0.14 code you'll find the new 'Connect Type' setting. This determines whether the APC communicates via 'USB' or 'OnBoard' (I2C). Of course the latter requires a Pi on board and will therefore only work with the new HW, but with 'USB' selected the old HW will work as before.

    #417 3 years ago
    Quoted from jabdoa:

    I guess that the protocol would be the same or is that a different protocol?

    The protocol is the same.

    Quoted from jabdoa:

    Should we add I2C support for APC in MPF as well?

    This might be a question for Ralf, because if we let Lisy run MPF then it would also have to control the interface. That would mean MPF wouldn't have to care about it.
    But to be honest I'm not aware of the pros and cons of running MPF independently or under Lisy control.

    #418 3 years ago

    Don't know if Ralf is following here, so I raised this question in the APC 3.0 dev thread.

    BTW any updates from your projects?

    ThatOneDude
    RatShack
    Kneissl
    and all the others. I'm curious how your projects are evolving.

    We have created a space for own APC projects.

    https://www.flippertreff.de/start/forum/forum/189-eigene-apc-projekte/

    It's in the german forum, but you can also use it in english. So if you like you could even start your own thread to document your project, ask questions and so on. This is also meant for people thinking about starting an own APC project to become an idea what problems might come up and how they can be solved.

    Of course you'd probably get more feedback if you'd start such a thread here in Pinside.

    #421 3 years ago

    Thanks for the updates.
    Sometimes I need to be reminded why I'm bothering with the dark sides of a public project (documentation and so on) and then it always helps to see that people are actually using it. Unfortunately (but understandably) people tend to keep quiet if things are going well, so most of the guys I get to know have questions or problems. But of course I'd also be interested in those cases where it just works fine.

    Quoted from ThatOneDude:

    My thought was to wire it into an APC and write new rules in MPF while I wait for art on my other projects.

    If you don't want to use the WPC power driver board, you could theoretically wire your playfield to the APC, but there're some differences that you have to take care about.
    From the back of my head I remember that the switches are driven with 12V in WPC instead of 5V, so the switch part needs to be changed.
    Not sure about the lamp voltage, but this shouldn't be a big deal as the APCs lamp circuit still has some voltage margin.
    Solenoids should work, but you'd probably need the solenoid expander board to be able to drive more than 24 solenoids.
    And there're some additional WPC features like the GI SCRs that have to be added by an extra board which could then be connected to the HW_extension interface.

    This is just what I remember at the moment, but there might be more differences.

    Quoted from RatShack:

    After wiring up that driver board I decided to work on anything but boards for awhile!

    Yeah, these wires look like a lot of work and prone to all kinds of errors. That's when I like my etching machine.
    Do you plan to do real PCBs after your prototype phase?

    #423 3 years ago

    Oh, sorry I somehow confused Strange Science with Scared Stiff.
    Strange Science is from the generation that Bally built shortly before they were bought by Williams, right?

    1 week later
    #426 3 years ago

    The APC 3.0 boards have arrived. Now I have to populate the rest and do the testing.

    Hopefully JLCPCB will soon restock the 74HCT273 in the SOIC package, because at the moment it doesn't make much sense to let them do the assembly.

    P1020689 (resized).JPGP1020689 (resized).JPG
    1 week later
    #428 3 years ago

    Thanks for the feedback

    Quoted from Isac:

    I will definitely add APC boards to my next JLCPCB order

    Alas, there's still no SOIC variant of the 74HCT273 available at JLCPCB and also LCSC (their shop) doesn't offer any. That makes me wonder whether all the work of making an SMD version of the APC was in vain.

    #432 3 years ago
    Quoted from ThatOneDude:

    Think it would make sense to be able to drive that from the expansion bus?

    I don't have any Whitestar schematics at hand, but if the interface is 5V than it shouldn't be a big deal. The 8 data lines are already available at the expansion bus and you could use something like a 74HCT138 to generate up to 8 enable signals from the 4 select signals of the expansion bus.

    Quoted from LovelyCoCoNuts:

    I am still interested. Please let me know when a board is available

    I'm sorry, but it looks like it's still going to take a while for the 3.0 boards to be released. This is not due to HW issues, because apart from 1 forgotten resistor the 3.0 board is doing a great job in my Black Knight.

    The first problem is that the Lisy maintainer is currently suffering from FPGA-fever. On lisy.dev you can see that he's building all kinds of FPGA based replacement boards. Of course this is great for Gottlieb users, but it also means that the Lisy development for APC is stuck at the moment.
    As some SW changes in Lisy are necessary to completely test the on board Raspi of the APC 3.0, this also means that I'm not able to complete the 3.0 testing at the moment.

    The second problem is that LCSC has changed the status of the SOIC version of the 74HCT273 to discontinued which probably means I have to find some kind of replacement and do the necessary layout changes.

    However, apart from the Raspi being on board, a bit more functionality on the HW extensions interface and a new layout to enable the board being populated by the manufacturer, the 2.4 board has the same features. So if you don't want to use Lisy and you're willing (and able) to do the soldering you could still ask whether someone has a V2.4 board left for sale.

    1 week later
    #435 3 years ago

    What additional functionality does this Whitestar board have? I'm just wondering why you want to use an extra board, because for normal solenoid and lamp stuff the drivers of the APC should be sufficient.

    #444 3 years ago
    Quoted from ThatOneDude:

    The question I have is speed.

    From the Apollo 13 manual I just downloaded it looks like this is just some power driver board similar to WPC. Therefore I don't think speed will be an issue as the control signals for lamps, solenoids and so on are usually in the milliseconds and this watchdog circuit has a default of 150ms.
    That means there're only two restrictions when using the HW_ext bus of the APC to drive it. You already pointed out the first one: for full access you'd need four address lines and a strobe which makes 5 signals, but the HW_ext interface only features 4. When I remember right you don't want to use the display port of the APC, which means you could use the segment outputs to control the stern board. On the upside this will give you 32 additional select lines, but on the downside it means you wouldn't be able to just use the WriteToHwExt command. Instead you'd have to change the HW_driver on APC.ino to support the addressing via the display signals.
    The second restriction is that the stern board features a bi-directional bus, but the bus of the APC is just mono-directional. However, from what I can see from my quite blurred schematics, this is not a big restriction as these bi-directional functionality just handles some AUX input stuff.

    Quoted from aaronhmorris:

    I have recently embarked on the conversion of a Flash! pinball machine to a custom build.

    Welcome to our thread. We have a guy in the german forum who is also customizing his Flash!

    https://www.flippertreff.de/start/forum/topic/11522-flash-wiederbelebung/

    I don't know if some internet translator could be useful here, but the pictures alone might be interesting, too.

    Quoted from aaronhmorris:

    1) How is the DUE protected from 5v? Is it only via the voltage divider created by the 4.7k resistors (R77-R85) and the 18K R network on the switch driver schematic? That looks like it should drop things to 3.96v

    This is true if you'd drive the Sw_Sense signals with 5V, but here they're pulled up by RR7 leading to 5V*18K/27.4K = 3.28V.

    Quoted from aaronhmorris:

    What is the unique property of this part? Why wouldn't other try-stateable buffers suffice? Is it the open collector nature?

    Exactly, as the pullup of the Sw_Sense lines must be done exclusively by RR7 we're just allowed to pull them down by an open-collector driver.

    Quoted from aaronhmorris:

    Question 5). Resistor R88 is labeled as 47k ohm on the schematic and BOM description. However BOM part number is for a 4.7K ohm resistor. I assume that the schematic and description are correct and it should be 47k.

    Both will work. I'm going to correct the BOM part number to 47K just to save some current and prevent global warming

    Quoted from ThatOneDude:

    The biggest savings would be to wait until JCLPCB gets the missing parts in stock again.

    As the parts have been set to 'discontinued' I doubt they'll be restocked. I probably have to change the footprint to TSSOP ...

    #446 3 years ago

    This is also possible and you don't even need a Teensy for that - two 8 bit latches should do the job.

    #448 3 years ago

    Keep in mind that the APC 2.x versions have a logic level of 5V at the data and 3.3V at the select lines of the Hw_ext interface. This works well with HCT logic, but the Teensy might not like it.
    This is resolved with the APC 3.0 BTW which has 5V at all Hw_ext pins.

    3 weeks later
    #450 3 years ago

    We're getting closer to the APC 3.0 release, now it's mainly documentation, BOM and manufacturing files that are still missing.

    If you're curious what main improvements the new version will bring, you can already take a look at the APC 3 video:

    #455 3 years ago
    Quoted from aaronhmorris:

    Lets say I need switch 12 to fire solenoid 4 in hardware (directly on the Arduino). What LISY command would achieve that?

    You also have to specify a pulse time in ms. To pulse solenoid 4 for 40ms when switch 12 is activated, this would be:

    60 4 12 0 0 40 255 255 1 0 0 (all values decimal)

    Quoted from Zigzagzag:

    Will the APC 3.0 let me use PinMame for Pinbot with an original sound card and work ?

    No, this is only possible for System11C (maybe also some late 11Bs) machines, because the other Sys11 versions (including Pinbot) have a part of the sound hardware on the CPU board which will be replaced by the APC.

    Quoted from Zigzagzag:

    Or do I need to extract sound files as described on Github ?

    In the Pinbot case you're lucky, as the files are already available for this machine.

    Overall, the whole PinMame sound stuff is still a work in progress. For example some PinMame sounds are just not good (the open/close visor sound in such a case), so it would be nice if someone could record them from the original HW.
    Sys11 music looping is also not yet implemented. I cheated by recording long music files, but if you keep the ball in the shooter lane long enough, the music will just run out. However, these are just features that have to be added in the SW and it's not really relevant for the game as you can see in the PinBot video.

    #457 3 years ago
    Quoted from Zigzagzag:

    if I understand correctly, using APC all sounds will be replaced and no sound board is needed, then.

    That's correct.

    Quoted from Zigzagzag:

    But can the Lisy/PI handle all sounds instead, so it is emulated instead of sampled ?

    We had this discussion before, so I guess most of your questions will be answered if you read from here (post #165):

    https://pinside.com/pinball/forum/topic/arduino-pinball-controller/page/4#post-5419561

    Quoted from Zigzagzag:

    Will the looping etc. be correct then ?

    Yes, but adding the looping to the SW is not a big issue, it's just not very high on my priority list as it has no effect during normal game play. What we really need is more people extracting sounds and trying to make their games work. With their help we can learn how the various System11 sound boards work and then we can think about a general concept how to implement this into Lisy/APC.

    Extracting sounds is no rocket science, but time consuming and at the moment our focus is to release APC 3.0 and make Lisy work for all Sys3 - 11 games.

    #459 3 years ago
    Quoted from Zigzagzag:

    I am still not clear on whether it's a hardware issue with PI/Lisy giving bad sound output

    I'm no PinMame expert, but AFAIK the UNIX PinMame is just not on the same level as the Windows version and the bad sound emulation of the UNIX version seems to be one of the issues.

    But this is not the only reason why we have chosen to let the APC generate the sound, as you can read here:

    https://github.com/AmokSolderer/APC/blob/master/DOC/PinMame.md#the-sounds

    BTW: Does anybody know a mouser counterpart for the PHAP3301 switch shown in the picture?

    Switch (resized).pngSwitch (resized).png
    #461 3 years ago

    Ralf, you're the best - I wasn't able to find anything.
    That means the fabrication files and assembly documentation are done.

    I've just ordered five additional boards even though the odds for mistakes are quite small as the changes from the last version are minor. But just to be sure that nothing went wrong, I'm going to do the new release when these boards have been tested.

    4 weeks later
    #463 3 years ago

    It took a while, but I have released the APC 3.0 HW version with the corresponding SW updates.
    Take a look at the changelog to check what's new.

    https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md

    The changes to the documentation have also been quite significant, so please give me a hint if you find a mistake.

    #468 3 years ago
    Quoted from bigfoot53:

    But i dont see a preview of the board or the placement of components is that normal ?

    I also have this problem of the missing board preview, but I was able to see the placement of the components at some stage of the ordering process.

    #469 3 years ago
    Quoted from ThatOneDude:

    Is there a BOM for the remaining required parts for an SMT populated board?

    The link to this BOM is in the 'Assembly' section of the How-To-Start page. I think you should read this page again anyway, as quite some things have changed with the APC 3.

    https://github.com/AmokSolderer/APC/blob/master/DOC/HowToStart.md

    1 week later
    #480 3 years ago

    I just did yet another GitHub release.

    https://github.com/AmokSolderer/APC

    This one is mainly an update of the documentation, but also the initial tests have become a lot easier.

    Please read the changelog for details:

    https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md

    Happy new year

    Frank

    1 week later
    #483 3 years ago
    Quoted from matiou:

    I hope it's going to be possible!

    We had a guy in the german forum who put the APC in his system4 Flash last year. It worked out of the box so I don't expect any problems with your Firepower. However, he didn't use the original displays, but my alphanumeric ones. When I remember right he wants to build some kind of pinball 'table' and therefore changed the layout of the displays to have them all on a single board. You can see a picture of this setup here:

    https://www.flippertreff.de/start/forum/topic/11522-flash-wiederbelebung/?do=findComment&comment=92506

    From the HW point of view, the system6 displays are very similar to the system7 ones so no issues there, but they have never really been tested which means we have to expect some minor SW tweaking to become necessary.

    We also learned that PinMame treats all Williams generations slightly different. Hence, if you want to use PinMame, Lisy probably has to be adapted to system4 also, but these changes are usually quite small.

    #487 3 years ago

    Yeah, these are just for mounting, so it doesn't really matter whether they're plated or not.
    Did you understand what the problem is? Did they make a mistake or is something wrong with my data?

    #490 3 years ago

    You're right - this doesn't explain what the problem was.
    Basically, I'd prefer to have these holes plated, because you can never have too many ground connections. However, it doesn't really matter and I think you were right to agree having them non-plated in this case, as from your shot it looks like they simply forgot to drill them. This means they probably would have started from scratch, because they cannot add the plating at this stage. So in the end insisting on having the holes plated might have caused a week of delay for no real benefit.

    #491 3 years ago
    Quoted from ThatOneDude:

    I've started a page for APC on the pinball makers wiki: https://pinballmakers.com/wiki/index.php?title=APC
    Given the context, it will mostly be used to describe how to use the APC with a homebrew or semi-homebrew system.

    Good ideal BTW.

    #493 3 years ago
    Quoted from ThatOneDude:

    I thought that steel screws would provide some measure of grounding as well.

    Yeah, but you wont even need it. My boards are mounted on wooden slats so no ground connection for the screws at all and they work anyway.

    Quoted from ThatOneDude:

    Do you mind if I pull pictures from your github repo? I will do a blanket attribution on the page and of course a lot of links back to your repo.

    No objections from my side. Feel free to use the stuff from my repo.

    1 week later
    #499 3 years ago
    Quoted from ThatOneDude:

    Did something change with the new version in regards to the extension bus?

    Yes, it's outputs can now be latched and all select signals have 5V level, see here:

    https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md#december-2020

    Quoted from Benboogaard:

    Guess is should be the native USB port and not the programming port???

    No, it has to be the programming port. This way you can program and control your board without having to change the ports.

    #503 3 years ago
    Quoted from Grangeomatic:

    Is this a common thing?

    I also had this problem twice, both were cheap clones from China. The interesting thing is that it only seems to happen on the bench. In other words, I had an Arduino running in a pinball machine for years without any problems and then I put it on the bench, supplied it with a 5V lab supply and it died.
    After the second Arduino gave up with the same symptoms I started investigating and I found out that the buck converter IC on the Arduino board produced a supply short.

    The good thing is that you can probably still use it, as we don't need this converter when the Arduino is used with the APC. If you have the same clone as mine then you should see a small 6-pin SMD IC in a corner of your Arduino board (see picture). If you remove this IC you have a good chance that the short is gone, but be sure that there's no solder left connecting the pads when you have the IC removed.

    Quoted from Grangeomatic:

    Is this something where I need to buy an official due?

    Probably. This part seems to be different to the official Arduinos so I guess they swapped in something a bit too cheap. But apart from that the clones worked fine for me so far.

    P1020770 (resized).JPGP1020770 (resized).JPG
    #513 3 years ago
    Quoted from Grangeomatic:

    My knockoff Due is working.

    That's great news.
    I was already suspecting my power supply to have damaged the Arduinos, but now it looks like it's just bad converters.
    However, I never had this problem in a pinball machine which makes me assume that this problem is caused by the voltage spikes of switched mode power supplies.
    What kind of power supply did you use when your Arduino failed?

    Quoted from Grangeomatic:

    I can never power it through the Vin pin, correct?

    Yes, that's true.

    Quoted from Edy_Wang:

    I don't really want to use Python, MPF or PINMAME

    It could still make sense to use PinMame. This way you could switch between the original game and your own C code. If you have an APC 3 board this is easily done as you don't even need an additional board for the Raspberry Pi.

    #518 3 years ago
    Quoted from Grangeomatic:

    I had only powered it first via the USB programming cable (worked fine), then through the APC in my Pharaoh (seemed to fail instantly)...nothing else.

    There goes my power supply theory.

    Quoted from matiou:

    Oh sorry I thought it was... I think I found a "game number" for it in the doc so I concluded (a bit quickly) that it was there

    I guess, you'd already be able to run PinMame and may be even start a game, but every generation requires a bit of SW tweaking before it runs smoothly and we didn't have any System6 PinMame users yet.

    Different topic: what do you think about posting a short description of your APC setup (which machine you want to use and if you want to use it with MPF, PinMame or C code)? This would give us an overview of how our system is used and what to improve. Additionally you might find people working on the same stuff and could combine your efforts.

    #526 3 years ago
    Quoted from Grangeomatic:

    I currently have a Pharaoh, a Firepower and a Cyclone that it would work in, so those would be my top 3 at the moment

    If you use the original sound board then the Pharaoh should work out of the box. Nice machine BTW, I like these two level playfields and the magna save feature. I have a Black Knight and a Jungle Lord, so a Pharaoh would fit quite nicely.

    Quoted from ThatOneDude:

    I'm using it in three homebrew projects, one of my own and two friends.

    You're doing everything in MPF, right?

    Quoted from matiou:

    I have a Firepower for which I'm planning to use the APC.
    At first, just with custom code for fun... but I guess ultimately with Lisy/pinMame.

    Do you plan to use MPF or C?
    The nice thing is that you can switch on the fly between your own code and Lisy/PinMame. Bontango is already working on Lisy to support system6.
    I'd expect some minor SW issues with the displays, because nobody has tried the old 6 digit displays yet.

    Quoted from waveman:

    I know APC is designed for Williams 3 - 11, so I'll have to see if there is a way to make it work.

    I think Lisy35 can handle these old Stern games, so may be this would be a better choice:

    https://lisy.dev/lisy35.html

    Quoted from mwiz:

    I also have a Pharaoh I want to use this to run it using Pinmame. I bought the machine as a project without boards/parts missing.

    Do you have displays? If not my system7 LED replacement might come in handy.

    https://github.com/AmokSolderer/APC/tree/master/DOC/Hardware/Sys7_Display

    But if you want to do your own game code you might want to try the alphanumeric ones, but these can only be used with the APC.

    https://github.com/AmokSolderer/APC/tree/master/DOC/Hardware/Sys7Alpha

    Quoted from mwiz:

    I only see 1 picture of the populated board in github docs. Are there any more pictures someplace?

    What would you like to see? If it's about the components then check the component location plan and the BOM which are available on my how-to-start page

    https://github.com/AmokSolderer/APC/blob/master/DOC/HowToStart.md

    Quoted from Apex:

    For me I am going to use the APC board to brew up an expanded game (old bally).

    Depending on the game you could also check Lisy. Could save the trouble of adapting the APC to Bally.

    #532 3 years ago
    Quoted from Grangeomatic:

    I tried to fire up my Pharaoh last night...no luck.

    Did you change the 'Connect Type' settings to 'On Board'?

    Quoted from Grangeomatic:

    That'll hopefully happen this weekend with some debug logs and such.

    As a first step it would be good to know the state of the on board LEDs, as this shows whether the communication between Lisy and the APC works.

    #535 3 years ago
    Quoted from Grangeomatic:

    What's interesting is that yesterday, I had LISY V5.27-14, and I got nothing out of it.

    I guess I had something similar when I started using Lisy. The bootup seemed to work, but the attract mode never started. After I had played around a bit it suddenly worked and it wasn't clear for me what had changed. Now, I'm using Lisy for more than a year and the issue never came back which means we cannot reproduce it any more.
    But a guy in Germany had the same, so it does seem to be a common issue.

    May be it's just when the machine is used for the first time and reverts to the factory settings. Any hints are welcome.

    #537 3 years ago
    Quoted from Grangeomatic:

    Anyway, like you said, it's working now, so I'm not sure I'll be able to reproduce it.

    Yeah, I don't expect you to have this problem again.
    But the odds are that more people are going to have this issue when using Lisy for the first time.

    So to all of you who are going to use the APC with Lisy. If you're system is booting, but not really starting up then please try to keep track of what you're doing to make it work. Because it's probably going to work all of a sudden and we'd like to know what you did before. This could give us an indication how to solve it.

    #541 3 years ago
    Quoted from Grangeomatic:

    Question - is there a setting I'm not aware of that controls when sounds get cut off?

    No, at least not for the APC.
    If the original audio board is used, the APC just forwards the audio commands to the external boards. That means there must be some command coming from PinMame for the sounds to be interrupted. You could try to capture this command in an audio debug log. If we know what it is, we can use PinMame to try to find out what it's good for and add this functionality or we can simply block it in the APC SW.
    I had to do this once in the Pinbot sound setup as there was an obviously misplaced sound played during multiball. I couldn't make any sense of this, but PinMame definitely requested it so I had no choice but to block it.

    Another thought: May be your problems are caused by PinMame running your Pharaoh at an incorrect speed. Please check what throttle value is selected for your Pharaoh. You can find this on the Lisy SD card in lisy_m -> config -> lisyminigames.csv
    I guess the default is still 150, but for my System7 machines a value of 120 worked much better.

    Quoted from Grangeomatic:

    So I decided to try it with the native APC sound hardware.

    You can try it, but if this is caused by a PinMame command then the APC will also react to it. As long as the requested sound is missing, the APC will just complain about a missing sound, but it won't stop the one that's currently being played. However, in the end we have to know the sound number and try to make some sense of it.

    Quoted from Grangeomatic:

    Question - does anyone know how to get the automatic sound dump to work in pinmame?

    Even better: you can download System7 sound files as WAV here:

    http://www.mediafire.com/file/5wm7vq37yxua24l/NW7_V1.8_2019_10_07.zip/file

    Quoted from Grangeomatic:

    I got the sound debug log out of LISY, and after playing a game, it told me what sounds to start with. In this example, I need sounds 7f, 36 and 2e.

    The PinMame sound numbers are just the raw data that the CPU board writes to the sound board interface and 7f (01111111 in binary) is just to reset the data bus. This interface has no clock signal to indicate when the data on the bus is ready. Therefore the CPU has to set all data lines to high level after each command and the audio board expects this to happen before the next command is accepted. As System7 only uses 5 data lines there's no difference between 7f, 3f and 1f. That's why you have to send an 1f command - 3f and 7f will also work. I should add this to my documentation ASAP.
    I don't know what 36 and 2e are good for, so I guess you have to keep an eye on them.

    Quoted from Grangeomatic:

    [edit] - the bonus countdown and game over song now song now sound MINT!

    Probably because the interrupting sound is not yet available for the APC like I wrote above. To solve this properly we're going to need the sound numbers.

    Quoted from Grangeomatic:

    some of the sounds, out of pinmame, will play different phrases, even though they're the same sound number. How do I handle that so that it's not just saying the same things over and over?

    This is what I've called a sound series here

    https://github.com/AmokSolderer/APC/blob/master/DOC/PinMame.md#system-7

    If you provide me the sound number and how many different 'pitches' are available for this sound then I can add this to the APC SW.

    Quoted from Grangeomatic:

    Pharaoh has a droning sound that is typically playing through the whole game, but now it's getting cut off by the other sounds.

    Same as above. Just provide me the sound number and the amount of 'pitches'. In Sys7 BG sounds are automatically restarted after they've been interrupted by other sounds, but to do this the APC must know which number is the BG sound.

    Quoted from matiou:

    Saturday night soldering

    Looks good, now it's just the Molex connectors.

    #545 3 years ago
    Quoted from Grangeomatic:

    Throttle - I have not adjusted this, because I don’t really know what it does. Probably still at 150.

    With this you can adjust the emulation speed in Lisy. A lower value leads to your game running faster.

    Quoted from Grangeomatic:

    But I’d still like to know how to dump out of Pinmame. I’ve got a couple other machines I’d like to play with...

    We had a guy here in the german forum who extracted the sounds of a System11 Road Kings. AFAIK he used scripts to not have to do everything manually. He has not finalized his sounds yet, but if you like I can ask whether he can already share some methodology knowledge.

    Quoted from Grangeomatic:

    This may have to wait a bit.

    No rush, after all this is still just a hobby.

    Quoted from Grangeomatic:

    Of course, once we’re done, this can be the “sound package” for others to use on Pharaoh.

    That's the idea.
    I'm still looking for someone to host these 'sound packages'. I'd rather not do it myself, because this project is already quite time consuming and I'd therefore like to avoid any more tasks. So if someone has some serverspace left ... feel free to volunteer.

    Quoted from Grangeomatic:

    And now I know how to insert custom callouts to catch my friends off guard!

    Yeah, you could do a lot of stuff with minimal effort.
    For example System7 just uses one of the APC's two audio channels. This means you could disable the original BG sound of your Pharaoh and add a music track instead.

    Quoted from matiou:

    Maybe it could be cool to have this info as a key post of this thread (or maybe in the first post)... a summary little table with pinsider names / APC project details.

    Yes, this could be nice. But up to now it's just a few people who have send a reply so it's going to be a quite short table.

    #548 3 years ago
    Quoted from Grangeomatic:

    When you are able to get around to it (or if you'd prefer to guide me on how to do it myself)

    I can do it. I guess you provided all the information I need.
    Additionally I'll try to do add some documentation to make clear how it works. Then you can use my Pharaoh implementation as a basis and add later whatever you like.

    Quoted from Grangeomatic:

    However, it seems that it displays these numbers in decimal, not hex.

    Yeah, this is true for the old displays. The pre System11 displays can only display numbers - you can not even use the 7 segments as you like. Hence, I had no choice but switching to decimal for those. Should add that to the docs though.

    #552 3 years ago

    Too much work today. No energy left for coding.

    I hope I can make it at the weekend.

    #553 3 years ago

    I've added the game specific sound handling for Pharaoh. It's in the V00.22 branch on GitHub.
    I didn't have much time, so I hope I didn't mess things up.

    #557 3 years ago
    Quoted from Grangeomatic:

    I've got a hunch that this background sound is starting at a higher than normal pitch, but I'll have to look into that (or just ignore it).

    Well, you really have a sensitive set of ears.
    I'm currently redoing the handling of machine dependent rules (like sound) and I found a bug in the code that makes the BG sound to start from the second tune.
    I'm playing my Jungle Lord for months and never realized it

    You can correct this by changing line 840 in USBcontrol.ino from

    SoundSeries[2] = 1;

    to

    SoundSeries[2] = 0;

    then it should start with the right tune.
    But the machine dependent code will change significantly anyway. In the future it's going to be a modular approach which can also handle switch, lamp and solenoid based exceptions.

    But apart from that the APC generated sound is working 100%? No issues with bonus count down and end song?

    Quoted from RatShack:

    M100 is next after I wrap up GTB System1-80B.

    That means you're almost done with GTB System1-80B?

    #563 3 years ago
    Quoted from waveman:

    It looks like it's being used as a voltage divider, but I don't fully understand the schematic.

    Yes, it's a voltage divider and with 20K for RR8 the voltage at the input pins of the Arduino will go up from 3.28V to 3.4V. In the Datasheet of the Atmel Controller they state an absolute maximum voltage of 4V, so you're still well below the limit. You might slightly reduce the lifetime of the controller, but I'd assume this to be negligible.

    Quoted from matiou:

    Maybe the system tries to display the "6" or the "7" on the missing 7th digit... which results into an empty display...

    Exactly, up to now System6 displays are treated the same way as System7 and according to the System6 schematics a number at strobe 16 in the lower display row will not produce any output. I also see that the handling of the credit display is different, so I don't expect the menu navigation to work either.

    This is not a big deal, but nevertheless it's probably going to take some iterations before these display are working perfectly. I'd therefore like to finish the exception handling I'm currently working on before we start with the displays. I hope this is OK for you.
    Until then I'd recommend to select the first "------" after "-30093" and play with it. My guess is that except of the missing 7th digit and the credit display it should work OK with this setting.

    Quoted from RatShack:

    Yes. The 80B prototype board is still running strong. Testing the solid state flipper board for reliability issues.

    Do you have a pic or a video to share?

    #565 3 years ago
    Quoted from matiou:

    Quick feedback (minor), on the connector layout drawing (APC_Connectors.png), a red cross is missing to indicate the pin to cut on sys7_2J5

    Almost missed this. Thanks for the info, I'm going to correct it.

    #566 3 years ago

    As mentioned I've changed the handling of machine specific exceptions to a modular approach. This allows you to do individual changes to your machine in your own module.
    Take a look at

    https://github.com/AmokSolderer/APC/blob/V00.22/DOC/PinMame_howto.md#programming-exceptions

    to see how it works. As always, feedback is welcome.
    If you want to try it you have to switch to the V00.22 branch on GitHub.

    matiou V00.22 also features System6 display support. It's my first try, so don't expect too much, but please play around a bit and tell me what does work and what doesn't.

    #568 3 years ago
    Quoted from matiou:

    As you may have seen in the news, Texas is a mess right now.

    Apparently I didn't follow the news closely, so I wasn't aware of the situation being that bad in Texas.

    My best wishes for you and your family. Looking forward to hearing from you when the power is back.

    #571 3 years ago

    What happens exactly, does the credit display show anything at all? If yes does this change when you cycle through the settings?

    #573 3 years ago

    I think I found the problem. V00.22 has been updated, please try again.

    BTW, I've also changed the sound exception handling slightly to make it work better with Sys11 machines. The documentation has been updated accordingly:

    https://github.com/AmokSolderer/APC/blob/V00.22/DOC/PinMame_howto.md#programming-exceptions

    #575 3 years ago
    Quoted from matiou:

    Sound works but super loud...

    Are you using the digital volume control or the old pot on connector 10J4?
    It might be that Williams used another pot value for System6, so try to disconnect 10J4 and use the digital volume control instead.

    #577 3 years ago
    Quoted from matiou:

    I'm now using the digital volume control and it's working well... I'll debug later what was wrong with the pot.

    Remember to set the volume of the digital volume control back to zero before you reconnect 10J4 or the volumes will add up. But I'd recommend to use the digital volume control anyway, as the old pots can be quite bitchy sometimes.

    Quoted from matiou:

    However, the lamp index on the display seems wrong (not incrementing well and many lamps are showing the same index)

    You're using the test mode of the Base Code, right? Looks like I have to add some System6 display support there also.

    #578 3 years ago

    The testmode of the BaseCode should now support System6 displays, so you could give it another try.

    #580 3 years ago
    Quoted from matiou:

    wow you're fast

    Yeah, usually it's not much work to do the changes, the problem is more to remember where these display related changes are necessary at all. Therefore it's good that you're pointing me to the right places.

    Quoted from matiou:

    in test mode 5, all the lamps turn on except the 8 first (first column of the lamp matrix).

    This is a relic from the past. I skipped the first column because the games I started with had the first column reserved for backbox lamps and I wanted only the playfield lamps to be flashing. But in the meantime I learned that there're a lot of games handling it differently (like your Firepower), so it doesn't make much sense to keep it this way and I just changed it.

    #583 3 years ago
    Quoted from matiou:

    So my only solenoid test issue left is about solenoid 17 and above not being pulsed.

    Well, that sounds like U18 is not working. I guess we can assume that the IC was correctly soldered during manufacturing, so could you check whether you soldered pin 1 of P2 (at the Arduino) correctly? A missing solder joint there would cause the solenoids 17 - 24 to stay off.

    And please also check the soldering of the pins of Q17, Q18, Q23, Q24, Q29, Q30, Q35 and Q36. If you've accidentally created a short there it might have blown U18, although in this case I'd expect U18 to be visually damaged.

    #585 3 years ago

    Let's say I have my moments - not very often, but at least every now and then.

    #588 3 years ago

    Yeah, the message is misleading. We should change it to something like

    [141.953330][0.000513] Display no: 0 has type: 1 (BCD7, BCD Code for 7 Segment Displays without comma) with 4 digits

    However, what the log means is that your machine has 5 displays with Display 0 (Credit) having 4 digits and all player displays having 6. The data format for all displays is BCD without comma.
    That means the initialization is correct for your machine.

    What we'd need is a part from the log where an actual value is written to the displays. The corresponding command number is 30 - 34 depending on which display is addressed.

    #589 3 years ago

    Just for clarification: the phrase '7 Segment Displays' refers to the kind of displays being used (for each digit). We distinguish 7 Segment (numerical) and 14 Segment (alphanumerical).

    #593 3 years ago

    I guess I know what's going on. Your display is probably flooded with 'File not found errors', because PinMame tries to play some sounds but there're no sound files on the card yet.
    Try setting the 'Debug Mode' in the 'Remote Control Settings' to 'Audio'. Then the error messages will stop coming up and you'll probably see the correct display content. Only the Player 3 display will show the number of the missing sound.

    #595 3 years ago
    Quoted from matiou:

    Yeah! That was it, thanks!!!!

    That's the main drawback of the old displays, you're not able to read the messages.

    Quoted from matiou:

    Now I need to work on my sounds!

    Do you have the original sound board? Then we could try to make it work. I'd only need a sound debug log for that.

    #597 3 years ago
    Quoted from matiou:

    In the meantime

    No meantime - you can already give it a try.

    #598 3 years ago

    Almost missed this:

    Quoted from matiou:

    If (one day) I move to alpha display, I guess I'll lose compatibility with my old MPU board ?

    Yes. However, it would be possible to make them work also with the old MPU board, but that would require a small adapter board with some logic.

    #602 3 years ago

    You really have to use audiosave.pl.
    The reason why I'm not using WAV files directly is that I wanted to make it easier for the Arduino to use the data. Therefore the audiosave.pl does some data preparation which is very much tailored to the DACs of the SAM3X controller.

    However, I have also used audiosave.pl in a bash script which did all the converting and renaming stuff. So, like matiou wrote, the only laborious part was to determine the PinMame sound numbers.

    #610 3 years ago
    Quoted from matiou:

    I found a little bug in the "USB_GenerateFilename" function which was preventing it from detecting I had a 6 digit display.

    Oops. Thanks for fixing.

    Quoted from matiou:

    I also found out it was not displaying correctly sounds with index >99 and Firepower has plenty.

    OK, I was assuming that the sound numbers would be similar to System7 where they had an offset of 0x20. When you see numbers >100 it means that this offset seems to be larger for System6. However, we should stick to the PinMame sound numbers and then your fix is necessary.

    Quoted from matiou:

    Sure I could! I let Frank decide how he wants to handle this type of contribution...

    Well, this is meant to be a community project after all, so a pull request would probably be the best way to handle this. It might make sense to wait until your EX_Firepower is also working and include it into the pull request.

    #614 3 years ago
    Quoted from matiou:

    is there a way to reach the regular game adjustments (the adjustments described in the pinball machine manual, not the APC options)

    Yes, you should be able to navigate the menus as usual by pressing advance. You just have to pay attention not to keep it pressed for more then 1s with the Up/Down button in Up position, as this will enter the APC Settings. That means if you want to scroll through the settings by keeping Advance pressed you have to do it backwards.
    However, we learned that PinMame treats the Advance key differently for some system generations, so if Advance doesn't work for you as described, then Ralf has to do some Lisy magic first to make it work for System6 also.

    Quoted from matiou:

    can the Arduino be plugged to the programming computer all the time ? no issues when the pinball is powered up, restarting etc..?

    Basically yes, the Arduino has a polyfuse which will trigger if the current on the USB port should get too large. I hope the Chinese didn't spare this fuse on their clones, though.
    Nevertheless, I usually disconnect the USB cable when I don't plan to use it. One reason is that the Arduino won't reset when the pinball is turned off, because it's just backwards supplied. And of course this might drain your PC battery if you don't disconnect it at the end of the day and your PC keeps the USB port powered.

    When I started this project I removed two transistors on the Arduino board to disconnect the 5V and protect my PC. I think I still have a photo of this somewhere and I can try to find it if you're interested.

    #617 3 years ago
    Quoted from matiou:

    But I was a bit worried when I saw that, when the pinball is off, the raspberry tries to start up using the 5V supplied to the Arduino.

    And these worries are getting worse when you have an LED display in your machine and it's still working with the pinball switched off.

    I found the photo of the transistors BTW. I just lifted one leg of each transistor to isolate the PC from the APC. The shot is from a clone, but it should look similar on the original DUE.

    P1020681 (resized).JPGP1020681 (resized).JPG
    #620 3 years ago
    Quoted from matiou:

    Maybe I should try to play with the "priority" parameter when playing some of these sounds ?

    This wouldn't help in this case. The priority parameter does only determine whether the new sound is played at all when another one is currently running, but it does not do any sequencing.

    Under normal circumstances I'd assume that your game is not running at the right speed, but according to your log, these 3 sound commands are issued within one second and I guess you had noticed if your speed was that far off.
    That means we're probably dealing with some kind of sequencing feature in the SW of the sound board. It's not a big deal to implement someting like this in EX_Firepower, but before we do so I'd like to find out more about how it works.
    You wrote that there're some weird commands being sent before these sounds are being played. You can enter a whole series of sound commands into PinMame, so it should be possible for you to find out whether these weird commands have any influence on the way these 3 sound are being played.

    If we know what to do then we can use the AfterSound feature of the APC to implement the sequencing. If the AfterSound variable is not zero then the sound player will call the routine AfterSound is pointing to when the current sound has run out.
    All this AfterSound and priority stuff is explained in the APC SW reference, in case you're interested.

    https://github.com/AmokSolderer/APC/blob/master/DOC/Software/APC_SW_reference.pdf

    #623 3 years ago
    Quoted from ThatOneDude:

    If I'm skipping the displays, what's the recommendation for the system messages

    To be honest, the APC is not really optimized for being used without displays. On the other hand, if you're using MPF then you have your MPF logs and don't really need the APC's messages (hopefully).
    You won't be able to use the APC setting of course, but you can edit the settings files on the SD card with every HEX editor, so that's not really an obstacle. For the tests you could use a terminal program to send the commands to the APC and you could even use these commands to change the settings in case you don't like the HEX editor solution.

    So if I were you I'd try it without messages first. In case of problems we could still send the display data to the Lisy serial connector.

    #626 3 years ago
    Quoted from RatShack:

    What are APC system messages?

    Those are mainly error messages like 'file not found' and stuff. There are also error messages from the APC SW itself, but I haven't seen one of those in years while using USBcontrol, so this seems to be quite mature.
    For this reason I wouldn't care about display messages when using MPF. It's a different story when you want to do your own game code in C, because then you'll want to see these APC errors to debug your own code.

    Quoted from ThatOneDude:

    I could just feed the display output into an Arduino mega

    You'd need a 3.3V device for that. When I remember right then the mega runs on 5V.

    #629 3 years ago
    Quoted from matiou:

    I verified with Visual Pinball and here it's working well, so I guess it's not a pinmame issue.

    Two weeks ago I'd have agreed on that, but I'm not so sure any more. The reason is that in the meantime I have generated the audio files for my Rollergames and now I have a problem which seems to be caused by PinMame, too.

    The first weird thing with the Rollergames is that PinMame sends every sound related command twice, but that's not a problem as I can just ignore every second command. With that the music and sound tests of the Rollergames in PinMame work just fine.
    Things get nasty when I start a game. The first 5s everything sounds fine, the ball launch music plays with the 'Rollergames' speech sequence added at the right time. But then suddenly the games main music theme (sound 0x03) starts, even though the ball is still resting in the shooter lane. After that the music is restarted every 5 seconds. This happens as long as the game is running, in most cases it's the main theme that's being restarted all the time, but depending on the game mode it can also be another music theme.
    I can clearly see the corresponding sound commands in the Lisy sound log, so PinMame is really sending them and it's not the APC having some sound issues.

    Then I reinstalled the original HW into the Rollergames and monitored the communication between CPU and audio board with my logic analyzer. What I saw is that the sound commands are completely as expected, so they're not being sent twice and the mysterious repetitive call of sound 0x03 does also not happen. The next step is to install Visual PinMame and check whether the Rollergames is running correctly, but I'd expect that to be the case.

    So what does it mean? Basically it means that these problems are caused by PinMame, but how? It might be that the sound command output in PinMame needs to be configured, may be we have it running in some kind of debug mode which causes this strange behavior.

    At the moment Ralf is digging through the PinMame code trying to find out what's going on. Alas, I don't know enough about it to be of any help here, but if anyone of you has an idea we'd appreciate to hear about it.

    Quoted from matiou:

    I narrowed it down to only one code (0x3f) for which I could not find a meaning

    Is this code only being sent during multiball or all the time? Basically it sets all 5 data lines to high, so I'd expect it to reset the data lines after each command, just like the 0x7f in System7.

    Quoted from matiou:

    So if a command is received to play a sound "B" with priority 50 when a sound "A" is already playing with a priority of 60, the song "B" will be ignored and never played ?

    Exactly.

    Is the first sound only played during multiball? Then you could just generate a sound file which contains the whole multiball sequence and play it with a higher priority. Then the correct timing is determined by your file and the priority prevents it from being stopped by the subsequent sound commands.

    But this would be just a workaround and of course we'd like to understand why PinMame is sending such weird sound commands, so if any of you guys knows something that might help us, please give us a hint.

    #631 3 years ago
    Quoted from matiou:

    Could it be due to linux pinmame being outdated compared to windows pinmame ? All my "verifications" with Visual Pinball are using latest versions of the windows version...

    Yeah, but how to check that?

    Quoted from matiou:

    No, this 0x3f is specifically sent few times during this sequence (and at other times as well, but not constantly).

    Also strange, because with a 5 wire digital interface 0x3f and 0x7f are just the same.

    Quoted from matiou:

    the problem would be to base an APC workaround on some commands that may not be sent in a future "fixed" version of pinmame

    And it is quite cumbersome to do these workarounds. In the Rollergames case it might even not be possible, as the problem occurs every 5 seconds and I don't have the slightest idea how to distinguish 'real' music calls from fake ones.

    2 weeks later
    #635 3 years ago

    I've also used KiCad to design the APC.

    1 month later
    #638 2 years ago

    I'm currently preparing a new SW and DOC release.
    Most updates will be about the handling of PinMame sounds. For example, there will be a simple way to implement the automatic looping of System11 music themes.

    This would be the right time to add your machine specific exceptions. That means, if you have done some exceptions or bug fixes which could be interesting for others, feel free to create a pull request in Github or post here what you have done and why.

    BTW, this Rollergames sound issue
    https://pinside.com/pinball/forum/topic/arduino-pinball-controller/page/13#post-6186276
    is still not solved. We've been able to narrow it down to PinMame sending false sound commands. Only the Unix-PinMame seems to be affected which is quite weird as according to Ralf the part generating the sound commands seems to be identical to the Windows version.
    At the moment we're running out of ideas, so any help is appreciated.
    On the good side we couldn't reproduce it with Dr.Dude ROMs (also System11C) which could mean that only the Rollergames is affected (which makes it even more weird IMHO)

    #642 2 years ago

    I don't think that will be necessary.
    During the JLCPCB order process you can specify a replacement for parts that are not in stock. From what I see the 74HCT273 is available in TSSOP from Texas Instruments (the part number is C6780), so just pick this one and JLCPCB will populate it as usual.

    #644 2 years ago
    Quoted from AmokSolderer:

    This would be the right time to add your machine specific exceptions. That means, if you have done some exceptions or bug fixes which could be interesting for others, feel free to create a pull request in Github or post here what you have done and why.

    matiou What about your Firepower? Are there some exceptions to add to the next APC release?

    #646 2 years ago

    No rush.
    I also have to update the documentation before I can do the release.

    1 week later
    #648 2 years ago
    Quoted from matiou:

    You'll find below my "PinMameExceptions.ino" containing special rules to manage the sounds of Firepower.

    I've added your changes to the 0.22 branch.

    There's a new QueueNextSound command (mainly for looping music tracks in System11) which replaces the manual setting of NextSoundName and AfterSound. I still have to document this, but I changed your EX_Firepower accordingly.
    Please check if it still works.

    Quoted from matiou:

    The countdown is too fast and the "fire 1", "2", "3" sounds, supposed to be synchronized with the ball releases, is not great.

    You should be able to synchronize this by tuning the 'throttle' value of Firepower in lisyminigames.csv.

    Quoted from matiou:

    The lane change works something like 80% of the time.

    That's weird. Have you checked whether the switch is reported correctly in Lisy's switch debug log?

    #651 2 years ago
    Quoted from SYS6:

    Has anybody else had this problem or got any tips?

    Yes, this is a known issue. For some reason the JLC preview fails with the APC board data.
    Just enter 200mmx237mm as board dimensions to get a reasonable quote and proceed with the ordering process. You wont be able to see the board preview, but the rest works.

    Quoted from matiou:

    Maybe this part is not emulated well in this pinmame version.

    Yeah, probably. We still have not understood why PinMame fails with sending the correct sound commands for the Rollergames, so we know that the emulation still has issues.

    However, if PinMame fails you can still do it by yourself. The PinMameExceptions offer much more than just sound manipulation.
    One example: I don't know which display shows the countdown effect, but let's assume it to be display 4. Then you could add the following code to your Ex_firepower:

    case WriteToDisplay4:
    if (PlayingMultiballSound)
    return(1);
    else
    return(0);
    break;

    This will intercept any PinMame commands to this display as long as your multiball sequence is running. Instead you could control the display by yourself and sync it to the sound. You could do the same with the coils if you like. A list with the names of the supported case instructions can be found at the top of PinMameExceptions.ino
    The preliminary documentation is in the 0.22 branch on Github:

    https://github.com/AmokSolderer/APC/blob/V00.22/DOC/PinMame_howto.md#programming-exceptions

    #653 2 years ago
    Quoted from matiou:

    But in fact I decided to start writing my own code from scratch!

    You might consider to start from the Base Code, then you wouldn't have to start completely from scratch.

    Quoted from matiou:

    Which IDE are you using to code ?

    I'm using Eclipse with the Arduino plug-in from Jantje:

    http://eclipse.baeyens.it/

    It also includes a debugger. It's for the Arduino UNO, so you have to remove all DUE specific code, but it saved me more than once.

    #656 2 years ago
    Quoted from SYS6:

    Has anybody tried to upload the APC gerber recently, perhaps somebody could try this for me?

    I tried it and I could klick on 'Stop waiting' during the upload. After that I had to enter the dimensions again, but then I could proceed.

    The weird thing is that it didn't ask me to choose a replacement for the 74HCT273 which is out of stock. Apparently it was about to skip it completely.

    I'd recommend to wait for my next APC release, because I'm going to change the part number of the 74HCT273 to a type they still have in stock. The release should happen within the next days.

    Quoted from matiou:

    are they handled like everything else

    Yes, like everything else. You can find the slingshots and the Bumper in the game_main of the BlackKnight.ino. Case 65, 66 and 67 are the corresponding switches.

    #659 2 years ago
    Quoted from Zigzagzag:

    Could this be made to work with Hyperball ?

    I cannot judge how much work it is to make it work with PinMame, but I guess it should be possible.

    From a first glance to the Hyperball schematics I'd say that the APC can run a Hyperball, but it would take some effort.
    You'd need a small lamp driver board to handle the additional lamps - could be driven by the HW extension interface of the APC.
    The display is special also. It seems to be based on a normal System7, but with an alphanumerical 12 digit display. Apparently, the driver circuits for this alpha are not on a display board, but on the special Hyperball Power Driver Board. That means you'd either need this circuitry on an additional board or you'd have to change a Pinbot type LED replacement set to fit in.

    BTW, you had a Pinbot, right?
    Did you try it with the APC? PinMame works quite well with it and the next SW release will also support the music looping.

    #663 2 years ago
    Quoted from Kneissl:

    I’m finally getting back to this project, dragged my feet doing a cabinet... should end up looking kinda neat.

    Is this Gameplan HW somehow compatible to Williams or do you have to build some adapters?

    Quoted from matiou:

    do i have to call RemoveBlinkLamp() AND TurnOffLamp() ? or is TurnOffLamp() enough ?

    You have to do RemoveBlinkLamp() first and then TurnOffLamp(). The reason is that there's a list of blinking lamps and if RemoveBlinkLamp() doesn't find the lamp number in there then it will leave the lamp untouched. Hence you need the TurnOffLamp() command additionally.

    #665 2 years ago

    I've released the new SW and updated the documentation. Take a look at the changelog for details

    https://github.com/AmokSolderer/APC/blob/master/DOC/Changes.md

    #667 2 years ago

    I think it still makes sense to exclude the backbox lamps from the attract mode patterns.
    From System7 onwards the backbox lamps belong to lamp column 1, but for the earlier games like Firepower this seems to be column 8. That would mean we just need a setting that determines whether column 1 or 8 is used for the backbox lamps.

    Can you confirm that there're 8 lamps in the backbox of the Firepower which all belong to column 8?

    #669 2 years ago

    I've added System Setting 10 to SW branch V00.23

    https://github.com/AmokSolderer/APC/blob/V00.23/DOC/Settings.md

    If you switch this setting to 1 (Column 8 ) then your backbox lamps should be unaffected by LampPattern, but all playfield lamps should work with it.

    #675 2 years ago
    Quoted from matiou:

    do you think I can use a 5VDC power supply to power the APC board

    Yes, even a USB charger should do the job as long as the APC is the only board supplied by this 5V, so no LED displays and such.

    Quoted from ThatOneDude:

    i would imagine that the main concern would be to tie the grounds together.

    I agree that depending on your 5V supply that might be a problem.
    Do you have a lab supply? Those are galvanically isolated and therefore well suited. But as I said, I'd even try it with an USB charger, preferably not the cheapest no-name device.

    #678 2 years ago
    Quoted from Insanity_Falls:

    is there a reason to continue using that particular model?

    At the time some of the reasons for using the DUE were:

    - It's part of the Arduino family which means libraries (for SD and audio) and IDEs are available
    - The DUE is a lot faster than the average ATmega Arduinos and has more memory
    - It has enough pins (which was more important for the first APC protoype as from HW version 2.0 the architecture of the APC was changed)
    - Inbuild DAC with two 12Bit channels which could directly be used for audio
    - Very low price; chinese rip-offs are available for a litte more than 10€

    Quoted from Insanity_Falls:

    I'd like to experiment with other more widely-available options if there are any.

    Not really. The APC (expecially the SW) is tailored to the DUE, so it would require quite some effort to adapt it to another controller.

    #682 2 years ago
    Quoted from Kneissl:

    I’m flippin!

    Looks good. What are you using, PinMame, MPF or C?

    Quoted from matiou:

    Or maybe i'm doing something wrong ?

    No, it was my bad. Please try again.
    I hope we don't need too many iterations. The problem is that the weather here is too good for coding at the moment, so this is my kind of garden work.

    #687 2 years ago

    So you're moving on to Bally. That makes me curious of course.

    May I ask what the status of your Gottlieb version is? Is there some code or schematics you'd be willing to share?

    1 week later
    #691 2 years ago

    I got an E-Mail from Digikey. Apparently the TDA7496 audio amplifier IC is about to be discontinued by the manufacturer.

    That means it might be getting more difficult to get these parts in the future.

    #692 2 years ago

    I have uploaded a new video which shows an example of how to use the PinMameExceptions functionality of the APC to change the rules of your game even though it's running under PinMame control.

    The corresponding code can be found in PinMameExceptions.ino in the AmokPrivate branch on Github.

    Feedback is welcome.

    #694 2 years ago

    Yeah, that's exactly the kind of stuff that can be done very easily with these exceptions.

    The combination of exceptions and the solenoid expansion board could also be fun, as you could just add additional HW toys and use the exception rules to trigger them.

    2 weeks later
    #698 2 years ago

    Thanks for the feedback. Now I'm curious of course.

    What kind of machine is/was it originally? From the monitor in the backbox I'd guess it's now MPF running on a PC and controlling your GTB APC via USB, right?

    #700 2 years ago
    Quoted from RatShack:

    It currently runs MPF, I am updating the boardset for the LISY module.

    I know Lisy can run MPF, but I don't know what it would take to make this setup work with the APC, too.
    It is on our to-do list, but up to now nobody seemed to need it.

    bontango Ralf, do you have an idea how much effort would be required to do this?

    2 weeks later
    #727 2 years ago
    Quoted from matiou:

    I guess it was messing up some timers.

    Yeah, this can lead to very nasty problems. Therefore it's absolutely mandatory to keep track of the timers in use.

    You might want to enable the debug mode in the System Settings. This will show the number of active timers in the credit display (at least up to 9). Up to now this function was not working with numerical displays, but I did a quick fix in the 0.23 branch to make it work. However, I had no time to test it, so handle with care.

    Activating the debug mode has another effect which might come in handy for you: It activates the USB communication for your game. That means you're able to see error messages on the Serial Monitor of your Arduino IDE. Furthermore you can use the Serial.print() commands inside your game code to write to the Serial Monitor - very nice for debugging.
    Anothers effect of the debug mode is that the game will stop when an error occurs after turning off all solenoids and lamps, but you can change that in the ErrorHandler() in APC.ino

    #729 2 years ago
    Quoted from matiou:

    Maybe it does not work because my code overrides the number which is displayed here

    No problem there as the debug mode will always overwrite the normal display content.
    If it doesn't work with the updated 0.23 code from yesterday then I have to recheck it.

    #731 2 years ago

    The name is a bit misleading. The design also works in System11b machines.
    Here's a link to a website a friend of mine did about an older version of this display:

    http://baumfalk.net/Displays/sys11_1_en.html

    4 weeks later
    #749 2 years ago
    Quoted from slochar:

    Yeah it's basically writing an entire new game from scratch, reimplementing the code in the new framework(s) that the arduino controller supports.

    Well, since V0.22 there is another way to do it, as the APC SW features a new PinMame exceptions system. This can be used to add some own game code while your game is basically running in PinMame.

    There's a video which shows what I did to my Jungle Lord:


    A short documentation can be found on my PinMame-Howto page
    https://github.com/AmokSolderer/APC/blob/master/DOC/PinMame_howto.md#programming-exceptions

    #751 2 years ago
    Quoted from slochar:

    For your linked example do you cancel the 3 second thing for the shooter lane switch if someone manages to not get the switch activated

    No, the exception code does rely on the switch to work properly. It would be very simple to cancel the timer also when a playfield switch is activated or do 3 attempts at max, but I wanted to keep it simple as it was meant as an example. Still works great though.

    Quoted from slochar:

    For small patches hooking in is ok but for large wholesale changes nothing beats having the whole thing laid out in source

    Yeah, if the changes are too severe than it's better to write a new code, but sometimes it's just some details that need to be changed to make a game better.

    1 week later
    #755 2 years ago

    I guess jabdoa is better suited to answer that question.
    My humble MPF skills were barely enough to make that Rollergames demo work.

    2 weeks later
    #760 2 years ago

    So you were able to get 5 completely SMD populated boards? Seems to get increasingly difficult as lots of components are currently running out of stock.

    Quoted from drConti:

    At moment I have Comet (Sys9), Rollergames (Sys11c) and a Firepower II (Sys7) theorically compatible with this system.

    For the Rollergames there's still an unsolved PinMame issue which has been discussed before:

    https://pinside.com/pinball/forum/topic/arduino-pinball-controller/page/13#post-6186276

    When using PinMame the music does only work correctly during test mode. This means one has to write some PinMame exception which tracks the status of the game and decides which music command to execute and which to ignore. Currently I don't have the time to do it, so if you want to start digging into the APC world then this could be a good first task. An example for using PinMame exceptions can be found here:

    https://pinside.com/pinball/forum/topic/arduino-pinball-controller/page/15#post-6504949

    But there's also some good news about the Rollergames as I have already extracted most of the sound and music files. That means if you come to the point of wanting to try and make this machine work with the APC and PinMame, just send me a PM and I'll send the audio files to you.

    Have fun

    #761 2 years ago
    Quoted from drConti:

    Firepower II now have original CPU with problem, but I try to solve it.

    BTW, you can replace your faulty System 7 CPU with minimum effort. The APC 3 boards can control a Sys7 audio board directly. That means you don't have to bother with extracting audio files. All you need is a simple ribbon cable as it is shown here:

    https://github.com/AmokSolderer/APC/blob/master/DOC/HowToStart.md#system-7-audio-cable

    1 week later
    #764 2 years ago
    Quoted from drConti:

    For my display board, I only find 0.6'' or 0.8'', but nothing 0.7'' (that I think it's more similar to original) where I can find it?

    0.8" is the correct character height. But as you've mentioned, the package of these displays is usually too wide for pinball machines.

    For my Sys7Alpha I took PSA08-11RT displays from Kingbright and removed 1mm or so from the right side of the package until they fit in the display board. You can do this easily with a bench- or belt-grinder.

    #766 2 years ago

    Looks OK and when everything compiles/uploads without errors then there's no need to worry.

    1 month later
    #771 2 years ago
    Quoted from RatShack:

    Keying of the connectors for DE should be identical to System 11, correct?

    Yes, that's correct. Even the connector numbers seem to match except that the DE ones have CN as prefix.

    I spotted one inconsistency at CN17 in the DE manuals. In the schematics it looks like pin 9 has +12V, but in the board overview it's marked as NC (see picture). The APC uses this 12V for it's audio amplifier, so if your boards stays silent you should check this first.

    DE (resized).pngDE (resized).png
    #774 2 years ago

    I don't know much about Gerber. From what I found in the internet it seems like RS-274x is the standard Gerber format, so I'd expect the files to be OK.
    However, I remember that JLCPCB wanted the files to have Protel filename extensions and according to this page

    https://www.pcbway.com/blog/help_center/Gerber_File_Extention_from_Different_Software.html

    PCBWAY wants the standard names. So may be you just have to rename the files.

    1 week later
    #776 2 years ago
    Quoted from RatShack:

    The APC code supports the system 11 background sound board, correct?

    The initial plan was to support those Sys11 machines having all sound stuff on an external audio board, so just the late 11B and 11C ones. This was because with two different boards one would need an analog mixer to combine the audio signals and I just wanted to avoid this.

    From the shots done with my logic analyzer the digital protocol between CPU and audio board looked simple enough to implement some code which I thought would do the job.
    However, in the end the old audio board refused to react and I was lacking the motivation to go much deeper.

    If your motivation was just to make your Millionaire work then I'd recommend to let the APC play the music. It needs some sound file preparation, but it's not a big deal as you can read here:

    https://github.com/AmokSolderer/APC/blob/master/DOC/PinMame_howto.md#doing-music-exceptions-for-system11-machines

    Quoted from RatShack:

    If I can use the APC code to control a sound board then that will be very helpful in developing a new board.

    What kind of board do you want to develop, a new audio board or a controller?

    The problem with the Sys11 audio boards was that I didn't know what control signals they wanted to see and I was lacking the patience to try it out. On the other hand the HW extensions interface of the APC is quite flexible in generating control signals. The corresponding command is called WriteToHwExt and you can find a short description at the end of the APC_SW_reference.

    #778 2 years ago
    Quoted from RatShack:

    The APC board will be used with Batman,

    Is Batman still compatible to System11?

    Quoted from RatShack:

    New audio board, mostly to gain experience with the interfacing & protocol.

    That should work quite well with the APC. It's probably an overkill though, because you can use a cheap Arduino UNO and some lines of code to generate all kinds of control sequences as well.

    #780 2 years ago

    Not sure whether Lisy is supporting any Data East machines yet. Even though it is basically Sys11 it still might need some tweaking to make it work. But bontango usually can fix this quite fast.

    #782 2 years ago
    Quoted from RatShack:

    maybe I will after the holidays

    Well it's the right time for new year's resolutions, isn't it?
    OK, here's mine: next year I'm going to fix the playfield of my F-14

    2 weeks later
    #786 2 years ago
    Quoted from Snux:

    but at the moment the APC software is only thinking "all LED" or "all matrix" and from the MPF side there would be no colour control anyway

    That's true for the moment, but removing this "all LED" or "no LED" limit should be a quick fix. It would require a rework of the driver of the LED_exp board to get more flexible commands to control the LEDs.
    Adding color control for MPF would be more effort as it would mean to implement the 'Fade modern light' command of the Lisy interface

    https://docs.missionpinball.org/en/latest/hardware/lisy/protocol.html#fade-modern-light-0x0d

    which would mean to change the SW of the LED_exp board also.

    However, I have this on my list anyway, as the current LED implementation is a rather makeshift solution and I want to add some nice LED effects to my Black Knight. But before I start this I have to update my Black Knight and Pinbot SW.

    So if you want to use the LED_exp board I could probably implement the LED commands on short notice. This would enable you to control your LEDs and the normal lamp matrix simultaneously, but the color control of the LEDs would be rudimentary.

    Later we could implement more sophisticated color control features, like the 'Fade modern light' command to give MPF full control and also be able to add color effects as PinMameExceptions.

    What do you think? At first it would mean that you have to get a LED_exp board.

    Quoted from RatShack:

    The APC-GTB prototype game "Rock Lives!" is nominated for favorite homebrew of the year in the TWIPY awards!

    Great work. This shows what Lisy, MPF and the APC are capable of.
    Do you have some additional project insights you're willing to share?

    I'm asking, because I think the main task we have to do next is trying to establish an active community sharing ideas and supporting each other. Up to know the communication is mainly focused on me answering technical questions and helping with problems. This is OK for me, but only a part of the story. I'm good at this technical stuff, but I'm not the most imaginary one when it comes to rules and I'm just lacking the patience to do the due diligence like fine tuning a game until it is a great one.
    A first step would be to know what other people are working on and how they're doing it. May be find others who are working on the same game.

    I'm currently preparing some basic information about for my Black Knight SW

    https://github.com/AmokSolderer/APC/blob/V00.23/DOC/BlackKnight.md

    may be with a thread in a forum to discuss what could be improved and what additional rules would be fun to have.

    What do you (all) think, would you see such a community as a benefit?

    #791 2 years ago
    Quoted from Snux:

    It just knows about the 64 lamps that can be on the matrix and will want to switch them on or off.

    This is how it works at the moment. Neither MPF nor PinMame know about LEDs and stuff. For them it's just 64 lamps.
    The problem with your setup is that you just want some lamps to be LEDs, so we must somehow tell the system which lamps are LEDs and which are not. I could come up with some fancy settings menu for that, but IMHO it would be the easiest to implement this as a PinMame exception (would also work for MPF then). I'd support you with this of course.

    Quoted from Snux:

    is there a risk that the Due onboard the APC is going to run out of bandwidth?

    No, that's OK. For the APC the serial control mode is just another game and it's not eating any resources when not active (just a bit of program memory which the DUE has plenty of). Timing critical HW like these 2812 LED stripes are a different story, but as you said that's why the UNO is needed.

    Quoted from Snux:

    What is probably missing is some kind of forum for people that are using the APC natively, coding games "the .ino way".

    Yes, but this is the really hard stuff. Most topics would probably be more basic.

    Some examples of possible questions that I'd expect people to have:

    - How to set up an APC system with PinMame for a specific machine?
    - How to use a different display (e.g. alphanumeric displays in pre Sys11 machines?
    - How to add a shaker motor and control it?
    - How to add flashers to pre Sys11 games?

    and so on.

    So if some of you have questions like these, don't be shy and just ask them. If enough questions come up we still can think about moving to a different thread/forum and if not I've tried it at least.

    #793 2 years ago
    Quoted from ThatOneDude:

    I'm about to start work on a High Speed rework with Cheddar, which will have new art, rules, a display, etc.

    Would be great if you could post the progress either here or in a new thread. Doesn't have to be some detailed documentation, just some pics and the basics of what you're doing.

    #795 2 years ago

    Thanks, I'd appreciate that.

    #796 2 years ago

    Looks like we have some PinMame trouble again.

    I helped a friend to install the APC in his Riverboat Gambler and we got the board and Lisy/PinMame running. Everything worked well except of the roulette wheel in the backglass which doesn't turn.
    It is has a stepper motor which is driven by a double H-bridge on an extra motor control board. The control inputs of this board are directly taken from 2 solenoid drivers (14 and 15) which means that the stepping pulses must be generated by these solenoid drivers. Therefore I'd expect the sol outputs to look like the green waveforms. However, the debug output from Lisy shows that PinMame just sets the solenoid drivers to high when the wheel is supposed to start spinning (red) and back to low when it should stop. This means that the motor does just one step instead of start turning.

    Apparently the same wheel feature is also used in Jokerz! and Cyclone, so they should have the same problem.

    Does anyone know whether this is a known PinMame issue or what might cause it?

    Riverboat (resized).pngRiverboat (resized).png

    #797 2 years ago

    Update: According to bontango this might happen because in PinMame the status of the solenoids is being polled at a regular interval which might just not be short enough to drive a stepper motor.
    That means we have to know the timing of the solenoid outputs. Of course we'd like to avoid having to switch the boards again, therefore I'd like to ask if one of you could measure it for us. So if you have a Riverboat Gambler, Jokerz! or Cyclone (and an Oscilloscope) I'd appreciate if you could post a shot of one of the corresponding solenoid outputs.

    #805 2 years ago

    Thanks Jeff, that's exactly what we need. May be you want to put the APC in your Riverboat Gambler someday. In this case Kobza is doing the pipe cleaning for you.

    https://www.flippertreff.de/start/forum/topic/11821-apc-im-riverboat-gambler/#comment-94906

    It's in german, but I can keep you posted if you're interested.

    Quoted from Snux:

    I guess the patter request wouldn't be something that pinmame would send to APC, it is probably more something that the APC would handle via a pinmame exception.

    Yes, generating the pulses to turn the wheel would be quite easy. The problem is to know exactly how many pulses to generate. This is important because in the RG the wheel is used as a roulette with black, white and green fields on it.
    From the gameplay point of view it's like this: the player has to bet on a color, then the roulette wheel is spinning and the player wins or looses depending on which color is on top when the spinning stops.
    Technically there's an opto to detect one certain position of the wheel and after that the SW keeps track of the exact position by the amount of pulses it has sent to the stepper motor. Hence the SW always knows which color is at the top position.

    For us it means we have to know either the number of pulses or the color the SW intends to stop on (to calculate the number of pulses by ourselves).

    Quoted from bontango:

    Amoksolderer will test this LISY version and see if it helps.

    Well Kobza has to do it as I don't have a Riverboat Gambler.

    #806 2 years ago

    Progress.

    https://www.flippertreff.de/start/forum/topic/11821-apc-im-riverboat-gambler/?do=findComment&comment=94931

    Ralf has done some Lisy magic and control pulses have appeared.
    They're still not good enough to turn the wheel smoothly, but at least we can count them and do the actual pulse shaping in a PinmameException.
    For being able to do that I'd need one additional information: does the wheel always turn in the same direction or does my Exception have to detect it?

    #808 2 years ago

    No rush. I won't be able to do anything before sunday anyway.

    #810 2 years ago

    Thanks again. At the moment we're busy adding support for these special displays of the Riverboat Gambler.
    I guess the wheel has to wait until next weekend.

    306 posts in this topic match your search for posts by AmokSolderer. You are on page 1 of 2.

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

    Reply

    Wanna join the discussion? Please sign in to reply to this topic.

    Hey there! Welcome to Pinside!

    Donate to Pinside

    Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


    This page was printed from https://pinside.com/pinball/forum/topic/arduino-pinball-controller?tu=AmokSolderer and we tried optimising it for printing. Some page elements may have been deliberately hidden.

    Scan the QR code on the left to jump to the URL this document was printed from.