Arduino als Signaldecoder als Extended Accessory Topic is solved

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 12.03.2019, 14:02

Servus zusammen

ich habe schon einiges geforscht hier, aber nicht genau das gefunden, was ich suche. Zumindest hätte ich es nicht verstanden.
Also mein Setup:
Rocrail mit Redbox (Tams). Arduino Nano über DCC ansprechbar. Weichen schalten (Servo) geht prima.

Nun möchte ich 4 oder 5 begriffiges Signal (SBB) mit dem Arduino ansteuern, pro LED einen Pin. Das DCC Signal empfange ich auch.

Ich möchte allerdings über das Protokoll vom Extended Accessory Decoder arbeiten, dann brauche ich für alle Signalbilder nur eine Adresse und liefere einfach Signalbild als Daten mit.

Protokoll sieht gemäss NMRA so aus:
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1

(Vorteil: ich muss dann in der Arduino Software nichts zusammensetzen, sondern kann direkt mit Bitmasken arbeiten, die da definiert sind.)

Fragen:
wie schaffe ich es, über Rocrail ein solches Kommando zu senden? Bis jetzt erhalte ich auf dem Arduino nur Basic Accessory Befehle. Geht das überhaupt mit der Redbox? Falls ja, was muss ich im Rocrail wie einstellen?
Ich habe alle möglichen Einstellungen auf dem Signal probiert (Muster, linear, binär, Standard), aber Rocrail scheint immer mehrere DCC Adressen zu verwenden.

Danke für Inputs resp. Rückfragen.

Grüsse
Guido

cds
Moderator
Posts: 5235
Joined: 03.02.2012, 19:24
Location: Tullnerbach, Austria

Re: Arduino als Signaldecoder als Extended Accessory

Post by cds » 12.03.2019, 14:09

Hallo Guido!

Ich habe mir erlaubt, dein Anliegen in das passendere Unterforum zu verschieben.

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 12.03.2019, 21:41

Hallo Claus

Vielen Dank. Wohl besser so.
Grüsse, Guido

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 15.03.2019, 17:35

Hallo zusammen

ich rätsle, warum ich bis jetzt keine Antwort auf meinen Thread erhalten habe (sonst geht das immer ratz fatz). Ferienzeit? Oder fehlen Infos von mir? Oder ist das Thema tatsächlich unbekannt? :o :o

will nicht stressen... aber eben auch nicht warten, weil ich was falsch gemacht habe :-)

Danke schonmal im Voraus

Und dann ein schönes Moba-Weekend!

rjversluis
Site Admin
Posts: 42364
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Arduino als Signaldecoder als Extended Accessory

Post by rjversluis » 15.03.2019, 18:00

Ich sehe nicht ein Verbindung mit Rocrail.
Was hat Rocrail mit Preamble zu tun?
Das P50x Protokoll was der RB verwendet ist offen, und mehr kann Rocrail dann auch nicht zum RB schicken.

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 15.03.2019, 21:40

Hallo Rob

danke Rob, aber die Preambel ist ja gar nicht das Hauptthema (zumindest aus meinem Verständnis), sondern wie ich ein Extended Accessory Kommando (falls möglich) von Rocrail nach Arduino DCC Sniffer bringen.
Wie ich verstehe aus deiner Antwort spielt da das Protokoll von Rocrail eine Rolle, p50x. Gemäss einer Spec die ich nun gefunden habe, gibt's da das XTrntX Kommando (binär) oder XT (ASCII).
Nur was muss ich in Rocrail wie einstellen, dass das Signal dieses Kommando ausgibt?
Und kann das dann der Arduino über die DCC Library als Extended Accessory Kommando auslesen? Ich verstehe da die Zusammenhänge nicht...

Aber falls das Thema tatsächlich off-topic ist, werde ich mein Glück auf dem Stummiforum versuchen. Wäre dankbar für Hinweise.

Grüsse
Guido

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 15.03.2019, 21:42

… aha, ich glaube ich habe gerade was geschnallt:
Rocrail sendet p50X Befehle an Redbox (bei mir), diese wandelts in DCC um. Richtig?
D.h. Rocrail kann TX Kommandos senden (wie? oder ist das automatisch der Fall?), Redbox muss es aber in Extended Accessory DCC Befehl umwandeln?

rjversluis
Site Admin
Posts: 42364
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Arduino als Signaldecoder als Extended Accessory

Post by rjversluis » 16.03.2019, 07:23

das XTrntX Kommando ist zZ nur im OpenDCC Bibliothek unterstützt für Signale mit Aspect Steuerung.
https://wiki.rocrail.net/doku.php?id=si ... ct_numbers

Der TamsMC Bibliothek wird es ab 15192 unterstützen.

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 19.03.2019, 10:21

Hallo Rob

danke für die Implementierung. Es funktioniert, ich erhalte auf dem Arduino die Extended Telegramme.
Beim Setup im Rocrail steig ich noch nicht ganz. Habe etwas rumprobiert, alles, was einen einfluss hat, sind die Adresse auf Reiter "Schnittstelle", und dann ein (beliebiger) Eintrag bei erster Spalte "Nummer" im Bereich Muster unter Einzelheiten. Weder eine Eingabe in "Wert" noch sonst was verändert meine Daten im Arduino. Egal, liegt vermutlich am Arduino Library. Mir reichts so, ich erhalte das Signalbild 1 bis x, das passt.


