Zum Inhalt springen

Arduino Pinball Controller


Black Knight

Empfohlene Beiträge

14 hours ago, Lucky1 said:

allerdings finde ich die IDE selbst nicht besonders komfortabel und das Debugging über serielle Ausgabe eher hinterweltlerisch

Vollkommen deiner Meinung. Ich selbst benutze ebenfalls Eclipse mit dem Arduino Plugin Sloeber. Ich mag besonders den SW Debugger/Simulator, der mir schon so manche Sitzung vor dem Flipper erspart hat. Trotzdem habe ich darauf geachtet, dass meine SW auch immer mit der normalen Arduino-IDE funktioniert, da das vermutlich für fast alle anderen Nutzen das Mittel der Wahl sein wird. Ich habe sogar dieses komische .ino Format von Arduino verwendet, um es den Leuten möglichst einfach zu machen.

14 hours ago, Lucky1 said:

Die PinMame Daten wieder für den original Controller aufzubereiten ist eigentlich unsinnig.

Sehe ich auch so. Das gibt dir auch alle Freiheiten bezüglich der Schnittstelle zwischen Pi und Controller, da die Datenrate dann ziemlich niedrig ist. Ein passendes Protokoll gibt's auch schon (Lisy_API_0.09).

Es sollte auch eine Möglichkeit geben, den Controller ohne Pi direkt über USB vom PC aus zu steuern. Das ist z.B. nützlich wenn man mit MPF ein neues Spiel entwickelt. Wenn dann alles soweit läuft schreibt man's in den Pi und braucht den PC nicht mehr.

Bezüglich der Platine musst du dir überlegen, für welche Zielgruppe du das Ganze bauen möchtest. Ich habe mich bemüht, den APC so einfach und transparent wie möglich zu bauen, trotzdem sind die meisten Leute wohl mit dem Aufbau überfordert. Es gab sowohl hier, als auch im Pinside Forum einige Leute, die mit Feuereifer gestartet sind, von denen man aber hinterher nie wieder was gehört hat. Meine Vermutung ist daher, dass die Boards jetzt irgendwo mehr oder weniger fertig herumliegen. Außer mir weiß ich nur von zweien, die mein Board erfolgreich aufgebaut haben und nutzen und das sind mit bontango und Snux zwei Bastler, die schon vorher auf dem Gebiet der Flipper-Controller aktiv waren und daher sehr genau wissen, was sie tun.

Meine Erfahrungen vom APC sind z.B, dass die meisten Leute über SMD Bauteile jammern. Wenn du also ein Selbstbauprojekt machen möchtest, dann verzichte nach Möglichkeit darauf. Leider gibt es viele Bauteile nur noch in SMD und ob die Leute mit anderen Komponenten wirklich besser klarkommen kann Ralf besser beurteilen.

Auf der anderen Seite hätten die meisten gerne ein fertiges Board und wenn du das liefern willst, dann solltest du ausschließlich SMD verwenden, da das in China günstig bestückt werden kann. Auch da kann Ralf mehr zu sagen.

Nun ist der APC natürlich wesentlich komplexer als eine WPC-MPU, da er ja auch PowerDriver und andere Boards ersetzt. Die Probleme mögen daher bei dir nicht ganz so groß sein, aber im Prinzip vermutlich ähnlich.

1 hour ago, bontango said:

Was muesste ich den 'bauen' um die Möglichkeit zu haben Switche zu simulieren und alle auf 'open' zu setzen?

Wir könnten die Pull-ups an den Schaltereingängen einschalten, wenn du dann am Arduino einen der A0 - A7 Pins mit GND verbindest aktivierst du eine Schalterspalte. Wenn du das möchtest, dann würde ich dir raussuchen, was dafür im Code geändert werden muss. Denk nur dran, dass der DUE nur 3,3V verträgt, also nicht mit 5V an irgendwelche Inputs gehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 1,6Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

  • Black Knight

    642

  • bontango

    438

  • Volley

    100

  • jabdoa

    97

Top-Benutzer in diesem Thema

Veröffentlichte Bilder

vor 5 Minuten schrieb Black Knight:

Wir könnten die Pull-ups an den Schaltereingängen einschalten, wenn du dann am Arduino einen der A0 - A7 Pins mit GND verbindest aktivierst du eine Schalterspalte. Wenn du das möchtest, dann würde ich dir raussuchen, was dafür im Code geändert werden muss. Denk nur dran, dass der DUE nur 3,3V verträgt, also nicht mit 5V an irgendwelche Inputs gehen.

