
Das neue Layout ist mittlerweile fertig entworfen, so dass die Anzahl der eingesetzten Gleise und Weichen feststeht. Somit kann das passende Gleisbild-Stellpult angegangen werden.
Firma Uhlenbrock stellt netterweise das Programm TC-Edit zur freien Verfügung, mit dem sich so ein Pult entwerfen lässt.
Nach einer etwas holprigen Einarbeitung - Copy&Paste und Cut&Paste arbeiten etwas ... nennen wir es ungewohnt - lässt sich das Programm letztlich zur Zusammenarbeit überreden, das Resultat ist ein stilisiertes Abbild der Gleise meiner Anlage.
(Click auf das Bild für volle Auflösung)
Um ein bisschen mit den Maßen spielen zu können, um eine Idee der resultierenden Größe des Stellpults zu erhalten, habe ich die Darstellung in Excel nachgebildet. Hierbei galt es ein Hindernis zu umschiffen, das Microsoft absichtlich oder zufällig in Excel eingebaut hat. Excel bietet die Option “Bild in Zelle einfügen”. Das klappt prima, das eingefügte Bild ist anschließend mit der Zellengröße verheiratet, Änderungen an den Abmessungen ergeben sofort ein angepasstes Bild des Layout. Leider verschwinden die Bilder nach dem Schließen der Excel-Datei, beim erneuten Aufruf der Datei enthalten alle Zellen nur noch die aussagelose Meldung “#UNKNOWN!”. Nach langen Recherchen im Internet kristallisiert sich heraus, dass die Funktion “Bild in Zelle einfügen” entweder fehlerhaft umgesetzt wurde, oder dass die Funktion in der aktuellen Office Version 2024 vergessen wurde aus dem Menü zu entfernen.
Um dennoch eine bildhafte Darstellung des Pults in Excel zu erhalten, habe ich ein wenig VBA bemüht und kopiere die Bilder nach jedem Öffnen der Datei per Makro wieder an die passenden Stellen. Die dafür notwendigen Koordinaten sowie die Bilder habe ich aus der Projektdatei von TC-Edit geholt bzw. per Screencapture erstellt. Mühsam aber zielführend.
Die Excel-Version sieht dem Original in TC-Edit täuschend ähnlich, lässt sich aber skalieren - Mission erfüllt.

