Jump to content
Black Knight

Arduino Pinball Controller

Recommended Posts

vor 38 Minuten schrieb Black Knight:

daraus ist ersichtlich, dass Lisy den Bumber (Spule 22) tatsächlich einschaltet, was nicht sein sollte,

&%&$ 😉 schau ich mir morgen an

vor 38 Minuten schrieb Black Knight:

Wenn Ralf einverstanden ist würde ich dann auch gleich noch ein Plätzchen für einen Pi vorsehen, also Lisy_Mini praktisch integrieren.

absolut keine Einwände, nur ein kleiner Schriftzug mit ner URL zu www.lisy.dev auf der Platine wär schön 😎

Share this post


Link to post
Share on other sites
vor 45 Minuten schrieb Black Knight:

Ich weiß allerdings noch nicht, warum das Ding hängen bleibt, denn laut Log schaltet Lisy ihn auch wieder aus.

pinmame laesst in 10 Sekunden an ... ich denke das hängt mit Switch:#52 ( Top Jet Bumper) zusammen,  jedenfalls kommt

die Aktivierung direkt danach, und wenn er wieder auf 0 geht, wird die Spule deaktiviert, ABER:

- das macht er nur bei #52, Switch#53 (Bottom Jet Bumper) laesst in kalt obwohl da sind zwischen EIN und AUS auch nur 11 millisekunden

Die Switches der Switchmatrix sollten doch nur 'Zaehlkontakte' sein, oder ist der Upper Jet Bumper irgendwie 'besonders'?

UND:

wieso liegen da 10 Sekunden dazwischen ???

any idea?

 

[618.046657][0.000019] LISY_W_SWITCH_HANDLER Switch#:52 action:1

...

[618.055810][0.000063] LISY_W_SOLENOID_HANDLER: Solenoid:22, changed to 1 ( AC is 1)

...

[628.479499][0.000017] LISY_W_SWITCH_HANDLER Switch#:52 action:0

.....

[628.517388][0.000050] LISY_W_SOLENOID_HANDLER: Solenoid:22, changed to 0 ( AC is 1)

Share this post


Link to post
Share on other sites
37 minutes ago, bontango said:

nur ein kleiner Schriftzug mit ner URL zu www.lisy.dev auf der Platine wär schön

Klar, kein Problem, vielleicht könnten wir auf deiner Homepage ja auch gleich die entsprechende Doku unterbringen.

23 minutes ago, bontango said:

ich denke das hängt mit Switch:#52 ( Top Jet Bumper) zusammen,

Schalter 52 sollte tatsächlich nur zur Punktezählung sein. Normalerweise werden diese Schalter nur aktiviert, wenn der Bumper anzieht.

Ich habe gerade mal ein Experiment gemacht: ich habe Lisy gestartet und bin ich den Pinbot Testmodus gegangen. Dann habe ich den Bügel des unteren Bumpers von Hand betätigt, woraufhin PinMame ja nur die Punkte zählen sollte. Stattdessen ist die Spule des Bumpers angesprungen und hat den Bügel unten gehalten. PinMame scheint also den Schalter für die Punkte als Aktivierungssignal zu nehmen.

Damit läuft das Ganze im Spiel wohl so ab, dass zunächst der eigentlich Aktivierungsschalter betätigt wird. Dann aktiviert die HW-Rule den Bumper wodurch der Zählschalter aktiv wird. Jetzt kommt PinMame und aktiviert die Spule erneut, so dass der Bumper unten bleibt.

43 minutes ago, bontango said:

wieso liegen da 10 Sekunden dazwischen ???

Als ich gemerkt habe, dass der Bumper hängt habe ich ‚High Score Reset‘ gedrückt. Der fungiert bei mir als Not-Aus und zieht den Blanking, was Lampen, Display und Spulen deaktiviert. Die Schalter laufen dann aber noch, wir sehen bei dem Schalter also nur, dass der Bumper wieder hoch kommt.

 

Share this post


Link to post
Share on other sites

@Black Knight Mal einige Gedanken zu einer möglichen neuen APC Version:

  • CPLD könnte man auch über den Raspberry Pi programmieren, evtl. mit http://openocd.org/
  • Anstelle CPLDs auf der Hauptplatine zu platzieren, könnte man Shields für Arduino oder Raspberry Pi einsetzen. Oder Breakout Boards, die über Pinheader verlötet werden. Ähnlich wie beim TiltAudio könnte das im Gegensatz zu SMD direkt auf der Platine wieder jeder selbst austauschen:
  • Beim Pinscape-Controller hatten wir uns gegen eine einzelne große Platine entscheiden. Stattdessen werden verschiedene 10x10cm Platinen gestapelt oder nebeneinander montiert und über Pinheader oder Flachbandkabel verbunden. Diese Platinengröße war viel billiger zu produzieren und auch ohne Zollprobleme für unter 22 Euro aus China zu importieren.
  • Ein modularer Aufbau mit mehreren Platinen hätte auch den Vorteil, dass einzelne Komponenten individuell verbessern könnte, z.B. optional bestimmte Treiberausgänge mit Hardware-Timern gegen dauerhaftes Durchschalten schützen.

@bontango Könnte die Lösung vom aktuellen TiltAudio 2.6a nicht auch für LISY für den Sound geeignet sein? Die wenigen Bauteile sind recht günstig, z.B. die Kombination aus

  • PCM5102 I2S DAC Decoder Board
  • Digital PAM8610 2x15W Amplifier Board

Share this post


Link to post
Share on other sites
vor 8 Stunden schrieb mk47:

Stattdessen werden verschiedene 10x10cm Platinen gestapelt oder nebeneinander montiert und über Pinheader oder Flachbandkabel verbunden

Aber jeder zusätzlicher Stecker bzw jedes zusätzliche Kabel ist auch eine neue Fehlerquelle (Kontaktprobleme).

Wenn dann vielleicht ein größeres Base-Board mit vernünftigen Stecker- und Buchsenleisten und Befestigungslöchern für die Verschraubung der Shields und nur da wo es Sinn macht und man wirklich mal wechseln muss (Arduino, Treiber, evt auch Sound)

Share this post


Link to post
Share on other sites
vor 9 Stunden schrieb mk47:

Könnte die Lösung vom aktuellen TiltAudio 2.6a nicht auch für LISY für den Sound geeignet sein?

Ja, hatte da schon 'abgeguckt' und so was ähnliches schon gebaut ( für die aktuelle LISY Version ) -> siehe Bild unten, mit 5Volt, 3W Verstärker, Beschreibung auf lisy.dev folgt

Das Problem ist nur dass Gottlieb einen 'Halbbrückenverstärker' braucht, weil der original Lautsprecher mit einem Bein auf GND hängt.

Deshalb muessen die User den Lautsprecher aktuell neu verdrahten. In der nächsten LISY Version soll da ein Kartenrandstecker direkt für die

Soundkarte mit dran. Werde den Verstärker dann wohl diskret eventuell mit nem TDA2030 aufbauen, obwohl der ja schon Uralt ist ..

schaue mich aber gerade nach Alternativen um, wenn Ihr da Vorschläge habt?!

@Black Knight hattest Du gesehen dass der von Dir verwendete TDA 7496 bei Reichelt nicht mehr lieferbar ist?

Und: Lati sagt, das mit den Augen gehört so!

https://www.flippermarkt.de/community/forum/threads/pinbot-multiball-wie-ist-es-richtig.217453/#post-1727964

grafik.png

Share this post


Link to post
Share on other sites
14 hours ago, mk47 said:

CPLD könnte man auch über den Raspberry Pi programmieren

Ja, das ginge wohl auch. Allerdings soll der Pi mehr eine Option sein, die nicht jeder benutzen wird.

6 hours ago, Volley said:

Aber jeder zusätzlicher Stecker bzw jedes zusätzliche Kabel ist auch eine neue Fehlerquelle (Kontaktprobleme).

Vermutlich müssten die Stecker auch von Hand bestückt werden, zumindest finde ich in der Teiledatenbank von JLCPCB keine.

5 hours ago, bontango said:

hattest Du gesehen dass der von Dir verwendete TDA 7496 bei Reichelt nicht mehr lieferbar ist?

Tja, das war zu befürchten; schon bei meiner letzten Bestellung hatten sie das Ding nur noch als Restposten. Aber Reichelt hat ja sowieso nicht alle APC-Teile, man muss also noch woanders bestellen und da ist der TDA noch überall zu haben.

5 hours ago, bontango said:

Und: Lati sagt, das mit den Augen gehört so!

Tja, das erklärt dann wohl warum es so nach Absicht aussieht.😉

Share this post


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

Damit läuft das Ganze im Spiel wohl so ab, dass zunächst der eigentlich Aktivierungsschalter betätigt wird. Dann aktiviert die HW-Rule den Bumper wodurch der Zählschalter aktiv wird. Jetzt kommt PinMame und aktiviert die Spule erneut, so dass der Bumper unten bleibt.

