Z21 Arduino Zentrale (WeMosD1mini): Unterschied zwischen den Versionen

Aus Digital Modellbahn
 
(55 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[Datei:Z21_logo.png|120px|right|link=Z21_mobile]]
 
{{Vorlage:Navigationsleiste Zentrale}}
 
{{Vorlage:Navigationsleiste Zentrale}}
 
{{Vorlage:Navigationsleiste_Zentrale_Versionen}}
 
{{Vorlage:Navigationsleiste_Zentrale_Versionen}}
[[Datei:Z21_logo.png|120px|right|link=Z21_mobile]]
 
  
 
== Beschreibung ==
 
== Beschreibung ==
[[Datei:z21PG_wemos_d1_mini.jpg|thumb|200px|ESP8266 WeMos D1 mini Anschlussbelegung]]
+
[[Datei:z21PG_wemos_d1_mini.jpg|thumb|300px|ESP8266 WeMos D1 mini Anschlussbelegung]]
Zur Herstellung einer kleinen DCC Zentrale ohne viele Bauelemente kann diese mittels des WeMos D1 mini (ESP8266) aufgebaut werden. Diese kleine z21PG hat natürlich nur einen abgespeckten Funktionsumfang, kann aber trotzdem so eingesetzt werden wie der "große Bruder". Mit einem L298 Modul als Booster hat sie zwei Gleisausgänge (Fahren und Programmieren), kann mit einem I2C OLED Display ausgestattet werden um die IP-Addressen welche zugewiesen wurden einfach in die Z21 App übernehmen zu können als auch einen LocoNet-Interface zum Verbinden von Rückmeldern, Schaltmodulen oder der DAISY II als Handregler.  
+
[[Datei:Z21PG_ESP8266_Aufbau.jpg|thumb|300px|ESP8266 mit L298n Modul, XpressNet und LocoNet (Länge 50 mm x Breite 56 mm x Höhe 40 mm.)]]
 +
Zur Herstellung einer kleinen DCC Zentrale ohne viele Bauelemente kann diese mittels des WeMos D1 mini (ESP8266) aufgebaut werden. Diese kleine z21PG hat natürlich nur einen abgespeckten Funktionsumfang, kann aber trotzdem so eingesetzt werden wie der "große Bruder". Zum Beispiel mit einem L298n Modul als Booster hat sie zwei Gleisausgänge (2A Fahren und 2A Programmieren), kann mit einem I2C OLED Display ausgestattet werden um die IP-Addressen, welche zugewiesen wurden, einfach in die Z21 App übernehmen zu können, sowie mit XpressNet und LocoNet-Interface zum Verbinden von Rückmeldern, Schaltmodulen oder Handreglern ([[Arduino_Loconet_Throttle |Fred]], Daisy II, MultiMaus).  
  
 
'''Funktionsumfang:'''
 
'''Funktionsumfang:'''
 
:* DCC Ausgang mit RailCom nach NMRA
 
:* DCC Ausgang mit RailCom nach NMRA
 
:* WLAN-Interface mit AP und Client (integriert)
 
:* WLAN-Interface mit AP und Client (integriert)
:* interner Booster (L6203 oder L298)
+
:* interner Booster (L6203 oder L298) '''oder''' <del>externer Booster (ROCO Booster 10761) <span style="color:red">(Support ab v4.96)</span></del> (Probleme beim externen Booster!)
:* OLED SSD1306 Display I2C 128 x 64 Pixel, 0,96"
+
:** optional INA219 zum auslesen der Gleisspannung und -strom
 +
:* OLED SSD1306 oder SH110X Display I2C 128x64 Pixel
 +
:* [[XpressNet]] <span style="color:red">(Support ab v4.96)</span>
 +
:* [[Loconet|LocoNet]] <span style="color:red">(Support ab v4.96)</span>
 
:* Update des Sketch mittels OTA
 
:* Update des Sketch mittels OTA
:* <s>[[XpressNet]]</s> <span style="color:red">''(In Planung)''</span>
 
:* <s>[[Loconet|LocoNet]]</s> <span style="color:red">''(In Planung)''</span>
 
:* <s>[[S88N]]</s> <span style="color:red">''(In Planung)''</span>
 
:* <s>global RailCom Detector</s> <span style="color:red">''(In Planung)''</span>
 