Als nächstes muss eine Möglichkeit geschaffen werden, die Weichen zu bedienen. MERG hat dafür bei ihrer Lösung DCC Accessory Encoder Kippschalter vorgesehen, was sich aber in der doch etwas gedrängten Darstellung auf dem Pult kaum schick umsetzen lässt.
Dazu der Hinweis, dass sich die Abmessungen des Pults wohl bei ca. 45 x 23 cm einpendeln werden. Eine einzelne Zelle des Gleisbilds hat dann ein Größe von 20,25 x 13,5 mm.
Diese Abmessungen habe ich gewählt, weil ich plane, jedes Feld des Pults mit einer RGB-LED hinterleuchtbar zu machen. Die Aufgabenstellung RGB-LEDs in Matrix Anordnung schreit geradezu nach dem Einsatz sogenannter LED RGB-Strips, wie ich sie bereits bei den Wortuhren eingesetzt habe. Die LEDs auf dem Strip sind hintereinander geschaltet und werden über einen Ausgang des Microcontrollers seriell angesteuert. Jede LED kann dabei eine unterschiedliche Farbe haben, es lassen sich so problemlos Routen anzeigen oder auch Signale mit Rot/Grün visualisieren. Und hier kommt dann die Teilung der im Handel erhältlichen LED-Strips ins Spiel.
Nach langem Suchen und Rechnereien habe ich bei unseren chinesischen Freunden LED-Strips mit 74er Teilung (74 LEDs/Meter) gefunden. Die LEDs sitzen im Abstand von 13,5 mm auf der Leiterfolie, das Band wird senkrecht orientiert eingebaut werden. Mit den anderen, üblichen Teilungen 30, 60, 144 LEDs/m oder auch mit unüblicheren Teilungen von 90, 100 oder 120 LEDs/m würde das Pult unmöglich groß werden, selbst wenn man z.B. nur jede zweite LED nutzen würde, wie ich das bei der WordClock 19 cm umgesetzt habe.
Nach diesem Ausflug in die einschränkenden Randbedingungen zurück zur Funktion. Kippschalter kommen also nicht in Frage, bleiben Taster zur Bedienung der Weichen und
Signale. Die normalerweise bei Modellbahnern zum Einsatz kommenden runden
Einzeltaster
gefallen mir nicht, ich möchte
Taster
von Cherry aus einer Computertastatur einsetzen. Die haben gute
Kontakteigenschaften, gegebenenfalls auch noch nach vielen Millionen Schaltspielen, und es ist bereits eine Diode eingebaut, die für die Verschaltung der elektrischen Tastenmatrix notwendig ist, um sogenanntes Ghosting zu vermeiden. Ghosting tritt auf,
wenn durch nicht unterbundene Rückwärtsströme bei der Abfrage der Tastaturmatrix mehrere Tasten gleichzeitig als gedrückt erkannt werden. Durch die Dioden werden diese Rückwärtsströme verhindert.
Die Tasten haben genau den Abstand der beiden Stößel, die für die Bedienung der Doppelkreuzungsweichen benötigt werden, und die jeweils daneben liegenden normalen Weichen passen auch noch ins Raster. So in etwa muss man sich die Anordnung der Taster vorstellen:
Die roten Kreise deuten die Knöpfe der Taster an. Über die LEDs wird dann die Lage der Weichenzunge visualisiert.
Die Taster selbst werden in einem eigenen “Stockwerk” platziert, so dass sie nicht mit den LEDs in Konflikt geraten. Die Betätigung erfolgt mittels einer Verlängerung aus Kunststoff.
Natürlich passen die LEDs aus dem 74er LED-Strip nicht in doppelter oder bei der Doppelkreuzungsweiche gar in vierfacher Ausfertigung unter die Weichenschaubilder. Diese LEDs vom Typ WS2812(B) kommen im Format 5 x 5 mm daher. Es gibt die LEDs aber auch einzeln und im Format 2,4 x 2,7 mm, beispielsweise der Typ SK6805. Solche Winzlinge habe ich beim Mini-Wecker bereits eingesetzt. Mit ihnen lässt sich die gewünschte Darstellung realisieren. Genialerweise werden sowohl die WS2812 als auch die SK6805 mit identischem Bitmuster, die Farbreihenfolge und die Bit-Wertigkeit betreffend, angesteuert, so dass da keine programmtechnischen Klimmzüge notwendig sind. Die einzelnen Mini-LEDs für die Anzeige der Weichenlage werden auf einer kleinen Platine aufgelötet, die jeweils an passender Stelle in den LED-Strip eingefügt wird.
Da aufgrund der unterschiedlichen Datenfluss-Richtungen die Leiterführung zu den drei oder vier LEDs auf den Platinen doch recht kompliziert verlaufen muss, habe ich die Platinen zweiseitig ausgeführt, mit EasyEDA erzeugt und von JLCPCB fertigen lassen.
Einschub
Der Service bei JLCPCB ist an sich super, auch dass fünf Stück als minimale
Abnahmemenge festgelegt ist, haut mich nicht vom Hocker, aber dass für die Ritzung der Platinen zum Trennen einmal Mindestabmessungen eingehalten werden müssen
und zum anderen diese Ritzung aufgrund der kleinen Abmessungen der einzelnen Platinen einen erheblichen Aufschlag kostet, der erst ganz zum Schluss den
ursprünglich sehr moderaten Gesamtpreis auf den 20-fachen Betrag hochschnellen lässt, hat mich dann doch etwas verärgert. Dann kam noch hinzu, dass durch die
Ehrenrunde wegen nicht eingehaltenem Minimalformat alle Nachlässe gestrichen wurden. Erst als ich mit meinem neu erworbenen Wissen um die Einschränkungen
einen neuen Auftrag eingestellt habe, wurden die ursprünglichen Nachlässe wieder gewährt, den ersten Auftrag konnte ich problemlos stornieren. Vergleichsweise teuer
war es dann doch, aber die Qualität der Platinen dämpft den Schmerz wieder auf eine erträgliches Maß ;)
Ein Wort zur “Datenfluss-Richtung”:
Da die LEDs auf dem Strip alle hintereinander geschaltet sind, liegt es nahe, den LED
-Strip mäanderförmig anzuordnen: Start links oben nach unten, eins nach rechts, wieder nach oben und so weiter. In Folge wandern die Daten in der ersten Spalte von oben nach
unten, in der nächsten Spalte dann von unten nach oben, im Weiteren dann immer abwechselnd.

