Jump to content

PIN2RPI - WPC89/S/95 Raspberry Pi Pinball Controller


Recommended Posts

Hallo Zusammen,

ich bin zwar erst vor kurzem hier in das Forum eingetreten aber bin total begeistert von den Entwicklungs-Threats die es hier gibt. Allen voran das Lisy Projekt von @bontango und der Arduino Pinball Controller von @Black Knight. Leider habe ich nur eine Flipper, einen Bally Evel Knievel, den ich mit Lisy betreiben könnte. Der Rest sind bei mir DMD Flipper. Deshalb hatte ich hier die Idee das ganze auch mit WPC/S/95 Maschinen zu machen.

Bekannt bin ich vielleicht von meinem PIN2DMD Projekt mit dem ich mit einer PinMame Anbindung angefangen habe und diese Entwicklung dann relativ schnell auf echte Flipper erweitert. 

Da ich das Layout einer WPC89 Platine bereits hatte ging es eigentlich nur darum den ganzen CPU Kram auf einem aktuellen Mikroprozessor zu terminieren. Aufgrund meiner Erfahrung mit dem PIN2DMD Projekt habe ich hierfür den gleichen Prozessor, eine STM32F407 von ST Micro genommen. Zusätzlich kam noch ein Raspi für PinMame / MPF etc mit drauf. Ein DC/DC Wandler für stabile 5V und ein paar IC zur Pegelanpassung und fertig war das Design. Da das ganze als DIY Projekt geplant ist und mir gesagt wurde, dass die meisten sich nicht trauen SMD Bauteile selbst zu löten, ist das gesamt Design in Through Hole gemacht. Im Anhang ein Foto der (fast) fertig bestückten Platine die ich vorletzte Woche aus China bekommen habe. Die Funktionen der Anschlüsse habe ich alle getestet und bis jetzt konnte ich noch keinen groben Designfehler feststellen. Für den Sound benutze ich entweder die bestehende Soundkarte oder alternativ das Tilt!Audio Projekt von Steve45. Als DMD kommt entweder PIN2DMD per USB an den PI angebunden zum Einsatz oder das originale per BitBanging vom PI angesteuert (ToDo Liste ganz hinten). Die Anbindung zum WPC Power Distribution Board scheint bei allen drei WPC Generationen gleich zu sein. Die Anbindung zu Switchmatrix habe ich so gestaltet, dass diese aich bei allen 3 passen sollte. Ausserdem habe ich noch den Display Header der beim TwilightZone für zusätzliche Hardware benutzt wird mit drauf gemacht. Der Extendend Anschluss der meines Wissens nach nur für den DMD Controller benutzt wird, ist entfallen. 

Im Moment bin ich gerade dabei die ganzen Anschlüsse mit Leben zu füllen. Beim Sound, DMD und Switchmatrix ist alles klar aber bei Solenoids und Lampenmatrix habe ich zwar eine grobe Idee aber noch nichts konkretes. Aktuell habe ich ein 2ms Timer dafür vorgesehen, der die Ausgänge programmiert und die Switchmatrix abfragt. @Black Knight und @bontango habt ihr vielleicht ein paar Infos oder Codeschnipsel wie Ihr Solenoids und Lampenmatrix umsetzt ?

 

IMG_0435.JPG

Edited by Lucky1
Link to post
Share on other sites
4 hours ago, Lucky1 said:

habt ihr vielleicht ein paar Infos oder Codeschnipsel wie Ihr Solenoids und Lampenmatrix umsetzt ?

Schau dir mal in APC.ino die Routine TC7_Handler an. Das ist mein Timer-Interrupt, der jede ms läuft und die gesamte HW Ansteuerung übernimmt.

Im Abschnitt Lamps findest du die Steuerung der Lampenmatrix. Bei Sys 3 - 11 läuft dieser Lampenrefresh alle 2 ms, daher der LampWait Teil am Anfang. Den LEDsetting Teil kannst du ignorieren, der ist für meine kleine Zusatzplatine zum Ansteuern von RGB-LED Streifen.