:* <s>Temperatursensor Dallas DS18B20</s> <span style="color:red">''(In Planung)''</span>
 
  
Alle anderen Interface können aufgrund der geringen Anzahl an I/O-Pins leider nicht realisiert werden. Daher ist auch keine Rückmeldung/Anzeige der Gleisspannung und Temperatur auch möglich. Ggf. kann mit einer Erweiterung noch ein Global RailCom Detektor integriert werden, dann fällt aber die Serial DEBUG Funktion weg!
+
Alle anderen Interface können aufgrund der geringen Anzahl an I/O-Pins leider nicht realisiert werden. Daher ist auch keine Rückmeldung/Anzeige der Gleisspannung und Temperatur auch möglich.  
 +
 
 +
Das Sketch der Z21PG Zentrale wurde extra ab der v4.95 für den Einsatz mit dem WeMos D1 mini optimiert. Das WeMos D1 mini besitzt einen Spannungsteiler am ADC, welcher es erlaubt Spannungen bis ca. 3.3 Volt zu erkennen. Für die korrekte Funktion der Kurzschlusserkennung und ACK Erkennung wurden deshalb andere Werte gesetzt!
 +
Ab der v4.96 ist es möglich mit einer geänderten Pinbelegung auch das XpressNet und LocoNet Interface zu nutzen.
 +
 
 +
Mit aktivem LocoNet-Interface kann beim WeMos D1 mini das Sktech nicht mehr mittels USB-Serial übertragen werden. Für den Upload kann hier dann nur noch das OTA-Update genutzt werden. Für die Debugging Ausgabe kann das USB-Serial aber trotzdem mit einer festen Datenrate von 16660 Baud genutzt werden.
  
Das Sketch der Z21PG Zentrale wurde extra für den WeMos D1 mini optimiert. Denn dieses Board besitzt einen Spannungsteiler am ADC, welcher es erlaubt Spannungen bis ca. 3.3 Volt dort zu erkennen. Für die korrekte Funktion der Kurzschlusserkennung und ACK Erkennung wurden deshalb andere Werte gesetzt!
+
'''Wichtig: ESP8266 CPU Frequenz muss auch 160 MHz eingestellt sein und der Sense-Widerstand muss 0,33 Ohm haben!'''
  
 
== Pinbelegung ESP8622 (WeMos D1 mini) ==
 
== Pinbelegung ESP8622 (WeMos D1 mini) ==
Hier eine Auflistung der Pinbelegung für den ESP8266 im Sketch "Arduino Z21 Zentrale"
+
[[Datei:Arduino_ESP8266_Zentrale.png|thumb|300px|ESP8266 Z21 Zentrale mit L298n Schaltplan ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/Z21PG_ESP8266.sch Eagle])]]
 +
Hier eine Auflistung der Pinbelegung für den ESP8266 im Sketch "Arduino Z21 Zentrale" '''ab v4.96!'''
 
