RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#226 von MicroBahner , 12.09.2017 18:25

Hallo Klaus,

Zitat

Ich bitte sehr um Entschuldigung für deinen Aufwand. Tut mir echt leid.

Da mach dir mal keinen Kopf, Fehler passieren halt. Das war für mich ja jetzt auch kein Aufwand, meine neue Test-HW musste ich ja eh testen.

Zu den anderen beiden Punkten bin ich auch schon weiter gekommen:
Drehencoder:
Mit einem anderen Encoder hatte ich jetzt auch kein ganz zuverlässiges Erkennen, wenn auch nicht so wie bei Dir. Schritt für Schritt ging recht gut. Bei schnellem Drehen konnte es allerdings passieren, dass da ein paar Schritte in der falschen Richtung dabei waren. Ich hatte ja schon erwähnt, dass ich inzwischen eine etwas modifizierte Erkennung geschrieben habe, und damit ist es auch zuverlässiger. Die werde ich noch einbauen.

verzögerte Schalterreaktion:
Das war etwas kniffliger. Ursache war letzendlich eine Änderung, die wir für die Programmierung der Endlagen über CV-Programmierung eingebaut hatten. Dass damit auch die Sollage des Servos geändert werden kann ( wenn man den jeweils anderen CV verstellt ) ist uns nun auf die Füsse gefallen. Das Problem ist, dass die Call-Back Routine 'NotifyCVChange' nicht nur aufgerufen wird, wenn sich der CV über einen DCC-Befehl ändert, sondern auch, wenn man ihn vom Sketch aus ändert. Das ist etwas unglücklich, denn wenn ich den CV selbst ändere weis ich das ja, und brauche da eigentlich kein 'Notify'. Als Workaround kannst Du folgendes machen:

1
2
3
4
5
6
7
 
    aktuell1 = digitalRead(eingang1);
if (alt1 != aktuell1) {
dccSoll[0] = alt1;
ChkAdjEncode( 0 );
dccSoll[0] = alt1; // soll wird im ChkAdjEncode verändert, wenn die neue Position ins CV geschrieben wird.
};
 
 

Da durch das Schreiben der Endlage auch die Solllage im 'notify' wieder auf den alten Wert zurückgesetzt wird, muss Du sie nach dem ChkAdjEncode nochmal setzen. Bei Verstellung des Servos über DCC-Befehle und Endlageneinstellung mit Encoder fällt das nicht auf, da die Zentrale die Befehle mehrfach sendet, und das dann durch den wiederholten Befehl automatisch gemacht wird.
Da habe ich mir schon eine Lösung überlegt, muss ich aber noch einbauen.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#227 von MicroBahner , 12.09.2017 22:03

Hallo Klaus,
die Änderungen habe ich jetzt mal in deine ino-Datei eingebracht. Kannst es ja mal testen.[attachment=0]DCC_Zubehoerdecoder.zip[/attachment]
Zu den Drehencodern: Ich habe da 2, die sich in der Qualität schon extrem unterscheiden. Mit dem ALPS geht es 1A. Der andere ( ein Billig-Angebot vom Pollin ) zickt immer ein wenig herum. Es geht zwar, aber ganz ohne 'Fehlschaltungen' funktioniert es nicht. Wenn ich mir das mit Dem Oszi anschaue, wundert mich das aber auch nicht. Da sieht man vor lauter Prellen kaum ein vernünftiges Signal .
Du musst gegebenenfalls auch den define-Wert im .h-File anpassen:

1
2
 
//#define ENCODER_DOUBLE  // Eigenschaften des Drehencoders (Impulse per Raststellung)
 
 

Die Encoder unterscheiden sich darin, wieviel Schaltspiele von Raste zu Raste ausgeführt werden.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#228 von MicroBahner , 14.09.2017 18:33

Zitat

Aber dabei ist mir folgendes merkwürdiges Verhalten aufgefallen:
Ich habe ja noch einen Servo an der ersten Adresse, der auch durchaus funktioniert (ich habe um die Ausgänge PB6 und PB7 einen Bogen gemacht ).
Allerdings flackert dann ein Großteil der Signal-LEDs während der Bewegung des Servos gleich mit!? Das machen genau die LEDs, die zu der Zeit eigentlich aus wären. Ich habe das auch mit mehreren Ausgängen für den Servo probiert - immer das gleiche Verhalten.