Ich habe übrigens eine API-Referenz geschrieben, da ist erklärt wie die SW funktioniert.

Link to post
Share on other sites

Beeindruckend deine Platine 👍 so langsam kommt Bewegung in die Flippersteuerung mit Raspberry PI

 

Am 13.4.2020 um 09:45 schrieb Lucky1:

abt ihr vielleicht ein paar Infos oder Codeschnipsel wie Ihr Solenoids und Lampenmatrix umsetzt ?

Bei Williams bin ich da aussen vor da ich die LISY_API nutze. Für Bally und Gottlieb hab ich das in die PICs ausgelagert,

da läuft auch ein Timer der das ganze regelmässig durchnudelt. Bei interesse lad ich den Code mal auf mein Github

Link to post
Share on other sites

Ich habe mir mal die Steuerleitungen beim WPC95 mit dem Logicanalyzer aufgenommen und da wird die Lampenmatrix auch alle 2ms programmiert. Die Solnoids und Triacs alle 4ms und DIS3, welches für die Flipper zuständig ist, jede ms. Bei der Lampenmatrix werden zuerst alle Lampen ausgeschaltet und dann nach 35us wird die eigentliche Programmierung vorgenommen. Das dürfte dafür sein das Ghosting zu reduzieren. Ich werde jetzt mal versuchen das ganze so umzusetzen. Wie macht Ihr das eigentlich mit den Haltespulen für die Flipperfinger ?

Link to post
Share on other sites
19 hours ago, Lucky1 said:

Wie macht Ihr das eigentlich mit den Haltespulen für die Flipperfinger ?

Das macht bei den alten Kisten keine Arbeit, da die Flipperelektrik bei denen noch fest verdrahtet ist - also kein Fliptronic oder sowas. D.h. wir müssen einfach nur Spannung an die Flipperknöpfe geben und uns um nichts weiter kümmern.

Link to post
Share on other sites
  • 2 weeks later...
vor 4 Stunden schrieb mk47:

@Lucky1 wird das komplett Open Source oder wie beim PIN2DMD ein Mix aus freier Hardware und lizenzpflichtiger Software? Oder wird es gar "kommerziell"?

Da habe ich mir bis jetzt noch keine Gedanken drüber gemacht. Kommerziell ist von meiner Seite nicht geplant. Meine OpenSource Erfahrungen mit PIN2DMD sind allerdings nicht die Besten, da die Meisten OpenSource mit kostenlos unter einer MIT Lizenz gleichsetzen und sobald damit Geld zu verdienen ist, die Ethik über Bord geworfen wird. Teile von PIN2DMD, wie der Editor, sind ja immer noch komplett OpenSource und die Beteiligung von Dritten am Code ist nun seit 5 Jahren gleich NULL !! Von daher scheint OpenSource aus meiner Sicht im Flipper Hardwarebereich nicht wirklich seinen Zweck zu erfüllen. 

Link to post
Share on other sites

Ich weiss ja nicht wiees die anderen sehen. Ich hab mich am Anfang sehr über das Projekt gefreut und die Beteiligung im Forum war auch gut. Aber als es dann mit den Lizenzen los ging, habe ich das Interesse daran sehr schnell verloren und ich denke einige andere auch. So verständlich es auch ist das jemand damit Geld verdienen will, die Unterstützung  von "Außenstehenden" hat man dann nicht mehr...

Auch wenn der Editor kostenlos ist, letzt endlich unterstütze ich damit in meiner Freizeit ein kommerzielles Produkt. Wieso sollte ich das machen? Damit der Verkäufer noch mehr Verkaufsargumente hat und evt dann noch die Preiose erhöht?

Link to post
Share on other sites
Posted (edited)
vor 8 Minuten schrieb Volley:

Ich weiss ja nicht wiees die anderen sehen. Ich hab mich am Anfang sehr über das Projekt gefreut und die Beteiligung im Forum war auch gut. Aber als es dann mit den Lizenzen los ging, habe ich das Interesse daran sehr schnell verloren und ich denke einige andere auch. So verständlich es auch ist das jemand damit Geld verdienen will, die Unterstützung  von "Außenstehenden" hat man dann nicht mehr...

Naja die PIC Sourcen von Lisy sind ja auch nicht OpenSource und das ist das was quasi bei mir der STM32 macht. Ausserdem ist das Platinenlayout auch nicht frei verfügbar. Alles was auf dem Raspi läuft ist und bleibt natürlich OpenSource. Und glaub mir 5 Jahre Erfahrung mit PIN2DMD haben gezeigt, dass an Unterstützung bei solchen Projekt was das programmieren anbetrifft gleich Null ist aber das Interesse aus der Arbeit anderer Geld zu machen um so grösser.  Bei nicht kommerziellem Interesse tausche ich dort übrigens auch Informationen und Code mit Entwicklern aus . Siehe Freezy DMDDevice.DLL bei der ich den ColorCode von Pin2DMD mit Freezy und DJRobX beigesteuert habe. Wie gesagt habe ich mir da noch keine finalen Gedanken gemacht .

Edited by Lucky1
Link to post
Share on other sites
vor 2 Stunden schrieb Lucky1:

Von daher scheint OpenSource aus meiner Sicht im Flipper Hardwarebereich nicht wirklich seinen Zweck zu erfüllen. 

Die Hoffnung habe ich da noch nicht aufgegeben. Und PinMAME selbst ist ein Gegenbeispiel.
Und zu Steves verwaisten Ardunio-Lösung zum Auslösen der Switch-Matrix habe ich wenigstens ein "Doku beigetragen": https://github.com/mkalkbrenner/pinball-lw3/blob/docs/docs/LW3_Sketch.png

Im Vpin-Bereich ist der Pinscape-Controller das Gegenbeispiel. Wäre es nicht Open Source gewesen, hätte ich nie die Idee einbringen können, auf Basis der TLC5940 Expansion-Boards zu entwickeln.

Das wichtigste ist aber, dass jemand die Arbeit fortsetzten kann, falls der Autor mal keine Zeit mehr hat. Auch hier kann man mit DOF auf den VPin-Bereich verweisen.

Und könnte es nicht Synergien zwischen dieser Lösung, LISY und APC geben?

Und mit MPF gibt es auch im Real-Flipper-Bereich eine Open-Source-Community.

 

vor 3 Minuten schrieb Lucky1:

Naja die PIC Sourcen von Lisy sind ja auch nicht OpenSource

Dazu muss @bontango selbst was sagen.
Aber es geht in eine andere Richtung: https://github.com/bontango/BallyFa

Aber verstehe mich bitte nicht falsch: Ich finde alle Deine Arbeiten toll und werde auch dieses Projekt interssiert verfolgen. Aber als (teilweise) Closed-Source ist es zumindest für mich persönlich weniger attraktiv.

So, jetzt aber zurück zum Projekt aus technischer Sicht 🙂

Link to post
Share on other sites
vor 11 Minuten schrieb mk47:

Aber verstehe mich bitte nicht falsch: Ich finde alle Deine Arbeiten toll und werde auch dieses Projekt interssiert verfolgen. Aber als (teilweise) Closed-Source ist es zumindest für mich persönlich weniger attraktiv.

Ich habe absolut kein Problem damit den Code mit Leuten zu teilen bei denen klar ist, dass die daran mitarbeiten und keine kommerziellen Interessen haben.
Aber einfach nur meine Arbeit ins Internet stellen und damit die Schmeißfliegen anziehen mach ich nicht mehr.

Link to post
Share on other sites
vor 11 Stunden schrieb Lucky1:

Ich habe absolut kein Problem damit den Code mit Leuten zu teilen bei denen klar ist, dass die daran mitarbeiten und keine kommerziellen Interessen haben.
Aber einfach nur meine Arbeit ins Internet stellen und damit die Schmeißfliegen anziehen mach ich nicht mehr.

Das ist auch der Grund warum ich bislang nicht alles auf Github oder auf meine Seite gepackt habe.

Ich handele das bislang ähnlich: Wer fragt und bei dem ich nicht klar (ausschliesslich) kommerzielle Interessen erkenne bekommt

von mir jeden Support for free: Sourcen, Bug Fixes, neue Features, Tips/Links, ...

Die Gerberdateien für LISY gebe ich mittlerweile versuchsweise frei, mal sehen ob da demnächst ein 'Klone' auftaucht.

 

Link to post
Share on other sites

Nur aus Interesse: Ist euch bekannt, dass es beim Open Pinball Projekt eine offene Firmware für STM32 gibt?
Natürlich ist die Anforderung nicht deckungsgleich, aber vermutlich auch nicht grundverschieden.

Link to post
Share on other sites
vor einer Stunde schrieb mk47:

Nur aus Interesse: Ist euch bekannt, dass es beim Open Pinball Projekt eine offene Firmware für STM32 gibt?
Natürlich ist die Anforderung nicht deckungsgleich, aber vermutlich auch nicht grundverschieden.

Ich bin da vorher schon mal drüber gestolpert und als ich gesehen habe, dass es für einen STM32F103 ist gleich wieder vergessen.

Vom STM32F1 zum F4 kann man nicht besonders viel verwenden, zumal die Konzepte OPP / WPC grundsätzlich unterschiedlich sind.

Link to post
Share on other sites
  • 6 months later...

Den aktuellen Stand des Projektes habe ich mal hier hochgeladen

https://github.com/lucky01/PIN2RPI

Die Ansteuerung der Flasher, LampenMatrix, GI, Solenoids, Fliptronic und Soundboard
per USB mit Lisy Protokoll Befehlen (https://docs.missionpinball.org/en/latest/hardware/lisy/protocol.html) habe ich erfolgreich getestet.

Wofür ich im Moment keine Zeit habe ist die Raspberry PI Seite wie die Anbindung an PinMame mittels I2C. Die grundsätzliche I2C Kommunikation funktioniert aber.

Sprich der PI sieht den STM32 über den I2C Bus. Vielleicht will ja jemand einsteigen.

Platinen hätte ich noch da.

 

Link to post
Share on other sites

Das hört sich doch gut an.

Wenn ich das richtig deute, dann könnte man mit deiner Platine jetzt schon ein WPC Gerät mit MPF nutzen, richtig?

Bei uns hat I2C übrigens dermaßen herumgezickt, dass wir jetzt doch eine serielle Verbindung für die On-Board Kommunikation genommen haben. Das dürfte aber ein Problem mit der entsprechenden Arduino-Library gewesen sein und hat nicht direkt was mit I2C zu tun.

Link to post
Share on other sites
vor 14 Stunden schrieb Black Knight:

Das hört sich doch gut an.

Wenn ich das richtig deute, dann könnte man mit deiner Platine jetzt schon ein WPC Gerät mit MPF nutzen, richtig?

Bei uns hat I2C übrigens dermaßen herumgezickt, dass wir jetzt doch eine serielle Verbindung für die On-Board Kommunikation genommen haben. Das dürfte aber ein Problem mit der entsprechenden Arduino-Library gewesen sein und hat nicht direkt was mit I2C zu tun.

Ich habe bisher nur die einzelnen Befehle mit RealTerm, getestet da ich leider keine Zeit hatte MPF aufzusetzen und mich dort einzuarbeiten, sollte aber grundsätzlich funktionieren. 
 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Privacy Policy and Community Guidelines