Allerdings steig ich nicht bei der Adresse. Vermutlich auch nicht ein Rocrail Thema, aber ich möchte sicher gehen und ev. hat jemand Erfahrung damit. Adresse habe ich auf Signal unter Reiter Schnittstelle, Feld Adresse im Bereich ROT gesetzt, Port = 0.
Ich zeige mal ein paar Adresspaare "Rocrail Signaladresse" --> "DCC Library Resultat":
Adresse
Rocrail sendet: Arduino liest:
40  454
56  456
1  449
10  962

Sieht jemand einen Zusammenhang? Rob, möglich das Rocrail irgendwas komisches sendet?
Ist mir bewusst, das ist ein wenig Kaffeesatzlesen. Zur Info: ich verwende die Library DCC_Decoder mit der Funktion ExtendedAccDecoderPacket_Handler, welche wohl die Methode *func_ExtdAccPacket aufruft.

Grüsse
Guido

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 19.03.2019, 11:52

… ich habe noch ein wenig gerechnet mit den Adressen. Falls sich jemand mit der binären Rechnerei auskennt:

Es scheint so, als ob die Library (oder Rocrail) wie folgt rechnet (anhand Beispiel):
Adresse aus Rocrail: 40
8 dazurechnen: 48
Binär umwandeln: 0011 0000
Bitshift nach rechts um 3: 0110
Dazu bitweise addieren: 11100 0000
ergibt 11100 0110
In dec: 454!

Geht mit allen gemachten Beispielen auf. Dabei verlier ich natürlich Infos, nämlich den Rest von der Division mit 8, also die letzten drei Bits. D.h. wenn ich nur mit Addressen im Rocrail arbeite, die durch 8 teilbar sind, dann funktionierts ;-) :shock:
Inputs?

rjversluis
Site Admin
Posts: 42364
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Arduino als Signaldecoder als Extended Accessory

Post by rjversluis » 19.03.2019, 13:47

Moin,

ich kenne mich mit DCC binär nicht aus, und setze nur Befehle um:

Code: Select all

*** XTrntX (0x91) - L�nge = 1+2 bytes
   Command:
	0: 0x91 XTrntX
	1: LSB des Extended-Accessory-Decoders (A0 .. A7)
	2: MSB des Extended-Accessory-Decoders (A8 .. A10) inkl. Aspect
	bit#   7     6     5     4     3     2     1     0
	    +-----+-----+-----+-----+-----+-----+-----+-----+
	    | As4 | As3 | As2 | As1 | As0 | A10 |  A9 |  A8 |
	    +-----+-----+-----+-----+-----+-----+-----+-----+

	  As4..As0 5 Bit Aspect (Bedeutung abh�ngig vom Decoder)
	  A10..A8    MSBs des Extended-Accessory-Decoders

   Antwort: 1 Byte
	0: Error-Code

   M�gliche Error-Codes:
	OK	- OK, Befehl ausgef�hrt
	XBADPRM	- Adresse des Decoders au�erhalb des Bereichs (1 .. 2040)
	XPWOFF	- MC ist im STOP-Modus

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 20.03.2019, 14:49

OK, das sieht aus wie die Definition vom P50xb Protokoll, ich nehme an, das nimmst du als Vorgabe.
Dann wäre die Redbox (MC), die dieses Signal in das DCC Format (siehe oben) umwandeln muss, also:
von [AAAAAAAA xxxxxAAA] für P50xb nach [10AAAAAA 0AAA0AA1 000XXXXX] für DCC
Ev. geht da ja was schief oder dann macht meine Library was falsch.
Hat hier jemand Erfahrung, wie ich das rausfinden kann? Oder wie die Redbox von Tams (oder MC) dies umwandelt?

@Rob:
Beim Setup im Rocrail steig ich noch nicht ganz. Habe etwas rumprobiert, alles, was einen einfluss hat, sind die Adresse auf Reiter "Schnittstelle", und dann ein (beliebiger) Eintrag bei erster Spalte "Nummer" im Bereich Muster unter Einzelheiten. Weder eine Eingabe in "Wert" noch sonst was verändert meine Daten im Arduino. Egal, liegt vermutlich am Arduino Library. Mir reichts so, ich erhalte das Signalbild 1 bis x, das passt.
Ist das Absicht? Kannst du was dazu sagen? Ich hätte erwartet, dass wenn ich im ersten Signalbild (Rot) z.B. die Nummer 12 eingebe, dieser Wert als Aspect mitgeliefert wird.

Danke

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 20.03.2019, 14:51

Nachtrag:

die RB müsste das eigentlich können, gemäss Interface definition hier:
https://tams-online.de/WebRoot/Store11/ ... erface.txt

Oder versteh ich das auch falsch? :?:

rjversluis
Site Admin
Posts: 42364
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Arduino als Signaldecoder als Extended Accessory

Post by rjversluis » 20.03.2019, 14:51

Wie man Signalen einrichtet kann man im Wiki nachlesen.

Thagu
Posts: 176
Joined: 31.12.2016, 00:28

Re: Arduino als Signaldecoder als Extended Accessory

Post by Thagu » 21.03.2019, 22:12

Juten Ab'nd!

Rob, ich kenn das Wiki, habe die Seiten auch mindestens 10 durchgeackert.
Ich probier die Frage anders zu formulieren:

Bei Einstellung Begriffs-Nummern, sind die Aspects vorgegeben beginnend bei 0?
D.h. z.B. 3 Begriffe sind immer aspect 0,1 und 2?

Oder kann man den Aspekt (in den Feldern "Nummern") überschreiben, um z.B. bei 5 zu beginnen?
Dann hätte
rot = aspect 5
grün = aspect 6
gelb = aspect 7

Post Reply

Return to “Arduino (DE)”