Meine in diesen Fluss eingefügten Platinen werden also mal von oben, mal von unten kommend mit Daten versorgt. Das Layout der eingeschleiften Platinen ergibt sich durch diese unterschiedlichen Datenfluss-Richtungen bei identisch angeordneten LEDs komplett verschieden.
Insgesamt benötige ich sechs verschiedene Anordnungen der LEDs für das geplante Layout der Bahn, also sechs Designs in unterschiedlicher Anzahl, insgesamt 27 Stück die dann auf einem 35er Nutzen zusammengestellt werden, um die Minimalgröße der resultierenden Platine zu erreichen. Hier die gerenderte 3D-Ansicht aus EasyEDA:

Zuhause angekommen und teilweise zerteilt...
und letztlich bestückt und zu einer Testanordnung zusammengelötet:

Da ich den von EasyEDA vorgehaltenen Footprint für die Mini-LEDs verwendet habe, hatte ich einigen Spaß beim Verlöten der LEDs, aber nach drei Versuchen hat die kalte Lötstelle aufgegeben und ich konnte den FastLED DemoReel-Test für Arduino auf die Kombination WS2812 LED-Strip mit SK6805 Platinen loslassen. Läuft :)

Da ich davor zurück geschreckt bin, die Kappen über den LEDs von Hand zu designen, habe ich mich letztlich wieder auf OpenSCAD gestürzt und die sechs unterschiedlichen Kappentypen für Weichen parametrierbar per Programm erzeugen lassen.

Bei der Umsetzung habe ich dann erfreut festgestellt, dass die 6 unterschiedlichen Platinentypen nur 4 verschiedene Kappen benötigen. Typ 1 und 2 sowie Typ 3 und 4 werden identisch abgedeckt, die Datenrichtung muss bei den Kappen naturgemäß nicht berücksichtigt werden. Im folgenden Bild in der oberen Reihe die Weichenkappen für Typ 101+103 sowie Typ 102+104, darunter Typ 202 und Typ 201.

Hier beispielhaft die Rückseite der Typ 201 Kappe.
Man sieht die beiden zylindrischen Führungen für den Stift, mit dem der Taster betätigt wird. Die schmalen Wände trennen die vier LED-Positionen optisch voneinander, damit kein Übersprechen untereinander auftritt. Die Ausschnitte in den Längswänden nehmen die Lötkleckse auf, mit denen die Platinen an die LED-Strips gelötet werden.
Die im Customizer einstellbaren Parameter für die Kappen sind hier zu sehen:

Die Parameter sind leider nicht beliebig änderbar, weil der innere Aufbau der Kappen recht kompliziert zu berechnen ist. Weichen die Parameter zu stark von den angegebenen Defaults ab, passen die Formeln nicht mehr und der Platz für die LEDs könnte zu klein werden. Definitiv werden die Positionen der Löcher und der Wände falsch berechnet, genaugenommen dürfen die mechanischen Parameter also überhaupt nicht geändert werden.
Bleibt die Auswahl des zu berechnenden Kappentyps, was die oben angegebene Parametervielfalt etwas einschränkt:

Tipp
Sollen Parameter für das Programm zwar im oberen Teil des Code angegeben, aber trotzdem nicht als änderbarer Parameter im Customizer angezeigt werden, hilft es, den Wert einfach mit “/1” zu erweitern. Das ändert nichts am Wert, 3/1 ergibt 3, aber
Formeln werden vom Customizer nicht als änderbare Parameter angezeigt. Im Code sieht das so aus:
/* parameters for customizer ------------------------------------------------ */
/* [cap parameters] */
// inner dimensions of the cap as derived from the printed circuit board
board_length = 18.25/1; // x axis
// inner dimensions of the cap as derived from the printed circuit board
board_width = 11.5/1; // y axis
// add tolerance for 3D print in X and Y direction [default 0.1 mm]
print_tolerance = 0.1/1;
// height of cap (outer height is inner_height + wall_width)
inner_height = 3/1; // z axis
Man erkennt die im oberen Bild des Customizer angegebenen vier ersten Parameter. Durch den Trick mit “teilen durch 1” erscheinen sie im zweiten Bild nicht.
Neben den Weichenkappen brauche ich natürlich auch Kappen für normale Gleise und Prellböcke. Hierbei ist die Vielfalt an Ausschnitten im Deckel nochmal deutlich größer, wobei auch hier gilt, dass ein Kappentyp mehrere, gemeinhin zwei, Kappentypen ersetzt. Kappe 1 und 3 sind rotationssymmetrisch, genauso Kappe 2 und 4, Kappe 5 und 7, sowie Kappe 6 und 8.

Außerdem möchte ich an Gleisen ggf. ein Signal aufstellen, dessen Zustand und Darstellung auf dem Stellpult per Taster geändert werden kann. Auch bei den Gleisbild -Kappen muss also wahlweise ein Loch für den Tastenstößel vorhanden sein.
Auch für diese Kappentypen habe ich OpenSCAD bemüht und ein eigenes Programm erstellt, ebenfalls minimalistisch nur mit den Kappentypen als Parameter im Customizer.
Hier beispielhaft die Kappen für Gleistyp 1, 8, Prellbock 15 sowie Gleistyp 9 mit Loch.

Die normalen Gleiskappen benötigen keine Abschirmungen gegen Fremdlicht auf der Unterseite, da deren LED mehr oder weniger formatfüllend in der Mitte sitzt.
Zuletzt gibt es noch eine Kappe ohne Schlitze oder Löcher für die Stellen im Layout ohne Schienen. Wobei zu überlegen ist, ob man die nun vorhandene LED-Matrix nicht auch als Display komplett nutzen könnte - ein großes rotes Stoppschild, wenn ein Nothalt ausgelöst wurde kommt mir da spontan in den Sinn :)
Dazu müssten aber die Kappen ohne Schlitze mittig ein Loch erhalten, so dass auch die LEDs unter diesen Kappen sichtbar sind. Ich habe diesen Typ 991 genannt und wenig überraschend hat dieser Typ lediglich ein rundes Loch in der Mitte:

Wie ich die Darstellung von Inhalten auf der Matrix dann letztlich im Programm umsetze, steht auf einem ganz anderen Blatt. Wären alle Positionen der Kappen ausschließlich mit einer einzelnen LED ausgestattet, wäre das kein Problem, dafür gibt es erprobten Code im Netz und auf meiner Homepage - Stichwort Wort-Uhren. Da aber an den Positionen der Weichen, je nach Typ, 3 oder 4 LEDs unter einer Kappe sitzen, löst das durchaus Kopfzerbrechen aus.