{| class="wikitable sortable" border="1" cellspacing="0" cellpadding="7"
 
{| class="wikitable sortable" border="1" cellspacing="0" cellpadding="7"
 
|-
 
|-
 
! Arduino Pin !! Funktion !! aktiv Pegel (HIGH/LOW)
 
! Arduino Pin !! Funktion !! aktiv Pegel (HIGH/LOW)
 
|-
 
|-
| GPIO0 (D3) || Taster/Reset || LOW
+
| GPIO2 (D4) || Taster/Reset und DCC Status LED || LOW
 +
|-
 +
| GPIO0 (D3) || LocoNet TX || Serial
 +
|-
 +
| GPIO13 (D7) || DCC || HIGH/LOW
 
|-
 
|-
| GPIO2 (D4) || DCC status LED || LOW (für ESP integrierte LED: <code>#define POWER_LED_INVERT</code>)
+
| GPIO14 (D5) || NDCC (Booster intern) '''oder''' <br>
 +
Go/Stop (Booster extern)  
 +
|| output
 
|-
 
|-
| GPIO12 (D6) || DCC || HIGH/LOW
+
| GPIO15 (D8) || Relais Programmiergleis (PROG) '''oder''' <br>
 +
Short (Booster extern)
 +
|| LOW (für L298n Ausgabe: <code>#define PROG_OUT_INVERT</CODE>) <br>
 +
input
 
|-
 
|-
| GPIO14 (D5) || NDCC (Booster intern) || output
+
| GPIO12 (D6) || XpressNet RX/TX || Serial
 
|-
 
|-
| GPIO13 (D7) || Relais Programmiergleis (PROG) || LOW (für L298n Ausgabe: <code>#define PROG_OUT_INVERT</CODE>)
+
| GPIO16 (D0) || XpressNet Send/Receive || output
 
|-
 
|-
| GPIO15 (D8)  || LocoNet TX || output
+
| GPIO1 (TX)  || DEBUG || Serial
 
|-
 
|-
| GPIO16 (D0)  || LocoNet RX || input
+
| GPIO3 (RX)  || LocoNet RX || Serial
 
|-
 
|-
| GPIO4 (D2) || SDA (I2C) || output/input
+
| GPIO4 (D2) || OLED Display || SDA (I2C)
 
|-
 
|-
| GPIO5 (D1) || SCL (I2C) || output
+
| GPIO5 (D1) || OLED Display || SCL (I2C)
 
|}
 
|}
  
Die DCC Status LED (GPIO2) als auch alle Pull-Up Widerstände sind bereits im ESP8266 vorhanden und müssen daher nicht extern aufgebaut werden!
+
Die DCC Status LED (GPIO2) als auch alle Pull-Up Widerstände sind bereits im ESP8266 vorhanden und müssen daher nicht extern aufgebaut werden! Der Anschluss des Power Taster erfolgt am gleichen Pin wie die Status LED. Dies ist möglich da dieser Pin als Tri-State GPIO ab der v4.96 konfiguriert werden kann. Dies erfolgt automatisch wenn als Hardware der ESP8266 gewählt wurde.
  
 
== Baubericht ==
 
== Baubericht ==
Zeile 54: Zeile 68:
 
[[Datei:ESP8266_L298n_Booster.png|thumb|Ansteuerung L298n (optionale Anteile entfallen beim WeMos D1 mini)  ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/ESP_Booster_L298n.sch Eagle])]]
 
[[Datei:ESP8266_L298n_Booster.png|thumb|Ansteuerung L298n (optionale Anteile entfallen beim WeMos D1 mini)  ([http://sourceforge.net/projects/pgahtow/files/Z21_mobile/DCC_Zentrale/ESP_Booster_L298n.sch Eagle])]]
 
Beschreiben möchte ich einmal den Aufbau mittels eines L298 Modul als Booster, wo der WeMos D1 mini mittels Adapterplatine (Lochraster) und Pinheader aufgesetzt wird.
 
Beschreiben möchte ich einmal den Aufbau mittels eines L298 Modul als Booster, wo der WeMos D1 mini mittels Adapterplatine (Lochraster) und Pinheader aufgesetzt wird.
Da das L298 Modul keinen Sense für den L298 Treiber verbaut hat, muss dieser vorher noch nachgerüstet werden. Dazu ist ein Widerstand mit 0.1 oder 0.33 Ohm und 5W notwendig. Dieser wird zwischen Masse (GND) und dem Pin 1 + 15 des L298 installiert. Im folgenden ist kurz mit Bildern erklärt, wie das L298n Modul für den Betrieb modifiziert werden muss:
+
Da das L298 Modul keinen Sense für den L298 Treiber verbaut hat, muss dieser vorher noch nachgerüstet werden. Dazu ist ein Widerstand mit 0.33 Ohm und 5W notwendig. Dieser wird zwischen Masse (GND) und dem Pin 1 + 15 des L298 installiert. Im folgenden ist kurz mit Bildern erklärt, wie das L298n Modul für den Betrieb modifiziert werden muss:
 
<gallery>
 
<gallery>
L298n_02.jpg|L298n Modul entfernen von Pin 1 + 15
+
L298n_02.jpg|L298n, entfernen von Pin 1 + 15 aus Platine
L298n_03.jpg|Einlöten Sense Widerstand
+
L298n_03.jpg|Einlöten Sense Widerstand mit 0,33 Ohm
 
L298n_04.jpg|4x Drahtbrücken auf der Unterseite
 
L298n_04.jpg|4x Drahtbrücken auf der Unterseite
L298n_05.jpg|Bauteile für den neuen Pinheader
+
L298n_05.jpg|Bauteile für den neuen Pinheader am alten Pin 15
L298n_06.jpg|Zusammenbau Pinheader
+
L298n_06.jpg|Zusammenbau Pinheader, langer Stift für GND
L298n_07.jpg|Einbau neuer Pinheader für GND & Sense
+
L298n_07.jpg|Einbau neuer Pinheader für GND & Sense anstelle von Pin 15
L298n_09.jpg|Adapterplatine
+
L298n_09.jpg|Anschluss Sense Widerstand an L298n Pin 1 + 15
 
</gallery>
 
</gallery>
 
[http://pgahtow.sourceforge.net/wordpress/wp-content/uploads/2022/01/L298n_Modufikation.pdf Um die Bilder in voller Auflösung zu sehen können diese als PDF hier geöffnet werden.]
 
[http://pgahtow.sourceforge.net/wordpress/wp-content/uploads/2022/01/L298n_Modufikation.pdf Um die Bilder in voller Auflösung zu sehen können diese als PDF hier geöffnet werden.]
Zeile 68: Zeile 82:
 
Die Stromversorgung mittels +5 Volt erhält der WeMos D1 mini über den auf dem L298n Modul installierten Spannungsregeler. Wenn der WeMos über den 5V Pin versorgt wird darf der USB-Anschluss nicht genutzt werden, da dies sonst zu Schäden führt. Wenn der USB Port zum Debug oder Sketch Upload benötigt wird, muss entweder die Schutzdiode auf dem WeMos D1 mini entfernt werden oder mittels Jumper (diesen habe ich unter dem WeMos Board auf der Adapterplatine verbaut) die Versorgung vom L298n Spannungsregler getrennt werden.
 
Die Stromversorgung mittels +5 Volt erhält der WeMos D1 mini über den auf dem L298n Modul installierten Spannungsregeler. Wenn der WeMos über den 5V Pin versorgt wird darf der USB-Anschluss nicht genutzt werden, da dies sonst zu Schäden führt. Wenn der USB Port zum Debug oder Sketch Upload benötigt wird, muss entweder die Schutzdiode auf dem WeMos D1 mini entfernt werden oder mittels Jumper (diesen habe ich unter dem WeMos Board auf der Adapterplatine verbaut) die Versorgung vom L298n Spannungsregler getrennt werden.
  
Auf der Adapterplatine wurde eine weitere 4 Pin Buchse installiert für die Verbindung zum OLED Display. Der freie Platz links im Bild ist für den Aufbau des LocoNet-Interface vorgesehen.
+
Auf der Adapterplatine wurde eine weitere 4 Pin Buchse installiert für die Verbindung zum OLED Display. Der freie Platz links im Bild ist für den Aufbau des LocoNet und XpressNet Interface vorgesehen.

Aktuelle Version vom 27. September 2023, 14:37 Uhr

Z21 logo.png

Eigenbau | Zentrale Z21PG | Z21 mobile | XpressNet | LocoNet | Booster

Arduino UNO Version | Arduino MEGA Version | ESP8266 (WeMos D1 mini) Version | ESP32 Version | Sanguino Version

Beschreibung

ESP8266 WeMos D1 mini Anschlussbelegung
ESP8266 mit L298n Modul, XpressNet und LocoNet (Länge 50 mm x Breite 56 mm x Höhe 40 mm.)

Zur Herstellung einer kleinen DCC Zentrale ohne viele Bauelemente kann diese mittels des WeMos D1 mini (ESP8266) aufgebaut werden. Diese kleine z21PG hat natürlich nur einen abgespeckten Funktionsumfang, kann aber trotzdem so eingesetzt werden wie der "große Bruder". Zum Beispiel mit einem L298n Modul als Booster hat sie zwei Gleisausgänge (2A Fahren und 2A Programmieren), kann mit einem I2C OLED Display ausgestattet werden um die IP-Addressen, welche zugewiesen wurden, einfach in die Z21 App übernehmen zu können, sowie mit XpressNet und LocoNet-Interface zum Verbinden von Rückmeldern, Schaltmodulen oder Handreglern (Fred, Daisy II, MultiMaus).

Funktionsumfang:

  • DCC Ausgang mit RailCom nach NMRA
  • WLAN-Interface mit AP und Client (integriert)
  • interner Booster (L6203 oder L298) oder externer Booster (ROCO Booster 10761) (Support ab v4.96) (Probleme beim externen Booster!)
    • optional INA219 zum auslesen der Gleisspannung und -strom
  • OLED SSD1306 oder SH110X Display I2C 128x64 Pixel
  • XpressNet (Support ab v4.96)
  • LocoNet (Support ab v4.96)
  • Update des Sketch mittels OTA

Alle anderen Interface können aufgrund der geringen Anzahl an I/O-Pins leider nicht realisiert werden. Daher ist auch keine Rückmeldung/Anzeige der Gleisspannung und Temperatur auch möglich.

Das Sketch der Z21PG Zentrale wurde extra ab der v4.95 für den Einsatz mit dem WeMos D1 mini optimiert. Das WeMos D1 mini besitzt einen Spannungsteiler am ADC, welcher es erlaubt Spannungen bis ca. 3.3 Volt zu erkennen. Für die korrekte Funktion der Kurzschlusserkennung und ACK Erkennung wurden deshalb andere Werte gesetzt! Ab der v4.96 ist es möglich mit einer geänderten Pinbelegung auch das XpressNet und LocoNet Interface zu nutzen.

Mit aktivem LocoNet-Interface kann beim WeMos D1 mini das Sktech nicht mehr mittels USB-Serial übertragen werden. Für den Upload kann hier dann nur noch das OTA-Update genutzt werden. Für die Debugging Ausgabe kann das USB-Serial aber trotzdem mit einer festen Datenrate von 16660 Baud genutzt werden.

Wichtig: ESP8266 CPU Frequenz muss auch 160 MHz eingestellt sein und der Sense-Widerstand muss 0,33 Ohm haben!

Pinbelegung ESP8622 (WeMos D1 mini)

ESP8266 Z21 Zentrale mit L298n Schaltplan (Eagle)

Hier eine Auflistung der Pinbelegung für den ESP8266 im Sketch "Arduino Z21 Zentrale" ab v4.96!

Arduino Pin Funktion aktiv Pegel (HIGH/LOW)
GPIO2 (D4) Taster/Reset und DCC Status LED LOW
GPIO0 (D3) LocoNet TX Serial
GPIO13 (D7) DCC HIGH/LOW
GPIO14 (D5) NDCC (Booster intern) oder

Go/Stop (Booster extern)

output
GPIO15 (D8) Relais Programmiergleis (PROG) oder

Short (Booster extern)

LOW (für L298n Ausgabe: #define PROG_OUT_INVERT)

input

GPIO12 (D6) XpressNet RX/TX Serial
GPIO16 (D0) XpressNet Send/Receive output
GPIO1 (TX) DEBUG Serial
GPIO3 (RX) LocoNet RX Serial
GPIO4 (D2) OLED Display SDA (I2C)
GPIO5 (D1) OLED Display SCL (I2C)

Die DCC Status LED (GPIO2) als auch alle Pull-Up Widerstände sind bereits im ESP8266 vorhanden und müssen daher nicht extern aufgebaut werden! Der Anschluss des Power Taster erfolgt am gleichen Pin wie die Status LED. Dies ist möglich da dieser Pin als Tri-State GPIO ab der v4.96 konfiguriert werden kann. Dies erfolgt automatisch wenn als Hardware der ESP8266 gewählt wurde.

Baubericht

L298n Modul ohne Sense
Ansteuerung L298n (optionale Anteile entfallen beim WeMos D1 mini) (Eagle)

Beschreiben möchte ich einmal den Aufbau mittels eines L298 Modul als Booster, wo der WeMos D1 mini mittels Adapterplatine (Lochraster) und Pinheader aufgesetzt wird. Da das L298 Modul keinen Sense für den L298 Treiber verbaut hat, muss dieser vorher noch nachgerüstet werden. Dazu ist ein Widerstand mit 0.33 Ohm und 5W notwendig. Dieser wird zwischen Masse (GND) und dem Pin 1 + 15 des L298 installiert. Im folgenden ist kurz mit Bildern erklärt, wie das L298n Modul für den Betrieb modifiziert werden muss:

Um die Bilder in voller Auflösung zu sehen können diese als PDF hier geöffnet werden.

L298n Modul mit WeMos D1 mini

Die Stromversorgung mittels +5 Volt erhält der WeMos D1 mini über den auf dem L298n Modul installierten Spannungsregeler. Wenn der WeMos über den 5V Pin versorgt wird darf der USB-Anschluss nicht genutzt werden, da dies sonst zu Schäden führt. Wenn der USB Port zum Debug oder Sketch Upload benötigt wird, muss entweder die Schutzdiode auf dem WeMos D1 mini entfernt werden oder mittels Jumper (diesen habe ich unter dem WeMos Board auf der Adapterplatine verbaut) die Versorgung vom L298n Spannungsregler getrennt werden.

Auf der Adapterplatine wurde eine weitere 4 Pin Buchse installiert für die Verbindung zum OLED Display. Der freie Platz links im Bild ist für den Aufbau des LocoNet und XpressNet Interface vorgesehen.