MFME Uitleg

Het begin van het projekt……….De knoppen In februari 2023 ben ik met het idee begonnen…

Het begin van het projekt..........De knoppen

In februari 2023 ben ik met het idee begonnen een volledig digitale gokkast te maken : De SuperFruit (leek me wel een leuke naam).
Nadat ik eerst de software ben gaan bekijken, en op de MFME als emulator ben gekomen, ben ik gaan inventariseren welke materialen ik allemaal nodig heb.

Ik ben dus begonnen om te kijken wat ik nodig heb om de software aan te sturen. Je hebt dus knoppen nodig (hoeveel? welke kleur? welke positie in de kast?), en de knoppen hebben lampjes (leds) die ook aangestuurd moeten worden.
De knoppen heb ik uiteindelijk besteld bij https://arcade-expert.nl/, en wel deze : https://arcade-expert.nl/Rechthoekige-HP-Arcade-LED-Drukknop-Wit-33x50mm-5V~12V

Deze knoppen zijn in meerdere kleuren te krijgen, dus dat was ook even een kleine uitzoekwerk. De heren van Arcade-Expert verkopen ook een MFME ControlePaneel https://arcade-expert.nl/MFME-Controle-Panel

Ik heb uiteindelijk besloten dezelfde kleuren te gaan gebruiken als het paneel.