Ich könnte die Spulen für die eine HW Rule eingerichtet ist von der Aktivierung ausnehmen. Dann muesste ich nur eine Tabelle machen

in der das pro Pin aufführe, würde es daher lieber 'allgemein' halten.

Habe aber einen 'PROC' Kommentar in der pinmame soure gefunden:

    /*-- special solenoids updated based on switches         -- */
    /*-- but only when no P-ROC, otherwise special solenoids -- */
    /*-- lock on when controlled by direct switches          -- */
    for (ii = 0; ii < 6; ii++) {
      if (core_gameData->sxx.ssSw[ii] && core_getSw(core_gameData->sxx.ssSw[ii]))
        locals.solenoids |= CORE_SOLBIT(CORE_FIRSTSSSOL+ii);
    }

das hört sich nach unserem Problem an!

Ich habe die Routine testweise mal fest rausgenommen und ein kleines update ( _5.25-56 ) hochgeladen

Könntest Du das noch mal testen bitte?

@Snuxkannst du uns da evtl. etwas zu sagen?

Edited by bontango

Share this post


Link to post
Share on other sites
40 minutes ago, bontango said:

Könntest Du das noch mal testen bitte?

Das war's, die Special Solenoids funktionieren jetzt sowohl im Spulentest als auch im Spiel selbst.

Habe gerade drei Spiele gemacht und keine Probleme feststellen können. Jetzt noch die restlichen Sounds und wir haben's geschafft. :banano:

Share this post


Link to post
Share on other sites

😁👍💪

Einen kurzen check musst Du bei der nächsten Version noch machen, ich muss das jetzt als conditional compile reinbringen sonst

zerschisse ich den allgemeinen pinmame code.

Morgen gehts weiter, Heute Abend ist pokern 😎

Share this post


Link to post
Share on other sites
Am 14.2.2020 um 18:15 schrieb Black Knight:

Dann zock sie mal ab und bis morgen.

Leider schief gegangen, mit Flush gegen Full House rausgeflogen. 😧 more luck next time ...

Zum Sound: könntest Du mir noch mal einen Log mit aktiviertem Sound-Debug schicken?

Bei den Logs die ich habe fehlen die Sounds mit Index#1

Share this post


Link to post
Share on other sites
51 minutes ago, bontango said:

Zum Sound: könntest Du mir noch mal einen Log mit aktiviertem Sound-Debug schicken?

Ist unterwegs.

Ich werde jetzt versuchen, ein Finetuning vom Throttle zu machen. Mal sehen, was ich da als Referenz nehmen kann.

Share this post


Link to post
Share on other sites

Ich kann leider den Throttle nicht genau einstellen, da sich die Geschwindigkeit nicht kontinuierlich mit den Einstellungen ändert. Es gibt einen Geschwindigkeitssprung von ca. 20% zwischen Throttle 108 und 107 und die korrekte Geschwindigkeit läge irgendwo dazwischen.

Share this post


Link to post
Share on other sites

Die Sounds vom zweiten Board kann ich jetzt auch rippen. Das ist eine Mischung aus Hintergrundmusik aber auch kurzen Sounds.

Wie wollen wir das machen? Soll ich dir signalisieren dass der Sound ans zweite Board geht (wie?) und wie machen wir das mit 'never ending sounds'?

Nehmen wir da ne Minute oder so auf und gut ist, oder setze ich das Loop-Flag? ( kannst Du loopen?)

Falls ich das loop Flag setzen soll, muestte ich ne Tabelle pro Pin aufbauen um zu wissen welche sounds endlos sind, oder das

irgendwie im Soundnamen mit aufführen ( immer ein _loop an Ende?) 

Da gefällt mir die Minutenvariante am besten, was meinst Du?

Share this post


Link to post
Share on other sites
4 minutes ago, bontango said:

Soll ich dir signalisieren dass der Sound ans zweite Board geht (wie?)

Ich habe doch zwei Soundkanäle, schick die Sounds für die verschiedenen Boards einfach an verschiedene Kanäle. Ich nehme an, damit wird auch im Original festgelegt, was simultan gespielt wird und was nicht.

7 minutes ago, bontango said:

Nehmen wir da ne Minute oder so auf und gut ist, oder setze ich das Loop-Flag? ( kannst Du loopen?)

Ich kann zwar loopen, aber mir gefällt die Minutenvariante auch besser. Die Soundfiles sind so klein und SD-Karten sooo groß … 😁

Share this post


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