Hallo Jürgen,
ist ja schon peinlich, dich solange auf eine Antwort warten zu lassen ops: . Aber es kam irgendwie immer wieder was anderes, und meine neu Testumgebung für den Zubehördecoder ist auch jetzt erst fertig geworden.
Da habe ich dein Verhalten jetzt mal versucht nachzustellen. Bei mir ist während der Servo-Bewegung an den Leds aber nichts zu sehen. Weder an den dunklen, noch an den leuchtenden. Kann das bei dir evtl. mit deiner Stromversorgung zusammenhängen?


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#229 von Bodo , 15.09.2017 22:03

Hallo Franz-Peter,

bin momentan leicht verzweifelt ... habe einen schönen Prototyp-Dekoder zusammengebaut und versuche jetzt, ihn mit einem Ausfahrsignal zu betreiben. Definiert habe ich wie folgt:

1
2
3
4
5
6
7
8
9
10
 
const byte iniTyp[]     =   { FSIGNAL2,  FSIGNAL0,   FVORSIG,  FSIGNAL2 };
const byte out1Pins[] = { 5, 6, 11, A0 }; // output-pins der Funktionen
const byte out2Pins[] = { 7, 9, 12, A1 };
const byte out3Pins[] = { 8, NC, NC, NC };

const byte iniFmode[] = { 0, 0b000100, 0, 0b000100 };
const byte iniPar1[] = { 0b001001, 0b110001, 0b000001, 0b000001 };
const byte iniPar2[] = { 0b100010, 0b100110, 0b000010, 0b100110 };
const byte iniPar3[] = { 3, 0, 25, 0 };
const byte iniPar4[] = { 0b000101, 0, 0, 0b000001 }; // nur für Lichtsignale!
 



Das Ausfahrsignal tut auf Adresse 17/19 auch was es soll und das Vorsignal reagiert auf Adresse 19 - aber es regiert nicht auf Adresse 25 und es wird auch nicht dunkel, wenn das Hauptsignal auf Hp0/Hp00 steht. Auch das zweite Signal an A0/A1 reagiert gar nicht. Irgendwie scheine ich da ein Verständnisproblem mit den Spalten oder den Bitmustern zu haben (?).

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#230 von MicroBahner , 16.09.2017 09:34

Hallo Bodo,
deine Konfiguration habe ich mal auf meine TestHW gespielt. Das einzige was ich geändert habe, ist die Pinzuordnungen an meine HW anzupassen. Die ini-Parameter habe ich alle unverändert gelassen. Da funktioniert das alles so wie es lt. deiner Beschreibung soll und wie Du es auch in den ini-Parametern konfiguriert hast.
Hast Du beim Start den resModeP Pin auf Gnd gezogen? Sonst werden evtl. aktualisierte Werte in den ini-Parametern ja nicht übernommen.
Oder den Betriebsmode auf 2 (iniMode) stellen, damit grundsätzlich mit den Werten aus der .h-Datei gearbeitet wird. Bei Lichtsignalen kann man das ja eigentlich immer machen, da da normalerweise keine CV-Werte justiert werden müssen ( wie z.B. bei Servos )
Ansonsten, welche Version hast Du? Vielleicht mal mit der neuesten Master-Version von Github versuchen. Da es bei mir funktioiniert, kann ich da jetzt nur wenig machen


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#231 von Bodo , 16.09.2017 18:28

Hallo Franz-Peter,

vielen Dank für den Hinweis zum iniMode - ich denke, das war´s. Ich hatte die Jumper auf meiner Platine gar nicht vorgesehen, weil ich dachte, dass ich sie für einen reinen Lichtsignal-Dekoder nicht brauche. Jetzt habe ich in der Setup-Routine das analogRead( betrModeP ) auskommentiert und progMode = INIMODE hart gesetzt - und schon läuft alles, wie es soll.

Beim Testen bin ich jetzt allerdings noch darauf gestoßen, dass die beim Vorsignal eingetragene Hauptsignaladresse außerhalb des Adressbereichs des aktuellen Dekoders liegen muss (?). Ich denke mal, dass der Dekoder nur eine Funktion pro Adresse ausführt ...