Maar ok, de knoppen hebben we, nu nog inlezen en aansturen vanuit de software. MFME is te bedienen met de muis (niet handig in een cabinet) of met toetsen (zijn per virtuele kast zelf te definieren, handig is wel om alle kasten met dezelfde toetsen te laten werken).
Maar een toetsenbord in een Cabinet is ook niet handig, dus hoe lezen we nu de knoppen in alsof het toestenbord aanslagen zijn.
Daar zijn meerdere opties voor, en de meest voorkomende als je op google zoekt is de Ultimarc I-PAC 2 (https://arcade-expert.nl/Ultimarc-IPAC2-I-PAC-2-IPAC-2-I-PAC-2-USB-Keyboard-Toetsenbord-Encoder-Interface-met-Aansluitset-Wiring-Kit). Dit is een interface die door Windows wordt gezien als een toetsenbord.
Een andere oplossing (die ik zelf heb gebruikt) zijn een aantal low-cost joystick interfaces bij ome Ali (Null Vertraging USB Controller).

Deze interfaces heb ik ook al gebruikt in mijn Arcade kast en in mijn Flipperkast, en moet zeggen dat ze me goed bevallen. Elke interface kan 12 knoppen (buttons) inlezen. Aangezien ik uiteindelijk op 21 knoppen kwam, heb ik dus 2 interfaces gebruikt. Windows ziet ze gewoon als Joysticks (GameControllers).
Het nadeel echter is dat MFME niet overweg kan met joystick buttons, je kan alleen toetsenborden gebruiken. Gelukkig is daar ook weer een oplossing voor namelijk Joy2Key (https://joytokey.net/en/). Dit mooie simpele programma doet niks anders dan joystick buttons omzetten naar toetsenbord commandos. Ja, je zou eventueel wat vertraging kunnen krijgen, maar ik heb het zelf nog niet gemerkt tijdens het testen.

Dus…….. het inlezen van knoppen hebben we gehad. Nu nog het aansturen van de lampen (LEDS) in de knoppen. MFME heeft maar 1 oplossing, namelijk de PAC-DRIVE (https://arcade-expert.nl/PacDrive-#1-USB-LED-Driver/Controller-Bord). 

LET OP: De Pac-drive is in meerdere “IDs” te krijgen, bedoeld om er meerdere tegelijkertijd te kunnen gebruiken. MFME ondersteund ID’s, maar als je er maar 1 nodig heb (in mijn geval) dan kan je hem het beste bestellen met ID=1
Daarnaast kwam ik tot de ontdekking dat de PAC-Drive bij opstarten van de PC (dus MFME is nog niet gestart) alle uitgangen “hoog” zet (dus alle lampen gaan branden totdat MFME is gestart). Op zich niet erg, ware het niet dat ik ook een “hopper” ga gebruiken (Een hopper is een uitbetalings systeem). Ik heb een speciale schakeling moeten bedenken om te zorgen dat de hopper niet begint uit te betalen als de PC is gestart. Hierover later meer.

De PAC-drive is “ground” gestuurd. Dat wil dus zeggen dat alle leds in de knoppen een vaste + hebben (+12V) en dat de grounds van de LED’s op de PAC-Drive worden aangesloten.

Later ga ik mijn uiteindelijke schema toelichten hoe ik het een en ander heb aangesloten.

Tot dusver de in en uitgangen.  Op zich heb je hier al voldoende aan om op een leuke manier MFME aan te sturen, maar als je toch bezig gaat…. dan maar vol gas 😉

Uitbetalingssysteem (Hopper)

 Na het uitvogelen van knoppen en lampjes (LEDS) is een gokkast natuurlijk minder leuk zonder een manier om je uit te betalen. Ik was dus op zoek naar een systeem die mij de mogelijkheid geeft om dit te doen.
Van wat ik begrijp, zijn er meerdere uitbetalingssystemen in de wereld van de gokkasten. Wat ik me nog kan herinneren van mijn eigen SuperBars is dat deze met “tubes” werkt. Een tube voor de guldens en een tube voor de knaken. De muntproever (waar je je geld in gooide) controleerde of het een gulden of knaak was, en zorgde dat de juiste munt in de juiste tube kwam. Elke tube had een systeem die een voor een de munten er uit duwde…… je gewonnen geld. Later zijn er slimmere systemen gekomen, waaronder ook de zogenaamde “hoppers”.
De MFME software kan overweg met een “hopper”, en de software heeft de mogelijkheid per type kast/moederbord een en dezelfde hopper aan te sturen. Hoe dat precies werkt komt terug in het software deel.

De hopper die ik ben gaan gebruiken heb ik wederom bij ome Ali besteld XF-666 AC220V /DC24V 6 Gat Coin Hopper Tokens Motor Voor Vissen/Mario Slot Gambing Arcade Machine Het bestaat hoofdzakelijk uit een opvangbak, met daarin een roterende schijf met gaten voor de munten. De schijf is door middel van een 24 Volt motor te bedienen. Wat hij dan doet ik per gat een munt er uit slingeren. Moet je zeggen….. dat gaat erg hard/snel. De hopper beschikt ook over een kontakt (optocoupler) die een puls geeft bij elke munt die er uit geslingerd wordt.

Dit kontakt is belangrijk, anders weet de software MFME niet hoeveel munten er zijn uitbetaald. De software blijft namelijk de uitgang van de motor sturen totdat hij het juiste aantal munten heeft gezien. (Gelukkig is er een time-out in de software van 10 seconden geen pulsen (lege bak), waarna hij in ieder geval stopt met sturen/draaien en het uitbetalen beeindigd)
In het kort wat MFME doet : Bij het uitbetalen zal MFME een uitgang van de PacDrive (die voor de lampjes in de knoppen worden gebruikt) aansturen. Aan deze uitgang hangt dan de 24 Volt motor van de hopper. De terugmelding (munt uitgegeven) wordt ingelezen in MFME door in mijn geval de JoyStick interface. Belangrijk is dat de terugmelding de toets “[” (Bracket) aanstuurt.

Maar er is (was) een probleem…………

Zoals ik al bij de knoppen en interfaces PacDrive had vermeld, de PacDrive stuurt alle uitgangen “hoog” (aan) als de PC wordt opgestart. Pas als MFME is gestart worden de uitgangen “gereset” en zijn dan laag. Als ik dus de Hopper motor op uitgang 16 ga aansluiten, dan zal de hopper meteen gaan draaien als de PC wordt gestart, er wordt niks geteld, dus de hele hopper spuugt zichzelf leeg.
Ik moest dus een manier verzinnen om dit op te lossen. Het meest eenvoudige zou zijn een schakelaar die ik zelf kan aanzetten als de software klaar is (gestart). Maar ja……. willen we dat wel.

Ik wil dus een soort inschakelvertraging maken voor de hopper, maar dan wel eentje die “hopper gereed” heeft als ook de software is geladen.
Ik kwam dus op onderstaande schakeling uit.

Kortweg wat het doet:
1. K1 is een tijdrelais, met een vertraging van 10 seconden. Deze start als de PC spanning aanwezig is (+12Volt vanaf een SATA voedingskabel)
2. K2 is een relais dat (via een optocoupler) vanuit de PACdrive wordt aangestuurd als de hopper moet uitbetalen (Initieel bij opstarten hoog)
3. K3 is een relais dat uiteindelijk de status geeft “Hopper ready”
4. Zoals je ziet stuurt K2 de hopper motor aan, echter staat dat in serie met een kontakt van K3
5. K3 is pas actief als het tijdrelais is geschakeld, en de PACdrive uitgang “uit” is.
6. Bij de situatie tijdrelais is actief en pacdrive is inactief zal K3 bekrachtigd worden, en de voorwaarde overbruggen

 Om het nog te verduidelijken staat hieronder een tijdstabel. (K4 en K5 kan je even overslaan, die is voor een Gadget LED in de geldbak)

De terugkoppeling van de hopper is een stuk makkelijker. Dat is een kontakt wat we moeten inlezen in de software (middels de JoyStick interface). Ik heb het zekere voor het onzekere genomen en heb een optocoupler tussen de hopper en de JoyStick interface gezet. De optocoupler wederom bij ome Ali (Tzt 1 2 4 8 Kanaals 5V 12V Relaismodule Board Shield Met Optocoupler Ondersteuning Hoge En Lage niveau Trigger Voor Arduino). Hierdoor hou ik een beetje de vreemde componenten en spanningen uit elkaar.

De hopper sensor heb ik op de volgende manier aangesloten:

De relaistuitgang van de OptoCoupler heb ik aangesloten op een button ingang van mijn JoyStick interface, en met Joy2Key deze ingang gekoppeld aan de toets “[“.

En voila……….. het werkt…….. (tot op een bepaalde hoogte, krijg veel meer munten dan gewenst)

Het lijkt er op dat de snelheid van de uitgifte dusdanig hoog is, dat de software een aantal pulsen mist van de terugkoppeling van de hopper. Of het nu aan de software MFME, de optocoupler, het relais, de Joystick Interface of Joy2Key ligt (of een combinatie hiervan), het gaat te snel. Dus de snelheid moest omlaag. Eerst heb ik geprobeerd de 24V van de motor wat lager te zetten, maar dan blijkt dat hij ook minder kracht heeft en moeite om de munten er met kracht uit te slingeren.
Dus……… wat nou als ik de helft van de gaten (3 ipv 6) dicht maak, dat scheelt letterlijk de helft. Mijn collega heeft een 3D printer, en het leek hem ook een leuke uitdaging hier wat in te betekenen.
Zo gezegd, zo gedaan. Hij heeft een mooi ontwerp gemaakt en deze in 3-voud geprint.

Het resultaat mag er zijn. Ze liggen mooi vlak in de schijf, en de munten glijden er mooi overheen. En wat nog veel belangrijker is : het doel is bereikt. De munten komen nu in halve snelheid uit de hopper, en de software leest nu ook perfect alle munten. Weer een probleem opgelost 🙂
Een korte video impressie kan je hier zien.

De "Muntproever"

Nu we de hopper werkend hebben, moet deze nog wel gevoed worden met munten. Geen munten, geen uitbetaling. Zoals je wellicht wel weet zijn de meeste “Nederlandse” kasten voorzien met een muntproever(s) voor Guldens en Rijksdaalders. (Bij sommige kon je er wel kwartjes ingooien, maar uitbetalen was minimaal met guldens). Later kwam het vijfgulden muntstuk, en ook die wordt door sommige kasten geaccepteerd.

Nu wil ik mijn kast niet gaan voorzien van alle soorten en mogelijkheden, maar gewoon met 1 munt (zeg maar de gulden). Ik ben dus op zoek gegaan naar een muntproever (die ik zelf kan aanpassen in de munt die hij moet accepteren), en die ook nog eens in MFME te gebruiken is.
Ik kwam dus weer bij Ali Express aan, want voor dit soort betaalbare gadgets zijn zij toch wel ideaal (en als je de materialen met beleid gebruikt, gaat het nog redelijk lang mee. De Joysticks in mijn Arcade kast doen het nog steeds perfect, ook de knoppen doen het nog steeds goed).

Ik heb een muntproever gevonden die voldoet aan mijn eisen. Vrij programmeerbaar en een schakelende uitgang als er een goede munt gelezen is. Het is deze geworden :  Muntvangers Selector Multi Muntvangers Elektronische Roll Down Voor Mechanisme Automaat Arcade Spel Ticket (verschrikkelijk he die vertalingen op Ali Express!)

Deze werkt op 12V, en heeft een uitgang (met een in te stellen puls lengte) die schakelt bij een juiste munt. Later volgt het schema hoe ik deze aangesloten heb.

Maar welke munt ga ik nu gebruiken? Voor het leuke zou ik natuurlijk de oude gulden gebruiken, maar ik heb daar geen voorraad van. Ik zat dan te denken aan euro munten, maar als ik daar er een paar honderd van wil hebben dan kost me dat ook weer een godsvermogen. Ik heb dus besloten om de 20 eurocent als munteenheid te gaan gebruiken, ik ga hem inzetten als een gulden.
Daar kwam eigenlijk meteen als een kleine “issue” met de MFME software/kasten. De meeste kasten zijn zo geconfigureerd dat de toets “0” er een zo hoog mogelijke munt in gooit (5 gulden). Je hebt dan meteen 20 punten, en ik wil 4 punten per munt.
Daar komt dan de Facebook groep weer mooi van pas (Fruit-Emu NL). Even de vraag gesteld en meteen antwoord 🙂
In de software is de toets “0” gekoppeld aan een ingang/input (als je de echte kast zou openmaken dan zit er een print in met veel ingangen (knoppen,terugkoppeling rollen,muntproevers etc) en uitgangen (motor sturing rollen, lampen etc)). Omdat MFME de origine software gebruikt, en de emulator de print emuleert, wordt dus ook de echte ingang gebruikt zoals hij origineel ook is. Wat meestal zo is, is dat als bijvoorbeeld het 5 gulden munt ingang 48 aanstuurt, de rijksdaalder op ingang 47 of 49 zit, en de gulden op 46 of 50.
Uiteindelijk even de betreffende kast in “design mode zetten”, de muntproever in de software even de eigenschappen van bekijken, en een andere ingang nummer uitproberen. Het is een “trial and error”, maar tot nu toe lukt het nog steeds. Ik ben een Excel sheet aan het bijhouden welke ingang nummers welke munt betekenen.

Ik heb de uitgang van de muntproever ook weer via een Opto Coupler laten lopen, weer ter bescherming van mijn Joystick Interface. De muntproever wordt op de volgende manier aangesloten. De uitgang van de Opto Coupler is een potentiaal vrij relais contact, en heb ik als een “joystick button” aangesloten op ingang 9 (button 9). In de software Joy2Key heb ik button 9 gekoppeld aan toets “0”.

De muntproever is makkelijk in te leren wat betreft munten. Je moet hem in de “leerstand” zetten en dan 10x een dezelfde munt inwerpen. Daarna herkend hij de munt, en zal alle andere munten weer retourneren. (Ze zijn denk ik niet zo secuur als de echte muntproevers, maar het gaan om het idee toch?).
Als ik de kast straks ga bouwen, dan komt er een PVC buis tussen de muntuitgang van de muntproever en de voorraadbak van de hopper. Het zit echt al allemaal in m’n hoofd, maar de uitvoering laat helaas nog even op zich wachten…… eerst de badkamer verbouwen 😉

Koeling

Mijn ervaring met mijn zelfgemaakte flipperkast heeft me geleerd dat het in een gesloten cabinet best wel warm kan worden. Om deze reden ga ik mijn cabinet ook voorzien van een geforceerde koeling (mijn flipperkast heeft er 4). De hardware in de fruit cabinet is een stuk minder dan de flipperkast, dus ik ga 1 (temperatuur geregelde) ventilator plaatsen. Hiervoor heb je een zogenaamde PWM (Pulse Wide Modulation) gestuurde ventilator nodig. Dit zijn veelal ook de ventilatoren in een tower-pc. Die blazen ook alleen harder als het nodig is.

Ik had dus 2 componenten nodig namelijk een PWM ventilator en een PWM regelaar. De ventilator heb ik uit een oude Dell T3600 gesloopt, de regelaar wederom bij AliExpress Dc 12V 4 Draad High-Temp Fan Temperatuurregeling Snelheid Controller Cpu. Dit handige printje heeft een temperatuur sensor, een alarm (buzzer) en kan 3 PWM ventilatoren aan (waarvan er 2 een vast ingestelde snelheid hebben en 1 geregeld wordt aan de hand van de gemeten temperatuur).

Alleen…….. Dell zou Dell niet zijn als het toch weer anders is. Dell gebruikt namelijk zijn eigen type connector, en niet de “standaard” voor PWM regelaars. Wat ik uiteindelijk heb gedaan is een paar PWM verlengkabels gekocht, deze doorgeknipt en de juiste draden van de ventilator een de juiste draden van de verlengkabel. Maar, de kleuren en de functies van de draden zijn van Dell niet gelijk aan de “standaard” PWM.


“Standaard connector”

DELL Connector

Kleurentabel.

Uiteindelijk, waar het in mijn geval op neer komt, rood aan rood, blauw aan blauw, zwart aan zwart en wit van de ventilator aan geel van de geknipte kabel (omdat de PWM verlengkabels weer andere kleuren had dan hierboven). Ik heb het dus even op PIN niveau bekeken en kwam tot deze aansluitgegevens. Het resultaat is een zeer rustig draaiende ventilator (je hoort hem niet), en als de warmte in de kast toe neemt gaat hij rustig iets harder draaien.

De voeding (er moet toch ergens stroom vandaan komen)

Erg leuk om een zelf een cabinet te ontwerpen en te voorzien van een hoop electronika, maar alles heeft natuurlijk stroom nodig. Kijkende naar de onderdelen die ik ben gaan gebruiken heb ik een voeding nodig van 12V (voor de leds in de knoppen, ventilator, muntproever, audio versterker) en 24V voor de hopper motor en de industriele netwerkswitch die ik in de cabinet ga plaatsen.

Het “addertje” zit hem in de 12V. Zoals ik bij de leds (pacdrive) heb verteld is de pacdrive “ground” gestuurd. De ground van de pacdrive komt via de USB aansluiting. Als ik een externe 12V zou gaan gebruiken, dan MOET ik de ground van die externe voeding aan de ground van de PC (USB) koppelen. Ik ben daar niet zo een fan van, dus heb besloten de 12V uit de PC zelf te halen. Dat doe ik door 1 van de vrije SATA voedingskabel te misbruiken als spanning voor mijn componenten.

De SATA voedingskabel in mijn PC heeft 4 aders:
Zwart = Ground
Oranje = +3.3Vdc
Rood = +5Vdc
Geel = +12Vdc

Ik heb niet de connector er af geknipt, maar een verloopkabel gebruikt die ik dan wel weer heb doorgeknipt, opgelast een aangesloten op mijn klemmenstrook. Nu ik het daar toch over heb, klemmenstrook : Ik heb een montageplaat gemaakt met daarop alle componenten en meerdere klemmenstroken waarmee ik alles aan ga sluiten. In het menuitem MFME Schemas staan alle aansluitschema’s waaronder ook mijn klemmenstrook.

Wordt vervolgd…….