Merci, aber wenn ich eh ein kleines Board mit switches & dioden bastele könnte ich auch ein Widerstandsarray für den pull-up einbauen, dann kann ich den Originalcode verwenden.

Folgenden Schaltplan für die Switchmatrix habe ich gefunden, wernn Du mir sagst wo row/column und 3.3 Volt an den Arduino Ports aufliegen sollte ich alles haben, oder?

( row ist 'strobe bzw. select(output)' und column ist 'return(input)' oder umgekehrt ? )

 

image.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, bontango said:

row ist 'strobe bzw. select(output)' und column ist 'return(input)' oder umgekehrt ?

Column ist select(Output) und row ist der Input. Leider nützt dir das nichts, da diese Pins nicht direkt an den Arduino gehen, sondern auf dem APC noch der SwitchDriver Block dazwischen sitzt.

Die Inputs sind nicht das Problem; so lange man bei 3,3V bleibt, kann man die direkt an die Arduino Inputs anschließen, aber die Select-Signale (Column) müsstest du mit Hilfe eines 74HCT377 aus dem Bus extrahieren.

Ich weiß nicht, ob das die Müde Wert ist, zumal du dann nur die 64 Schalter der Switch Matrix nutzen kannst, die Direct-Switches wie den Advance hast du damit immer noch nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im APC.ino musst du in der Zeile

REG_PIOA_PUDR = 29425756;                     // disable Pull-ups

aus dem PUDR (Pull up disable register) ein PUER machen (Pull up enable register).

Das darfst du aber nur mit einem nackten Arduino ohne APC verwenden. Ansonsten addieren sich die Spannung der Pull-ups und die der Spannungsteiler des APC und das ergibt mehr als 3,3V und könnte den Arduino beschädigen.

Ich würde das also nur kurzzeitg verwenden, wenn du mal wirklich die Schalter sehen möchtest.

Link zu diesem Kommentar
Auf anderen Seiten teilen

habe es auf "REG_PIOA_PUER = 29425756;" geändert, aber keine Änderung an Verhalten.

Ich bekomme am Anfang diesen Switchstatus

Switch Statusn 1..8;9..16;17..24; ...:
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

und danach 'wilde' Switchaktivitäten.

Habe dann mal ein 3,3K array an 3,3Volt gehängt (siehe Bild)

image.png

Dann sieht der Switchstatus am Anfang sauber aus.

Ich bekomme aber auch hier Switchaktivitäten gemeldet.

Erst ein paar mal nur Switches 65,80,67 & 0, dann nur noch Switch 0, Switch 0 hört auch nicht mehr auf zu reporten.

Es wird auch immer nur 'open' (==0) gemeldet, closed taucht gar nicht auf.

siehe angehängten log

any Idea?

 

Gruesse

Ralf

pi@lisy(ro):~$ ./run_lisy_mini
LISY basic DEBUG activ
[199.204067][0.000013] LISY DEBUG timer set
[199.205020][0.000953] Info: udp switch reader server for debug mode succesfully started
[199.205068][0.000048] LISY_Mini Hardware init start
send cmd to /dev/ttyACM0, 1 times
send cmd to /dev/ttyACM0, 2 times
send cmd to /dev/ttyACM0, 3 times
send cmd to /dev/ttyACM0, 4 times
LISY_Mini: HW Client is: APC
[204.689695][5.484627] LISY_Mini: Client has SW version: 00.12
[204.694940][0.005245] LISY_Mini: Client uses API Version: 0.09
[204.698921][0.003981] LISY_Mini: Client supports 64 lamps
[204.702925][0.004004] LISY_Mini: Client supports 25 solenoids
[204.706923][0.003998] LISY_Mini: Client supports 73 switches
Switch Statusn 1..8;9..16;17..24; ...:
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
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Info: usb serial successfull initiated
[205.002113][0.295190] LISY80 DEBUG activ for switches
[205.003263][0.001150] Info: LISYMINI Throttle value is 300 for this game
LISYMINI: we are emulating Game No:39 comet_l5
info: trying to parse: /usr/local/share/xpinmame/xpinmamerc
info: trying to parse: /root/.xpinmame/xpinmamerc
info: trying to parse: /usr/local/share/xpinmame/xpinmame-vid_lisyrc
info: trying to parse: /root/.xpinmame/xpinmame-vid_lisyrc
info: trying to parse: /usr/local/share/xpinmame/rc/comet_l5rc
info: trying to parse: /root/.xpinmame/rc/comet_l5rc
LISY80_SIG_HANDLER: SIGUSR1 catched
This is LISY (Lisy Mini) by bontango, Version 525 18
[205.017964][0.014701] LISY_Mini: HW Rule set for solnenoid:17 and switch:65
[205.018929][0.000965] LISY_Mini: HW Rule set for solnenoid:18 and switch:66
[205.020193][0.001264] LISY_Mini: HW Rule set for solnenoid:19 and switch:67
[205.022916][0.002723] LISY_Mini: HW Rule set for solnenoid:20 and switch:68
[205.024536][0.001620] LISY_Mini: HW Rule set for solnenoid:21 and switch:69
loading rom 0: cpu_u20.l5
done
RTH sound handler: 255
RTH sound handler: 0
[205.136835][0.112299] LISY_W_SWITCH_READER: changed switch reported: returnbyte:65
[205.137656][0.000821] LISY_W_SWITCH_READER: return switch: 65, action: 0
[205.147447][0.009791] LISY_W_SWITCH_READER: changed switch reported: returnbyte:80
[205.148182][0.000735] LISY_W_SWITCH_READER: return switch: 80, action: 0
[205.157171][0.008989] LISY_W_SWITCH_READER: changed switch reported: returnbyte:67
[205.157947][0.000776] LISY_W_SWITCH_READER: return switch: 67, action: 0
[205.168977][0.011030] LISY_W_SWITCH_READER: changed switch reported: returnbyte:0
[205.169786][0.000809] LISY_W_SWITCH_READER: return switch: 0, action: 0
[205.170448][0.000662] LISY_W_SWITCH_HANDLER Switch#:0 action:0

 