1
2
3
4
5
6
7
8
9
10
 
const byte iniTyp[]     =   { FSIGNAL2,  FSIGNAL0,   FVORSIG,  FSIGNAL2,  FSTATIC };
const byte out1Pins[] = { 5, 6, 11, A0, A2 }; // output-pins der Funktionen
const byte out2Pins[] = { 7, 9, 12, A1, A3 };
const byte out3Pins[] = { 8, NC, NC, NC, NC };

const byte iniFmode[] = { 0, 0b000100, 0, 0b000100, 0b000111 };
const byte iniPar1[] = { 0b001001, 0b110001, 0b000001, 0b000001, 100 };
const byte iniPar2[] = { 0b100010, 0b100110, 0b000010, 0b100110, 100 };
const byte iniPar3[] = { 3, 0, 22, 0, 200 };
const byte iniPar4[] = { 0b000101, 0, 0, 0b000001, 0 }; // nur für Lichtsignale!
 


Trage ich statt der 22 beim Vorsignal die 20 ein, geht das folgende Lichthautsignal auf Adresse 20 nicht (der Dekoder beginnt noch mit Default-Adresse 17), trage ich die 21 ein, gewinnt das Blinklicht auf Adresse 21 und das Vorsignal reagiert nicht ...

Zugegebenermaßen ein in der Praxis wohl eher nicht auftretendes Problem, da Haupt- und Vorsignal so weit auseinander stehen sollten, dass ein eigener Dekoder sinnvoll ist .

Dann kann ich den Prototyp ja auch ohne Bedenken zeigen . Da ich zunächst auf die SPI-Schnittstelle nicht verzichten wollte, ging es nicht ohne Brücken. Bei der Fritzing-Version habe ich jetzt den Optokoppler wieder unter den Nano gelegt. Die Verwendung der preiswerten "eBay"-Spanungsregler wollte ich mal testen, da der 78xx doch mindestens einen Kühlkörper braucht ... irgendwie muss die Digitalspannung ja auf 12V runter.



