(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 jabdoa.
    Click here to go back to viewing the entire thread.

    #9 5 years ago

    Looks like a very nice board for retheams or custom pinballs! Are you interested in adding support for the Mission Pinball Framework? We already support similar platforms (such as LISY Gottlieb System 1/80 or Snux System 11): http://docs.missionpinball.org/en/dev/hardware/index.html. We can help with the python side. I guess we could interface the Arduino via serial. Let me know if you are interested.

    Jan

    1 week later
    #13 5 years ago
    Quoted from AmokSolderer:

    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?

    You could always fab them in China for almost nothing. Assembly might be a few bucks but the boards are usually cheaper than the shipping. Seeed or itead are proven MFGs for boards from China. They also ship to the US.

    3 weeks later
    #22 4 years ago
    Quoted from AmokSolderer:

    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.

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

    1 month later
    #38 4 years ago
    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.
    A simple 3 led Red, Yellow, Green diagnostic is ok. But, what I would suggest be a consideration is a simple I2c connector for a 20x4 LCD/LED display.
    Having a Momentary switch or two enable a diagnostic test or dipswitch setting which cycles through a health test of the APC board with output feeding the 20x4 LCD/LED display and/or the 3 led Red,Yellow, Green lights.

    There is a built-in test/service mode in APC and another one in MPF. Let us know if you are missing anything there.

    Quoted from legtod2:

    The arduino default state for the pins caused all my solenoids to fire on boot up, blowing a fuse on the playfield. This lead to a procedure to what got booted first. Simple fix but explains how some confussion can happen on Master slave relationships.

    The protocol is well tried with LISY already. We could document that a bit more. However, this works like other pinball controllers such as the SPIKE, P-Roc or FAST protocol. So we are pretty sure that we got it right.

    Quoted from legtod2:

    Sound On/Off/index#. Pinmame uses samples and a collection of zip files. Plus it also can use the native rom file and its associated sound file references.
    It sometimes confuses when you having custom sound samples that overide the original rom sound. Documenting how the sound index number work will save for confussion of the homebrew developer. The index number can for example be (0-100 rom index sounds), (101-200 samples zip file references), etc.

    Those commands are for existing machines. We have no influence on the numbers and Pinmame also just emulates those numbers. Frank already has this running with LISY and Pinmame.

    Quoted from legtod2:

    I noticed the protocol usually consisted of individual lamps, solenoid status instead of using an array status of all lamps or solenoids.

    We got list for modern lamps. You need that for synchronized fades of RGB lights. For all other lamps the complexity is not worth the effort. PD-LED, FAST and Spike do exactly the same.

    Quoted from legtod2:

    Same is true for changed status. I don't want to spark an academic debate, just wondered if exchanging an array state was considered in the discussion.

    This is a matter of efficiency. This way we only need one byte. Other platforms just indicate a change and you need to poll the board after that (Spike) or rely on event polling (P-Roc/FAST). So this is quite a bit more efficient. However, it limits the protocol to 127 switches.

    Quoted from legtod2:

    Watchdog and Solenoid On/Off (Which came first the chicken or the watch dog timer). This may cause issues for the inexperienced homebrew coders.
    Default values, of which overrides the other could cause machine gunning solenoid bumpers or weak flippers activations. Another avenue to watch is latency between master and slave configuration. Some form of messaging "Like stuck on solenoid to a LCD/LED" would be handy.

    That is not really an issue. Watchdog just needs to arrive regularly (like P-Roc and FAST). Machine gunning is prevented by debounce times and you need to configure those before enabling rules. Stuck on solenoids should not be possible with that unless you manually enable the coil. But that needs to happen intentionally. You cannot create warnings when you told the hardware to behave in a certain way.

    Jan

    #40 4 years ago
    Quoted from legtod2:

    The exciting stuff for me is to see how pinmame will playout in the APC & MPF.

    MPF does not interface with Pinmame. You either use Pinmame or MPF to interface APC/LISY. Alternatively you can also program APC natively.

    #42 4 years ago
    Quoted from AmokSolderer:

    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.

    I guess we can have them assembled in China for a few additional bucks. If we can get all parts from Mouser and Digikey this is next to no effort on our side. Just send the Gerber + BOM to seeed or similar services and you get the board assembled about two to four weeks later.

    I think there are ways to upload and publish complete designs. That would save others a bit of work.

    7 months later
    #160 4 years ago

    It really depends on your combination of things. With LISY you get Pinmame. With MPF you can use Smartmatrix or other hardware. I fear Smartmatrix and Pinmame will not cooperate out of the box.

    2 months later
    #309 4 years ago
    Quoted from ThatOneDude:

    File "/usr/local/lib/python3.7/dist-packages/mpf/core/machine.py", line 327, in initialize_platforms
    result.result()
    File "/usr/local/lib/python3.7/dist-packages/mpf/platforms/lisy/lisy.py", line 435, in initialize
    if self.api_version >= StrictVersion("0.9"):
    File "/usr/lib/python3.7/distutils/version.py", line 70, in ge__
    c = self._cmp(other)
    File "/usr/lib/python3.7/distutils/version.py", line 170, in cmp
    if self.version != other.version:
    AttributeError: 'StrictVersion' object has no attribute 'version

    Hi guys,

    That looks like an error in MPF. It might be caused by LISY but ultimately MPF should log something useful here. I will have a look and fix it.

    Jan

    #311 4 years ago

    I handled that case in MPF 0.54.0-dev.19. It only happens when LISY returns an empty API version to MPF which probably indicates some kind of communication error. In dev MPF will retry similar to the handling of resets failures. Not sure if this helps. At least not in case the hardware crashed or if USB has connection issues.

    Jan

    1 month later
    #369 3 years ago
    Quoted from RatShack:

    The PI probably doesn't have enough power for my MPF game, it uses a 1080p display and has a very large music library.

    My hope here is since the PI is communicating using serial-over-USB that the code is easily adaptable to the Windows build. If there's a PinMAME repo with these changes I'd like to check it out.

    The RPi can play 1080p if encoded correctly and it also can play multiple music tracks. However, we do not recommend this for a one-off as it involves a lot of tuning to get it running smoothly. Additionally, asset loading from an SD card is not particularly fast in most cases so start-up times will be quite high.

    More in the docs: https://docs.missionpinball.org/en/dev/hardware/computer/index.html

    2 weeks later
    #387 3 years ago
    Quoted from AmokSolderer:

    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.

    Shops such as seeed will still produce 5 or 10 boards and just populate one of them. However, setup cost are most significant in that case.

    2 months later
    #411 3 years ago

    Most of the parts are even DIP. So quite straightforward to solder. Only the amp is SMD but you do not have to populate if that frightens you. It is not very hard either. With MPF you can either use the APC sound engine (for existing sounds off a SD card) or just the sound card of your PC with some external amp.

    Jan

    1 week later
    #416 3 years ago

    Should we add I2C support for APC in MPF as well? I guess that the protocol would be the same or is that a different protocol?

    Jan

    1 year later
    #752 2 years ago
    Quoted from gorgar007:

    I'm excited for a clean slate.. assuming the framework is intuitive enough and all of the game mechanics are easy enough to access. Could be fun!

    There are basically two frameworks: Either low-level on the arduino. Or a high level framework with runs on a separate PC or RPi: https://missionpinball.org/ or https://docs.missionpinball.org/

    3 weeks later
    #758 2 years ago
    Quoted from gorgar007:

    //<![CDATA[
    window.__mirage2 = {petok:"67a1fefee14988c66325738f0b0557658a9f734f-1633778177-1800"};
    //]]>

    AmokSolderer - is there a way to easily switch your Rollergames MPF demo to mirror what you're sending to the hardware segment display, to the virtual segment display?

    Have look at virtual_segment_displays in the MPF docs. That should do what you want. They recently gained more features in dev (future 0.56) but basic functionality should be in 0.55 already.

    Jan

    5 months later
    #857 2 years ago
    Quoted from AmokSolderer:

    Alas the 74HCT273 ICs are out of stock at JLCPCB for quite a while now. Therefore I'm wondering whether it makes sense to change their TSSOP package to SOIC on the APC board to make it easier to solder them by hand or hot-air.

    Maybe add both so that you got the choice while assembling? I like to add SMD parts but also add the SMT holes so that if I have to replace it for some reason or do not get the SMD part I can still hand-solder the SMT one.

    #861 2 years ago
    Quoted from AmokSolderer:

    Hence, I've now pre-ordered the required number of 50 ICs. From what I understood I can use these ICs to get my boards populated as soon as my order has been confirmed.

    Confirmed and delivered if they do not have it on stock. Its faster if they got it already but then you probably would not preorder .

    #867 2 years ago
    Quoted from Zigzagzag:

    I paid the 75$, let´s see what happens.

    The Hyperball is gone, but I need cards for Blackout and probably Time fantasy as well.
    Hyperball needs a special driver card, so it wasn't gonna work anyways I think.

    Awesome. Maybe you can "sell" or move your unused parts to other JLCPCB users' accounts via their support?

    You're currently viewing posts by Pinsider jabdoa.
    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=jabdoa 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.