---->  DAS KOMMT INSGESAMT 10 MAL

----> DANNnUR NOCH Switch 0

[205.762634][0.181450] LISY_W_SWITCH_READER: changed switch reported: returnbyte:0

[205.763478][0.000844] LISY_W_SWITCH_READER: return switch: 0, action: 0
[205.764268][0.000790] LISY_W_SWITCH_HANDLER Switch#:0 action:0

[205.882630][0.118362] LISY_W_SWITCH_READER: changed switch reported: returnbyte:0
[205.883409][0.000779] LISY_W_SWITCH_READER: return switch: 0, action: 0
[205.884189][0.000780] LISY_W_SWITCH_HANDLER Switch#:0 action:0

[206.002624][0.118435] LISY_W_SWITCH_READER: changed switch reported: returnbyte:0
[206.003392][0.000768] LISY_W_SWITCH_READER: return switch: 0, action: 0
[206.004174][0.000782] LISY_W_SWITCH_HANDLER Switch#:0 action:0

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei mir gibt es überhaupt keinen Switch 0. Außerdem kann ein Switch nicht zweimal bei 'get changed switches' (Kommando 0x29) als open gemeldet werden, ohne zwischendurch mal geschlossen gewesen zu sein.

Für mich sieht das nach API Diskrepanz aus, sprich Jan und ich haben dich wohl abgehängt. Wir haben ja noch ein paar Dinge geändert, als du schon mit anderen Dingen beschäftigt warst und das fällt dir wohl jetzt auf die Füße.

Kannst du mir mal die rohen USB-Daten schicken? Dann müssten wir ja sehen, was der Lisy schickt und was der APC antwortet. Irgendwie verstehen sich die Beiden wohl nicht mehr 😥

Du scheinst auch noch mit APC Version 0.12 zu arbeiten. Ich glaube zwar nicht, dass es einen Unterschied macht, denn du bist ja offensichtlich im USB-Modus aber wechsle sicherheitshalber mal auf 0.13.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Check ich morgen mal, aber ich frag da nur zyklisch 0x29 und bekomme immer 0 zurück. Hattet ihr nicht von Switchstart 0 auf Switchstart 1 umgestellt? Sind da evtl. noch 0 Reste drin die bislang nicht aufgefallen sind?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb Black Knight:

Sehe ich auch so. Das gibt dir auch alle Freiheiten bezüglich der Schnittstelle zwischen Pi und Controller, da die Datenrate dann ziemlich niedrig ist. Ein passendes Protokoll gibt's auch schon (Lisy_API_0.09).

Ich habe mir die API mal kurz angesehen und so wie ich das sehe gibt es keine Kommunikation vom die unaufgefordert vom Controller zum PC geht. Richtig ?

vor 10 Stunden schrieb Black Knight:

Es sollte auch eine Möglichkeit geben, den Controller ohne Pi direkt über USB vom PC aus zu steuern. Das ist z.B. nützlich wenn man mit MPF ein neues Spiel entwickelt. Wenn dann alles soweit läuft schreibt man's in den Pi und braucht den PC nicht mehr.

Ist kein Problem. der STM32 hat ja einen Full-Speed USB onboard.

vor 10 Stunden schrieb Black Knight:

Meine Erfahrungen vom APC sind z.B, dass die meisten Leute über SMD Bauteile jammern. Wenn du also ein Selbstbauprojekt machen möchtest, dann verzichte nach Möglichkeit darauf. Leider gibt es viele Bauteile nur noch in SMD und ob die Leute mit anderen Komponenten wirklich besser klarkommen kann Ralf besser beurteilen.

Das ist auch meine Erfahrung. Die erster Version wird wohl wie die original WPC89 CPU auf Through Hole basieren. 

vor 10 Stunden schrieb Black Knight:

Auf der anderen Seite hätten die meisten gerne ein fertiges Board und wenn du das liefern willst, dann solltest du ausschließlich SMD verwenden, da das in China günstig bestückt werden kann. Auch da kann Ralf mehr zu sagen.

Wenn dann mache ich das wie beim PIN2DMD und stelle nur die Gerber Files und die Dateien für Turnkey Assembly zur Verfügung. Verkaufen werden ich wenn nur das was ich von meinen Testbestellungen über habe.

Ich bin mir selbst noch nicht sicher ob ich zuerst nur WPC89 mache oder gleich eine Platine die auch wir WPC-S und WPC95 geht. Da ich die WPC89 Platine schon als Eagle Datei habe würde das am schnellsten gehen.

 

Bearbeitet von Lucky1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Stunden schrieb Lucky1:

Ich habe mir die API mal kurz angesehen und so wie ich das sehe gibt es keine Kommunikation vom die unaufgefordert vom Controller zum PC geht. Richtig ?

Genau, Switches werden gepollt und dann gibt es noch 'Hardware Rules', die werden einmal auf die Hardware geladen und

agieren dann eigenständig ( z.B. für Bumper, Slingshots, .. )

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb Black Knight:

Für mich sieht das nach API Diskrepanz aus

Hast wohl recht gehabt, bei mir war 'set segment display' noch ein null terminated string, und nicht ne Bytefolge mit nem Längenbyte,

jetzt sind die 'Nullen' schon mal weg, das andere schau ich noch ... melde mich.

@jabdoa jetzt fällt es mir ein, den selben Fehler hatte ich schon im September in meinem MPFServer 🙄, kannst Du bitte noch die LISY_API doku anpassen? Da steht immer noch " Payload is a null terminated string. "

Link zu diesem Kommentar
Auf anderen Seiten teilen

17 hours ago, Lucky1 said:

Die erster Version wird wohl wie die original WPC89 CPU auf Through Hole basieren. 

Damit kannst du aber keine bestückten Boards mehr ordern oder kennst du einen Laden, der noch through-hole zu einem vertretbaren Preis bestückt?

17 hours ago, Lucky1 said:

Ich bin mir selbst noch nicht sicher ob ich zuerst nur WPC89 mache oder gleich eine Platine die auch wir WPC-S und WPC95 geht.

Ich würde direkt alles einbauen. Wenn ich mich richtig erinnere sind die Unterschiede von außen betrachtet doch auch nicht groß, oder?

6 hours ago, bontango said:

Hast wohl recht gehabt

Muss ja auch mal sein 😉

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Black Knight:

Damit kannst du aber keine bestückten Boards mehr ordern oder kennst du einen Laden, der noch through-hole zu einem vertretbaren Preis bestückt?

Die Chinesen machen das auch aber die erste Platine ist als DIY Version gedacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, jetzt bin ich wieder auf dem Stand vom September ☺️, schön finde ich dasss er beim Start jetzt kurz seine Softwareversion mitteilt 👍

nun ja: 'fast' auf dem alten Stand, beim letzten Test hatte ich noch das Default display drin, werde ich morgen mal abändern.

Was mich direkt wieder zu der Frage bringt ob wir nicht einen Befehl in die API einbauen sollten der dem APC sagt, was er für ein Display hat.

Mir schwebt da ein allgemeiner Befehl 'Hardware Option' vor. Byte 1 wäre die zu setzende Option ( 1==Displaytype) und dann Byte zwei der Wert (wie im Setting im source)

Der user wird ja nur den Pin am dip Schalter der LISY-Mini konfigurieren, was LISY dann anhand einer Tabelle dem richtigen Display zuordnen und an den Apc weitergeben kann.

@Black Knightwas meinstDu?

btw: In meinem Fall muesste ich da sogar ne Sonderconfig machen, im Normalfall hat der Comet doch andere Displays, richtig??

 

Gruesse

Ralf

Link zu diesem Kommentar
Auf anderen Seiten teilen

45 minutes ago, bontango said:

btw: In meinem Fall muesste ich da sogar ne Sonderconfig machen, im Normalfall hat der Comet doch andere Displays, richtig??

Ja, der hat normalerweise nur numerische.

Wenn du das Display im APC umstellst macht er die Konvertierung aber automatisch.

Eigentlich finde ich es besser, solche Einstellungen ganz normal am Flipper zu machen und nicht über DIP-Schalter. Problematisch wird es wenn der APC ohne SD-Karte verwendet wird, denn dann muss man die Einstellungen nach jedem Einschalten neu machen. Von daher gebe ich dir Recht, wir sollten Lisy ermöglichen, bestimmte APC Einstellungen zu verändern.

Mein Vorschlag wäre, das APC Settings-System weiter zu verwenden, den Lisy aber auf diese Daten zugreifen zu lassen. Das könnte z.B. folgendermaßen aussehen:

- Lisy kann die APC Settings lesen und auch ändern.

- Es muss vom APC ein Signal geben, wenn Einstellungen geändert wurden, dann kann Lisy die entsprechenden Daten auslesen und selbst speichern.

- Außerdem kann Lisy abfragen, ob der APC eine SD-Karte eingesetzt hat. Das könnte u.a. beim Start passieren und wenn der APC keine Karte hat, dann überträgt ihm Lisy den Datensatz, den es selbst gespeichert hat.

Was hältst du davon?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hört sich gut, an. was hältsts Du von zwei zusätzlichen Befehlen für API 0.10 ?

0x50 Read HW settings

0x51Write HW settings

mit

Byte 1: number of bytes to follow

Byte 2, ...

 DisplayType                                                    // which display is used?
ActiveGame   // Select the active game
NofBalls                                                          // Balls per game
FreeGame                                                             // Free game mode?
DimInserts                            // Reduce lighting time of playfield lamps by 50%
Volume                                      // Volume of the speaker
LEDsetting                             // Setting for the APC_LED_EXP board
DebugMode                             // debug mode enabled?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 20 Stunden schrieb Black Knight:

Wenn du das Display im APC umstellst macht er die Konvertierung aber automatisch.

Da habe ich im Moment ein Verständnisproblem. Ich schicke dem APC der Einfachheit halber ASCII Strings.

Auf was muss ich das Display setzen damit er das richtig konvertiert?

Mit der 'alten' Einstellung Displaytype==2, was vorher funktioniert hat, zeigt er mir jetzt nur ein paar Striche an,

ich vermute mal er interpretiert meine ASCII daten als Segmentifos ....

Link zu diesem Kommentar
Auf anderen Seiten teilen

3 hours ago, bontango said:

Hört sich gut, an. was hältsts Du von zwei zusätzlichen Befehlen für API 0.10 ?

Ja, genau. Es gibt im APC allerdings zwei Arten von Settings: einmal die System Settings, die du oben schon aufgeführt hast und zusätzlich noch die Game Settings. Letztere sind Spiel-spezifisch, d.h. jedes Spiel hat seine eigenen, die je nach ActiveGame Setting geladen werden. Jeder Satz Settings (auch die System Settings) ist dabei 64 Byte groß.

Da der USBcontrol Modus für den APC ein eigener Spielmodus ist, hat er auch eigene Settings, d.h. wir haben 64 Byte, die wir irgendwie nutzen können. Wir könnten also auch deinen Game Select als Game Setting vorsehen (mit alphanumerischen Displays ginge das sogar mit den Klarnamen der Flipper).

Aus diesem Grund würde ich entweder jeweils zwei Befehle spendieren, also

0x50 Read System Settings

0x51 Read Game Settings

u.s.w. oder ein zweites Byte spendieren

0x50 Read Settings,

Byte 1: 0 -> System Settings, 1-> Game Settings

Byte 2: Bytes to follow

20 minutes ago, bontango said:

ich vermute mal er interpretiert meine ASCII daten als Segmentifos ....

Ja, die Grundeinstellung ist jetzt so. Du kannst aber mit dem Befehl 0x25 das Protokoll für jedes Display ändern. Der Befehl fehlt in der Doku, also werde ich jetzt mal versuchen das aus meinem Code heraus zu lesen. Wenn ich das richtig sehe ist das:

Byte 1: 37 (0x25)

Byte 2: Nr des Displays (also bei dir 0 - 4)

Byte 3: Protokoll (5 für ASCII und 6 für ASCII mit Komma)

26 minutes ago, bontango said:

Mit der 'alten' Einstellung Displaytype==2,

Meinst du in den APC System Settings? Das war die Einstellung für das F-14 Display, das ich dir am Anfang geliehen hatte. Dein jetziges ist vom Typ 4 ALPHA+CREDIT, also Setting = 0. Das wirst du merken, wenn du versuchst was auf den Displays 3 und 4 anzuzeigen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah 'undocumented Feature' 😁 Alles klar, Merci, werde ich mal testen.

Gibts da noch etwas was nicht in der Doku steht?

Ich frag Jan mal ob er mir Schreibzugriff gibt, dann mach ich ne Version 0.10 ....

Link zu diesem Kommentar
Auf anderen Seiten teilen

13 minutes ago, bontango said:

Gibts da noch etwas was nicht in der Doku steht?

Mir fällt gerade nichts ein, aber das ist auch schon eine Weile her.

Habe gerade mal nachgesehen: am 14 Juli habe ich die entsprechende SW wohl released. Die entsprechenden Threads dazu sind auf Seite 19.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 8.1.2020 um 19:03 schrieb jabdoa:

Kannst du hier forken und per PR ändern:

das Format ( Tabellen, Auflistungen, ..) in der Doku muss ich 'händisch' mit Befehlen machen, oder gibt es da auch WYSIWYG?

Am 8.1.2020 um 18:35 schrieb Black Knight:

Die entsprechenden Threads dazu sind auf Seite 19.

Befehl 0x25 "set_display_protocol" habe ich jetzt drin, und die Displays funzen auch wieder 😁

Allerdings gibt der Lesebefehl weiterhin Typ 3 & 4 zurück obwohl das setzen auf Typ 5 ja geklappt hat!?

Log:

[413.071112][0.003971] Display no:0 has type:3 (SEG7, Fully addressable 7 Segment Display (with comma)) with 4 segments

[413.075121][0.004009] Display no:1 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.079109][0.003988] Display no:2 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.083110][0.004001] Display no:3 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.087118][0.004008] Display no:4 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.087334][0.000216]
settings after init

[413.091110][0.003776] Display no:0 has type:3 (SEG7, Fully addressable 7 Segment Display (with comma)) with 4 segments

[413.095114][0.004004] Display no:1 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.099112][0.003998] Display no:2 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.103110][0.003998] Display no:3 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

[413.107112][0.004002] Display no:4 has type:4 (SEG14,Fully addressable 14 Segment Display (with comma)) with 7 segments

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meinst du mit Lesebefehl den 0x07?

Dieser Befehl sagt dir, was für eine Displayhardware verbaut ist und bei deinem 4ALPHA+CREDIT ist das Credit (Display 0) ein 7 Segment Display und alle anderen haben 14 Segmente. Diese Infos bezieht der APC aus dem DisplayType in den System Settings.

Mit dem 0x25 legst du nur fest, wie du diese Displays ansprechen willst. Deine Displays werden HW mäßig z.B. direkt mit den Segmentdaten gesteuert, aber wenn du Typ 5 auswählst, dann kannst du dem APC die ASCII Codes schicken und er rechnet das in die Segmentdaten um und steuert die Displays damit.

Bearbeitet von Black Knight
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gut, wenn er die HW zurück gibt ist es so OK, ich hatte angenommen er gibt die Einstellungen zurück, also wie die Displays angesprochen werden müssen.

Habe gestern das erste 'Spiel' am Comet gemacht, lief schon ganz gut. Jetzt kommt der Sound.

Kann ich da einfach "Play Sound File (0x34)" nehmen und die entsprechenden Files auf der SD Karte im APC ablegen?

Wav Files sind OK? Geht auch MP3?

Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, bontango said:

Habe gestern das erste 'Spiel' am Comet gemacht, lief schon ganz gut. Jetzt kommt der Sound

Super.

1 hour ago, bontango said:

Wav Files sind OK? Geht auch MP3?

Es gehen nur .wav Files und die musst du noch mit dem tool AudioSave.pl konvertieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

×
×
  • Neu erstellen...

Wichtige Information

Datenschutzerklärung und Registrierungsbedingungen