Die Platine lässt sich jetzt einseitig bauen - links unten geht´s rein, dann über einen Gleichrichter und DC-DC-Wandler und der Rest dürfte dann selbsterklärend sein . Wie schon erwähnt, habe ich einiges weggelassen, aber die I2C-Schnittstelle erhalten (ich will die Platine ja evtl. auch für andere Anwendungen nutzen.

Viele Grüße und noch mal vielen Dank für die schnelle Hilfe, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#232 von MicroBahner , 16.09.2017 22:06

Hallo Bodo,
ein interessantes Projekt. Der Decoder ist ja jetzt wirklich sehr einfach aufgebaut und dürfte sich so gut zum Nachbauen eignen.

Zitat

Jetzt habe ich in der Setup-Routine das analogRead( betrModeP ) auskommentiert und progMode = INIMODE hart gesetzt

Wär' natürlich schon, wenn das auch ohne Softwareänderung funktionieren würde. Eigentlich sollte es auch ausreichen, einfach den resModeP Pin fest auf Gnd zu legen.

Zitat

Beim Testen bin ich jetzt allerdings noch darauf gestoßen, dass die beim Vorsignal eingetragene Hauptsignaladresse außerhalb des Adressbereichs des aktuellen Dekoders liegen muss (?). Ich denke mal, dass der Dekoder nur eine Funktion pro Adresse ausführt ...

Ja, das Problem hatte Jürgen (juergiboy) schonmal entdeckt: viewtopic.php?f=5&t=144916&sid=7446e623c6eaba64738b4be87da9805d&start=175#p1697716
In der aktuellen Masterversion auf Github ist das auch schon beseitigt. Ich sehe schon, ich werd' mal dringend daran gehen müssen auch eine neue Release zu erstellen. Seit der letzten Release hat sich doch schon einiges angesammelt.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#233 von juergiboy , 18.09.2017 11:20

Hallo Franz-Peter,

Zitat
Hallo Jürgen,
ist ja schon peinlich, dich solange auf eine Antwort warten zu lassen ops: . Aber es kam irgendwie immer wieder was anderes, und meine neu Testumgebung für den Zubehördecoder ist auch jetzt erst fertig geworden.
Da habe ich dein Verhalten jetzt mal versucht nachzustellen. Bei mir ist während der Servo-Bewegung an den Leds aber nichts zu sehen. Weder an den dunklen, noch an den leuchtenden. Kann das bei dir evtl. mit deiner Stromversorgung zusammenhängen?



da mach dir jetzt mal keinen Kopf - ich habe in der Zwischenzeit einige kleine Decöderchen auf Basis von Nanos für meine Signalsteuerung gebaut - läuft auch prima!
Nach deinem Kommentar habe ich dann mal wieder eine Umgebung mit einem Maple aufgebaut, neu versorgt - und was soll ich sagen - läuft ohne Probleme... ops:
Also irgendwas habe ich dann wohl damals anders (falsch) gemacht, ein grundlegendes Problem mit STM32 kann ich aktuell nicht mehr feststellen, sorry!
Die grundsätzliche Problematik mit PB6 und PB7 existiert aber noch, oder? Ist da eigentlich jemand dran?

Auch auf die Gefahr hin, das das hier schon irgendwann mal thematisiert worden ist und ich es nur nicht gefunden habe: Wenn ich einen Mega2560 als Decoder nähme, hätte ich ja viel mehr Ausgänge zur Verfügung. Vermutlich müsste es dann Anpassungen bzgl. einiger Grenzen (LED, Adressen, ...) geben, ich frage mich nur, ob es dann in der Folge Probleme mit Performance o. Ä. geben könnte?! Wenn dann die Ausgänge nur noch verzögert schalten würden, wäre das wohl nicht sinnvoll - wie ist deine Einschätzung hierzu?


Gruß
Jürgen


juergiboy  
juergiboy
Regionalbahn (RB)
Beiträge: 44
Registriert am: 08.02.2016


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#234 von MicroBahner , 18.09.2017 19:24

Hallo Jürgen,

Zitat

ein grundlegendes Problem mit STM32 kann ich aktuell nicht mehr feststellen, sorry!

Wieso sorry - ist doch super

Zitat

Die grundsätzliche Problematik mit PB6 und PB7 existiert aber noch, oder? Ist da eigentlich jemand dran?

Mein pull-request dazu auf GitHub wurde von Roger Clark am 3.Juli in den Master-Branch integriert. Das Problem sollte seitdem also erledigt sein.

Zitat

Wenn ich einen Mega2560 als Decoder nähme, hätte ich ja viel mehr Ausgänge zur Verfügung. Vermutlich müsste es dann Anpassungen bzgl. einiger Grenzen (LED, Adressen, ...) geben, ich frage mich nur, ob es dann in der Folge Probleme mit Performance o. Ä. geben könnte?!

Die maximale Zahl von 16 Servos ist durch die MobaTools festgelegt - da geht nicht mehr. Bei den Softled's gibt es keine prinzipielle Grenze mehr. Hier könnte es allerdings Performance-Probleme geben, wenn zuviele Led's gleichzeitig geschaltet werden. Solange die Leds statisch ein bzw aus sind belasten sie die CPU nicht. Sehr viele Softleds anlegen ist eher ein RAM-Problem, aber da hat der Mega ja auch mehr. Der Wert MAX_LEDS im .h File legt fest wieviele Softleds angelegt werden. Das müssen natürlich auf jeden Fall mindestens so viele sein, wie dann in den Konfig-Parametern verwendet werden. Sind es mehr wird 'nur' RAM verschwendet.
Man müsste es mal probieren. Alles gleichzeitig schalten geht ja schon aufgrund der DCC-Ansteuerung nicht.
Ich denke, grundsätzlich ist bei der Zahl der anlegbaren Adressen durchaus noch 'Luft nach oben'.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#235 von Bodo , 19.09.2017 15:31

Hallo Franz-Peter,

Zitat

Zitat

Jetzt habe ich in der Setup-Routine das analogRead( betrModeP ) auskommentiert und progMode = INIMODE hart gesetzt

Wär' natürlich schon, wenn das auch ohne Softwareänderung funktionieren würde. Eigentlich sollte es auch ausreichen, einfach den resModeP Pin fest auf Gnd zu legen.



OK ... resModeP auf A6 oder A7 und fest auf GND wäre jetzt bei der Schaltung auch kein Problem. Vielleicht könntest Du in einer der nächsten Versionen dafür auch "NC" zulassen, wenn man die Ports gar nicht nutzen will (?).

Zitat

Zitat

Beim Testen bin ich jetzt allerdings noch darauf gestoßen, dass die beim Vorsignal eingetragene Hauptsignaladresse außerhalb des Adressbereichs des aktuellen Dekoders liegen muss (?). Ich denke mal, dass der Dekoder nur eine Funktion pro Adresse ausführt ...

Ja, das Problem hatte Jürgen (juergiboy) schonmal entdeckt: viewtopic.php?f=5&t=144916&sid=7446e623c6eaba64738b4be87da9805d&start=175#p1697716
In der aktuellen Masterversion auf Github ist das auch schon beseitigt. Ich sehe schon, ich werd' mal dringend daran gehen müssen auch eine neue Release zu erstellen. Seit der letzten Release hat sich doch schon einiges angesammelt.



Oh .. da habe ich dann wohl gepennt. Ich hatte mir irgendwann die 4.0.3 runtergeladen und gedacht, das wäre die aktuellste Version ...

Ich werde nun erstmal versuchen, den ULN2803 auf der Rückseite meiner Nano-Sockelplatine anzulöten - das wird dann zwar z.T. "fliegende Verdrahtung", aber vielleicht passt das ganze dann in einen (noch zu konstruierenden) Stecksockel für ein Spur-0-Lichtsignal, welcher dann für den Betrieb auf einer mobilen Anlage einfach an 12V und Gleisspannung angestöpselt werden könnte ... mal sehen .

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#236 von MicroBahner , 19.09.2017 15:52

Hallo Bodo,

Zitat

resModeP auf A6 oder A7 und fest auf GND wäre jetzt bei der Schaltung auch kein Problem. Vielleicht könntest Du in einer der nächsten Versionen dafür auch "NC" zulassen, wenn man die Ports gar nicht nutzen will (?).

NC allein hilft da nicht wirklich, weil ich dann ja nicht weis, welchen Mode ich nehmen soll. Derzeit bin ich dabei, einen zusätzlichen define FIXMODE einzubauen. Wenn der vorhanden ist, muss er den gewünschten Mode enthalten, und dann wird resModeP ignoriert. Ist der define nicht vorhanden (auskommentiert) bleibt alles wie bisher.

Zitat

Ich hatte mir irgendwann die 4.0.3 runtergeladen und gedacht, das wäre die aktuellste Version ...

Naja, war's ja irgendwann auch mal . Der Stand im master-Branch entwickelt sich dann schon weiter. Aber bevor ich eine neue Release draus mache, will ich es schon etwas sorgfältiger testen ( was natürlich auch keine Garantie ist ... ).


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#237 von johnbobjamesson , 19.09.2017 15:58

Männer, mal so ganz zwischendurch und ehrlich: Ihr wisst schon, dass Ihr der Hammer seid, mit dem, was Ihr hier entwickelt? Also danke für das.

Claudio


johnbobjamesson  
johnbobjamesson
RegionalExpress (RE)
Beiträge: 85
Registriert am: 24.04.2015


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#238 von MicroBahner , 21.09.2017 17:05

Zitat

Also danke für das.

Hallo Claudio, bitteschön und ich hoffe Du kannst was damit anfangen

An alle:
Es gibt eine neue Release des Zubehördecoders, die (hoffentlich) alle Fehlerbeseitigungen und Ergänzungen die sich aufgrund eurer Teilnahme ergeben haben enthält. Für eine kleine Erweiterung bei den Servos ist auch ein Update der MobaTools notwendig (wird aber vermutlich nicht jeder benötigen).


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#239 von Bodo , 03.10.2017 13:10

Hallo zusammen,

der Steckverbinder für die Experimente mit einem vorhandenen H0-Ausfahrsignal sprengt zwar etwas den Rahmen, aber prinzipiell geht es:



Vermutlich ließe sich der ULN2803 sogar anstelle der "Universalpins" auf der Platine neben dem Optokoppler unterbringen. Ob sich das für meine 2-3 benötigten Ausfahrsignale aber lohnt, ist die andere Frage. In Spur Null bietet Viessmann ja bisher nur eine eingeschränkte Auswahl an Signalen - insbesondere keine Vorsignale. Für Block- und Einfahrsignal käme man ja mit 5V und auch ohne Transistoren aus, wenn man die Widerstände durch kleinere ersetzt. Und irgendwo hatte ich was von Invertieren der Ausgänge gelesen (wegen des gemeinsamen Pluspols - wäre für das Einfahrsignal nötig, beim Blocksignal könnte man ja ggf. einfach rot und grün vertauschen).

Die FIXMODE-Definition in der aktuellen Dekoderversion ist für mich super - vielen Dank dafür.

Viele Grüße, Bodo


Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen


 
Bodo
InterCityExpress (ICE)
Beiträge: 2.471
Registriert am: 28.04.2005
Homepage: Link
Gleise C-Gleis, Lenz 0
Spurweite H0, 0
Steuerung MS2 & CS2
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#240 von MicroBahner , 03.10.2017 22:13

Hallo Bodo,
das ist ja echt mal eine interessante Konstruktion

Zitat

Und irgendwo hatte ich was von Invertieren der Ausgänge gelesen (wegen des gemeinsamen Pluspols

Das ist Bit7 im iniFmode des Lichtsignals. Dann bedeutet 'EIN' einen Low-Level am Ausgang. Das wirkt sich auch auf den weichen Übergang aus, deshalb ist einfaches Vertauschen von rot/grün nicht so optimal.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#241 von MicroBahner , 13.10.2017 21:19

Hallo an alle Freunde des Decoders
nachdem der Decoder seit seinen Anfängen ja ganz schön gewachsen ist, und der Source doch etwas 'ins Kraut geschossen' ist, habe ich den Decoder nun vollkommen überarbeitet.
Alle Funktionen ( FCOIL, FSERVO, FSTATIC, FSIGNAL ) sind nun als Klassen realisiert. Entsprechend der Konfiguration werden diese Klassen im Setup instanziiert. D.h. dass nun auch wirklich nur die Programmteile aktiv sind, die auch tatsächlich gebraucht werden. Es werden damit auch automatisch nur noch soviele Servo's und Softleds eingerichtet, wie tatsächlich gebraucht werden.

Wer den Decoder nur nutzt 'as is' und keine Anpassungen am eigentlichen Sketch gemacht hat, für den ändert sich nichts. Die Konfigurationsdatei ist immer noch die gleiche wie vorher.
Wer allerdings Änderungen am Sketch gemacht hat, wird sich neu orientieren müssen. Andererseits sollten Anpassungen jetzt auch einfacher sein, da die eigentliche Funktionen in den Klassen gekapselt sind. Etwas Kenntnisse in C++ sind aber nun wohl notwendig.
Eine Realisierung als Funktionsdecoder sollte damit auch leichter möglich sein. Ebenso eine Erweiterung um neue Funktionen.

Ich habe das Ganze erstmal als Prerelease auf Github gestellt. Es wäre schön, wenn der eine oder andere, der den Decoder schon nutzt, das mal mit seiner Konfig-Datei testet. Wie gesagt, an der Konfig-Datei und der Funktionalität hat sich nichts verändert.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#242 von DJMetro , 23.10.2017 20:20

Hallo Franz-Peter,
ich habe da ein kleines Problem mit deinem Decoder und Servo. Wenn ich z.B. rot ansteuer, fährt der Servo zum ersten Anschlag und dann ca. zur Mitte zurück, und wenn ich grün ansteuer, fährt zum anderen Anschlag und dann wieder zur Mitte zurück. Irgendwie seltsam.

Andi


DJMetro  
DJMetro
InterRegio (IR)
Beiträge: 137
Registriert am: 17.05.2008
Ort: DJMetro
Spurweite H0
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#243 von MicroBahner , 23.10.2017 21:49

Hallo Andi,
das fahren in die Mittelstellung 'riecht' irgendwie nach dem Justiertaster, mit dem man ja das Servo in die Mittelstellung fahren kann ( der resModeP Pin ).
Ist das bei dir vielleicht immer aktiv?


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#244 von DJMetro , 29.10.2017 15:25

Zitat

Hallo Andi,
das fahren in die Mittelstellung 'riecht' irgendwie nach dem Justiertaster, mit dem man ja das Servo in die Mittelstellung fahren kann ( der resModeP Pin ).
Ist das bei dir vielleicht immer aktiv?


Danke das war der Fehler. Der Pin war nicht angeschlossen.

Andi


DJMetro  
DJMetro
InterRegio (IR)
Beiträge: 137
Registriert am: 17.05.2008
Ort: DJMetro
Spurweite H0
Stromart Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#245 von MicroBahner , 06.11.2017 09:48

Hallo,
die (klassenbasierte) Version 5.0 ist nun die neue Standard-Version.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#246 von vauge , 07.11.2017 20:30

Hallo, Franz-Peter

Für den Anschluss des Encoders sieht das Programm die Pins A4 und A5 vor (so verstehe ich das wenigstens). Im Schaltbild der Doku wird der Encoder an den Pins A2 und A3 angeschlossen. Wahrscheinlich bin ich mal wieder irgendwo total verpeilt, aber was ist da richtig?

Gruß

Jürgen

Übrigens, die Version 5.0.1 läuft bei mir ohne Probleme und ich finde das Teil nur super


vauge  
vauge
Beiträge: 2
Registriert am: 12.04.2017
Gleise Tillig
Spurweite H0, H0e
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#247 von MicroBahner , 07.11.2017 21:42

Hallo Jürgen,
es freut mich sehr, dass die neue Version bei Dir problemlos läuft .

Aber Fehlermeldungen sind natürlich auch wichtig :

Zitat

Für den Anschluss des Encoders sieht das Programm die Pins A4 und A5 vor (so verstehe ich das wenigstens). Im Schaltbild der Doku wird der Encoder an den Pins A2 und A3 angeschlossen. Wahrscheinlich bin ich mal wieder irgendwo total verpeilt, aber was ist da richtig?

Nein Du bist überhaupt nicht verpeilt. Das (schon etwas ältere) Schaltbild und die aktuell ausgelieferte Konfig-Datei passen in der Tat nicht zusammen ops: - das hast Du richtig erkannt.
Das Schaltbild war noch für einen Arduino UNO ausgelegt - da gibt es A6 und A7 nicht. Ich selbst mache die Tests immer mit einem Arduino Nano - da gibt es A6 und A7 und deshalb habe ich da die Eingänge für Encoder und die Betriebsmodi um 2 Stellen verschoben, so dass mehr Pins für die Funktionen zur Verfügung stehen. A6 und A7 sind beim Nano reine Analogeingänge, und können deshalb für die Funktionen nicht genutzt werden.
Und so ist es jetzt auch in der endgültigen Version stehen geblieben. Ich denke, ich werde das Schaltbild beim nächsten Stand entsprechend anpassen und bei den Beispielen eine dazu passende Konfig-datei hinterlegen, die dann auch von den Funktionen passt.
Für einen Selbstbau-Decoder ist der Nano aufgrund der kleinen Bauform meiner Meinung nach eh die bessere Wahl.

Aber natürlich kann man das im Konfigfile auch wieder so anpassen, dass es auf einem UNO läuft.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#248 von DickerSauerländer ( gelöscht ) , 29.11.2017 12:17

Hallo auch von mir,

erstmal ein ganz grooooosses DANKE an Franz Peter (microbahner) für die tolle Software!!!

Ich habe mich auch mal hingesetzt und eine Platine für den Decoder V5 geroutet, welche man HIER Datei von filehorst.de laden herunterladen kann.
Bis auf die PDF Dateien für die Bestückung sind alle anderen Dateien GERBER-Files RS274x für den upload zu einem Leiterkartenhersteller.

Das Ganze ist eine 2 Lagen Platine, welche ich über ALLPCB bestellt habe, PCBPOOL geht auch oder ähnliche.

Eine Stückliste habe ich mir gespart, weil es aud dem Schaltplan und dem Bestückungsplan eigentlich hervorgeht. Dort sind auhc gleich Werte eingetragen. Nicht wundern über den "0.001R" Widerstand - das ist einfach eine Brücke oder 0 Ohm. Zur sicherheit, dass man hier nicht beide bestückt haben diese ein gemeinsames Mittelpad.









Man verzeihe mir den Draht auf der Unterseite und die ausgelötete Klemmleiste
Im aktuellen Design sind diese Fehler aber beseitigt.

Der Sourcecode für den Arduino muss wegen der verwendeten Pins natürlich etwas angepasst werden, was aber mit der neuen .h Datei kein Problem mehr ist.

Als Encoder-Anschluss habe ich eine 5 Polige Leiste gewählt, die 1:1 auf gängige Arduino-Encoder (z.B. von AliExpress) geht:
https://de.aliexpress.com/item/Rotary-En...-6cfb54207f9f-1

Drücken auf den Endoder (Switch) fährt die Servos in die Mittelstellung.
Vorsicht: Wird der Switch bei entsprechender Konfig beim einschlaten gedrückt, werden die CVs gelöscht.

Ich habe die Platine bereits erfolgreich mit 6 Servo und Lichtsignalen getestet - also beide Bestückungsvarianten, wobei auch Mischbestückung geht.
Möglich sind bis zu 6 Servos mit Herzstückumpolung auf dem unteren Klemmblock oder bis zu 12 Digital/LED-Ausgänge mit gemeinsamen Pluspol. Geschaltet wird immer nach Masse. Für bis zu 6 Magnetartikel wird eine Spule auf den mittleren Klemmblock und eine auf den unteren Klemmblock (rechts) gelegt. Gemeinsamer Plus ist der obere Klemmblock.

Zudem habe ich einen LOCONET Anschluss mit 2 RJ12 Buchsen draufgebaut, welche das RAILSYNC Signal (DCC auf Loconet) benutzen.
Falls jemand nur 12V oder gar kein DCC auf dem Loconet hat, kann sich den Anschluss sparen.

Das DCC Signal am Eingang wird über die Relais an die unteren 6 Klemmen gegeben, mittels der Jumper kann die Polarisation umgepolt werden.
Es sollte also pro Decoder immer nur EIN Booster und EIN DCC Signal geben. Unterschiedliche Einspeisung pro Weiche ist nicht vorgesehen.

Und nun noch: HAFTUNGSAUSSCHLUSS!
Keine Gewähr auf die Schaltung und etwaige Folgeschäden!
Nur für private Zwecke, keine gewerbliche Nutzung der Dateien/Schaltung usw. erlaubt!

Bei Fragen bitte gerne PN

EDIT: Als Vorwiderstände für die LEDs können größere Werte genommen werden. Ich habe anstatt 1k dann 2,7k eingelötet.

Viele Grüße,
Markus


DickerSauerländer

RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#249 von fbstr , 30.11.2017 18:59

Hallo Markus,

das sieht interessant aus. Habe mal 10 Platinen, Arduinos und Encoder in China bestellt. Mal schauen ob ich in 2 Monaten schon was berichten kann...


Gruss
Frank
---------------------------------------------------------------------------------------------------------------------
MobaLedLib Wiki
Projekt "Bahnpark Augsburg"
Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen


 
fbstr
Metropolitan (MET)
Beiträge: 2.520
Registriert am: 28.08.2016
Ort: Stuttgart
Gleise Peco Code 75, Trix C
Spurweite H0, H0e
Steuerung YD7001, MobaLedLib, MirZ21, Lenz LZV100
Stromart DC, Digital


RE: Arduinobasierter DIY Zubehördecoder V7.0.0 freigegeben

#250 von MicroBahner , 06.12.2017 22:30

Hallo Markus,
das sieht nach einer absolut professionellen Entwicklung aus .
Das könnte ja tatsächlich noch ein echter 'Stummi-Decoder' werden .

Ob allerdings das SMD-Löten so jedermanns Sache ist ? . Ich bin jedenfalls mal sehr gespannt wie das weitergeht.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


   

Lenz Booster LV102 mit Booster Mangementsystem BMS-D von Boll
rtDrive Lenz Digikeijs DR5000

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz