Z21 Wifi Throttle

  • Schön, dass er seit Monaten so reibungslos läuft.


    Ich bin noch nicht weiter. Müsste wirklich mal damit weiter machen. Vielleicht sollte ich damit anfangen, alles auf dem Steckbrett zusammenbauen und zu testen. :/ Alle Komponenten im Gehäuse unterzubringen, ist wirklich die Herausforderung. Der von mir gewählte Akku 18650 ist mit Ladeschaltung einfach zu groß. Da muss ein anderer her.

  • Kurzes Update zu diesem Projekt.

    Nach dem in der aktuellen Ausgabe der DiMo ein Selbstbau Handregler für die Z21 vorgestellt wurde, möchte ich diesen Threat nochmal hervor holen.

    Der Verfasser dieses Artikels ist der Hauptgrund warum ich das Projekt überhaupt angegangen bin. An dieser Stelle nochmal ein großes Danke, auch für die technische Unterstützung!

    Nach 10 Monaten im Einsatz gibt es zwar einige Punkte die verbessert oder optimiert gehören aber eigentlich bin ich sehr zufreiden mit dem Regler im Beta Stadium. Das Fahren und schalten der Funktionen ist sehr angenehm und problemslos, auch die MU Funktion klappt meistens ohne Probleme.

    In seltenen Fällen hängt sich allerdings beim Fahren die Z21 auf, die Ursache ist mir allerdings noch ein Rätsel. Vielleicht sende ich zu viele Befehle in zu kurzer Zeit oder es liegt am Netzwerk.

    Ich habe nämlich seit einen gutem Jahr eine Fiber Fritzbox und die bereitet nur Probleme... Aber das ist einen andere Baustelle.


    Über die kalte Jahreszeit möchte ich das Projekt auf jedenfall nochmal aufleben lassen und endlich fertigstellen.

    Thena Akkulaufzeit: Der Akku reicht für ca. 20 Stunden Betrieb.

  • Hallo Mirko, die 28mm dicke des Gehäuses liegen wirklich gut in der Hand. Ich habe aber auch rießen Pranken^^
    Die eigentliche Herausforderung war es alles in dem Gehäuse unterzubringen. Ein paar Milimeter mehr währen nicht schlecht gewesen.

  • Hallo Klaus,


    tolle Fortschritte! Ich bin leider nicht weiter gekommen, ein gekauftes 30mm dickes Handgehäuse hat sich doch als zu unhandlich erwiesen. So dass ich mich nicht an den Zusammenbau gemacht habe. Wie ich sehe, kommst Du mir der gleichen Stärke zurecht. :huh:

  • Guten Morgen Forum und allen ein gutes Neues!


    Im alten Jahr konnte ich noch die Hardware meines Z21 Handreglers fertigstellen. Es wurde noch ziemlich eng im Gehäuse aber hat alles seinen Platz gefunden.



    Links: 0,96" Oled Display, Inkremental Encoder, Akku, Ein/ Ausschalter und das Anschlusskabel für die Folientastatur.
    Rechts: ESP32 DevKit C, Laderegler, StepUp Wandler und die Überreste eines USB Kabels.
    Ich habe leider keine weriteren Bilder vom Innenleben gemacht, man hätte aber sowieso nichts mehr erkannt in dem Kabelsalat...
    Einamal muss ich das Gehäuse leider noch öffnen weil ich vergessen habe dass ich die Batteriespannung auf einen Analogpin des ESP gelegt habe.
    So sieht der Fertige Handregler nun aus:




    Ich hätte gerne noch ein größeres Display verbaut aber dass hätte eine neue Library bedeutet und somit die Änderung des gesamten Codes... :wacko:


    Man kann aber alles bequem lesen was angezeigt wird und es liegt auch weirklich gut in der Hand.
    Die Software hat an manchen Stellen noch verbesserungspotential und ein paar Bugs kann aber schon verwendet werden.
    Das Projekt hat wirklich spaß gemacht und hat mich eine weile ganz schön auf Trab gehalten, dafür sind meine C Kentnisse jetzt so frisch wie nie :D


    Kosten des Projektes:
    Ich hätte die Kosten niedriger halten können wenn ich konsequent die Bauteile direkt aus China bezogen hätte, die Amazon App war aber
    eindeutig die einfachere Wahl.
    Gehäuse: 17€ bei Conrad
    ESP32: 10€ bei Amazon
    Ladreregler : 8€ bei Amazon (3stk.)
    Display: 16€ bei Amazon (3stk.)
    USB Kabel: 5,50€ bei Amazon
    Tastatur: 4€ bei Amazon
    Akku: 20€ bei Amazon (2stk.)
    Encoder: ca. 2€ bei ebay


    Wenn man die Preise pro Stück rechnet, kommt mann auf unter 60€ für dass komplette Material.
    Falls ich bei jemandem interesse geweckt habe, bitte PN an mich.
    Ich habe SW entwicklung nie gelernt, mein Code ist bestimmt nicht so sauber wie er sein könnte, und daher möchte ich ihn auch nicht öffentlich teilen.
    P.S.: Über die Akkulaufzeit kann ich erst berichten wenn mein Rollmaterial wieder zurück auf der Anlage ist.

  • Der erste große Meilenstein ist geschafft!
    Die vorhandenen Komponenten haben allesamt Platz im Gehäuse gefunden und mein Wifi Throttle hat erfolgreich eine Op Session bestanden.
    So sieht das ganze aktuell aus:


    Wie man auf den Fotos noch unschwer erkennen kann, haben die Bauteile nicht wirklich Platz in dem Gehäuse, deswegen werde ich die Hardware gegen einen normalen ESP32 ohne Display und Laderegelung tauschen.
    Ausserdem wird das 0,96" Display gegen ein 1,77" Display ersetzt. Ich hoffe der neue Treiber funktioniert nicht grundlegend anders..


    Der exzentrische Drehgeber war ursprünglich dem langen und schmalen ESP Board geschuldet, hat sich jedoch als ziemlich ergonomisch rausgestellt. Für Rechtshänder...
    Die Software selbst hat noch ein paar Macken und Kinderkrankheiten, alles Betriebs relevante funktioniert jedoch!
    habe gestern bis zu vier Loks im Consist laufen lassen, einfach ankuppeln hinzufügen, richtung auswählen und losfahren. Eine Soundlok hat ein wenig gezickt, also habe ich diese mittig im Consist einfach gelöscht und fertig.
    Funktionen werden nur bei der jeweils angewählten Lok angesprochen. Steuern kann man die MU aber über jede enthaltene Adresse.
    Zur Zeit muss ich den Consist bei jedem einschalten wieder neu anlegen, in Zukunft werden die MU Adressen jedoch im EEPROM abgelegt werden.

    Quote

    Aber ich frage mich, wozu eine Datenbank anlegen? Die kostet doch nur Speicherplatz

    Zum
    einen weil mich die umsetzung gereizt hat und zum anderen weil die
    Definition von Hobby "maximal möglicher Aufwand für minimalst kleinsten
    Nutzen" lautet. :D
    Angeblich
    hat der ESP32 bis zu 4MB SRAM, ich habe bis jetzt allerdings nur
    Librarys gefunden die 1024Bytes adressieren können. 1000 Byte sind
    allerdings mehr als ausreichend, da ich pro Lok
    im Moment nur 12 Bytes brauche. 9 Byte sind die angezeigte ID, 2 Byte die Adresse und 1 Byte die MU Adresse.

  • Interessantes Projekt! Wenn ich mal wieder Zeit habe, wollte ich mich mit dem "SMA30" befassen. Die Bauteile liegen hier schon eine Weile herum.


    Ich habe mich noch nicht eingehend mit dem Projekt beschäftigt. Aber ich frage mich, wozu eine Datenbank anlegen? Die kostet doch nur Speicherplatz. Es sollte doch reichen, wie beim Digitrax UT4, die aktuelle Lokadresse auszuwählen. Bzw. in Ergänzung zu diesem alle einzelnen Lokadressen einer Consist auswählen und dann alle gemeinsam ansteuern.

  • Bei meinem Glück.... geich mal auf Holz klopfen^^
    Wenn das Projekt keinen spaß machen würde, hätte ich es erst garnicht angefangen, also passt das schon. :)
    deinen WiFred kenn ich natürlich. Aber wie bei den käuflichen Objekten, entspricht er nicht 100%ig meinen Vorstellungen.


    Das simple WifiThrottle finde ich intressant. Veblüffende Ähnlichkeiten zu mienem :whistling:


    Die Umsetzung mit der Folientastatur finde ich jedoch besser als mit Kipp Schalter.

  • Sehr cool! Klingt, als ob demnächst ein Hersteller sowas auf den Markt bringt, bei den vielen Selbstbau-Projekten, die gerade auftauchen :D


    Ich bin selbst ja nicht mit Z21-Protokoll unterwegs, sondern mit wiThrottle, kann daher nur mäßig bei dem unterstützen, womit du gerade startest - aber nur als Tipps, was geht, und ein bisschen Eigenwerbung, werfe ich mal eine Liste der Projekte in den Raum, die ich so kenne :)


    Der "SMA30" https://model-railroad-hobbyist.com/node/35652 - ein relativ "einfach zusammensteckbares" wiThrottle-Gerät, gut dokumentiert
    Der "Lanbahn Fred" https://lanbahn.net/wordpress/hardware/lanbahnfredi/
    Und mein "wiFred" https://newHeiko.github.io/wiFred bzw. https://github.com/newHeiko/wiFred


    MfG, Heiko

  • Hallo Forum!
    Nachdem ich schon des öfteren über die Z21 App und die fehlenden Funktionen der WlanMaus gemäckert habe, habe ich nun selbst Hand angelegt.
    Bei meinen Recherchen zu dem Thema bin ich auf einen Beitrag im 1zu160 Forum gestoßen, der die selbe ausgangs Problematik hatte wie ich. https://www.1zu160.net/scripte…forum_show.php?id=1105384
    Weil man das Rad nicht jedes mal neu erfinden muss, habe ich eiskalt abgekupfert. :D
    Was soll das ding können?
    Der Grundgedanke war einen einfachen Handregler zu bauen mit dem Consistbildung möglich ist, am besten so simpel wie möglich. Führende Lok auswählen, mit Tastenkombination in Untermenü wechseln und Lok ohne MU Zuweisung hinzufügen, fertig.
    Ebenso soll der Handregler Kabellos und mit Akku sein. Mehr Anforderungen gibt es eigentlich nicht.
    Ich will mit dem ding keine Weichen stellen, keine Fahrstraßen schalten und auch keine CVs programmieren. Wie ein Fremo Fred nur eben Kabellos.
    Umsetzung:
    Zuwerst war die Idee, dann die Ratlosigkeit. Als Automatisierungstechniker habe ich zwar Programmierkentnisse, jedoch nicht ohne Unterstützung einer Software und nicht in dem Ausmaß. Zudem beschränken sich meine C++ Fähigkeiten auf das korrekte Buchstabieren.
    Zuerst wurden ein paar Tutorials absolviert, zuerst das Thema Endlos Encoder, dann das Display, Matrix Tastatur und Wifi. eigentlich alles kein Hexenwerk.
    Man muss sich nur ordentlich an der Nase nehmen und seine eigenen Programmier Standarts einhalten. Nomenklatur, Programmstruktur usw...
    Nachdem alle Elemente erfogreich angebunden und getestet waren ging es an das eigentliche Programm. Ich wusste dass ich eine Lok Datenbank brauchen werde also war dass der erste logische Schritt.


    Limitiert durch den Flash Speicher des ESP32 fasst die Datenbank maximal 40 Loks. (9-Stellige ID, 4-Stellige Adresse von 1 -9999, Adresse MU 0-255). Die 9 Stellige ID ergibt sich aus den Anforderungen, Bsp.: BNSF-6735.
    Die Datenbank inkl. Menüführung waren mit Abstand die Aufwendigsten Punkte, haben aber einen wichtigen Grundstein der Software gelegt.


    Was kann das Ding bis jetzt?
    Die komplette Datenbankverwaltung funktioniert bereits, es können Lokomotiven angelegt und auch wieder gelöscht werden. Dabei wird auch überprüft ob Einträge (ID, Adresse) bereits vorhanden sind.
    Es können im Fahrmenü Lokomotiven angewählt werden, gefahren werden und die Funktionen 0-9 geschalten werden. Durch den Endlos encoder ist es auch möglich stoßfrei zwischen mehreren fahrenden Loks zu wechseln.
    Was soll noch realisiert werden?
    als nächstes steht das Consisting an. dadurch dass ich in der Datenbank bereits eine MU Adresse vorgesehen habe, sollte dass kein allzu großes Problem mehr werden. am liebsten würde ich so viele Loks wie möglich in einem


    Consist zulassen, in der realität hängt diese Zahl jedoch von der UDP übertragung ab. diesen Punkt werde ich noch austesten müssen wieviel Loks ohne merkbare Zeitverzögerung gleichzeitig angesprochen werden können.
    Ebenso fehlen noch sämtliche Einstellungsmöglichkeiten und verschiede Fahr Modi.
    Zum them Fahrmodi habe ich noch folgendes vor:
    Notching soll global für alle Loks aktiviert werden können. Dabei wird durch wird pro Fahrstufe(Notch 0-8) eine DCC Fahrstufe 0-128 ausgegeben., wobei die Lok nach einer fixen Rampe beschleunigt.
    Ist die angewählte Notch kleiner der DCC Fahrstufe, "rollt" die Lok langsam aus. Durch drücken des Encoder Taster wird die Lok aktiv abgebremst.
    Ebenso mächte ich in ferner Zukunft die Beschleunigung und Verzögerung von der angehängten Last beeinflussen lassen. dazu soll die Zuglänge in Wagen angegeben werden können.
    Wenn alle Funktionen implementiert sind, soll das Projekt in ein ordentliches Gehäuse mit 2,4" Display umziehen aber dass ist noch Zukunftsmusik!


    Es bin ich ganz schön ins schwafeln gekommen :rolleyes:
    Das Projekt hat mich die letzten zwei Wochen ganz schön vereinnahmt, gut dass es nun im entstehen ist :)
    Anbei noch ein paar Bilder.



    Versuchsaufbau.


    Fahrmenü: oben aktuelle Fahrstufe, Mitte: Lok ID und Richtungspfeil, unten: Scale Speed 0-70MPH und Statusanzeige der Funktionen 0-9.



    Keine Ahnung warum das Bild gedreht ist ...
    Prinzipieller Aufbau sämtlicher Menüs. Mit den Encoderrad wird durch die einträge gescrollt, mit Klick auf den Encoder wird das jeweilige Untermenü ausgewählt.

    Lok erstellen: Mit dem Encoderrad wird durch die 9 stellige ID gescrollt, per Klick kann man die aktuelle Stelle bearbeiten und durch drehen A-Z oder 0-9 auswählen.
    Ist die ID fertig eingetragen scrollt man zu "weiter" und bestätigt mit Klick. danach kommt man zur Adresseingabe, diese erfolgt per Keypad.
    Danach erscheint entweder eine Info dass die Lok erfolgreich angelegt und im EEPROM gespeichert wurde, oder eine Fehlermeldung (Doppelter Eintrag, Adresse belegt, Datenbank voll)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!