Zurück zum Inhaltsverzeichnis


1. BSB-LAN: Die Hardware

In den folgenden Kapiteln wird die Hardware des BSB-LAN Setups vorgestellt.
Dabei handelt es sich zum einen um den jeweiligen plattformspezifischen BSB-LAN Adapter und zum anderen um den jeweiligen Mikrocontroller, auf den die BSB-LAN Software geflasht wird.

BSB-LAN kann sowohl mit einem Arduino Due samt spezifischem Adapter als auch auf einem ESP32 samt spezifischem Adapter betrieben werden. Der jeweilige plattformspezifische Adapter erlaubt dabei ein einfaches und passgenaues Aufstecken auf den entspr. Mikrocontroller. In einigen Fällen kann ein plattformspezifischer Adapter auch mit den anderen Mikrocontrollern verwendet werden, in dem Fall ist jedoch kein passgenaues Aufstecken möglich. Weitere Hinweise diesbzgl. sind in den jeweioigen Hinweiskästen im entspr. Kapitel zu finden.
Da es bei den kompatiblen Mikrocontrollern (Arduino Due / ESP32 NodeMCU / Olimex ESP32-EVB) jedoch plattform- und designspezifische Unterschiede gibt, die es bei bestimmten Einsatzzwecken zu beachten gilt (bspw. wenn weitere Hardware angeschlossen werden soll), werden die relevantesten Unterschiede im Folgen kurz als tabellarische Übersicht dargestellt.
Eine etwaige mögliche Nachrüstung einzelner Komponenten (wie bspw. eines microSD-Kartenlesers bei einem NodeMCU) wird hierbei nicht berücksichtigt!

Funktion Arduino Due + LAN-Shield ESP32 NodeMCU “JoyIt” Olimex ESP32-EVB Olimex ESP32-PoE
LAN onboard Ja Nein Ja Ja
WLAN onboard Nein Ja Ja Ja
OTA-Update Nein Ja Ja Ja
microSD-Kartenleser onboard Ja Nein Ja Ja
Freie Pins sehr viele viele 2 (GPIO 13&16) viele
Relais onboard Nein Nein Ja (2) Nein
Bluetooth onboard Nein Ja Ja Ja
Power-over-Ethernet Nein Nein Nein Ja
Due-spezifischer Adapter verwendbar Ja Ja Ja Ja
ESP-spezifischer Adapter verwendbar Nein Ja Ja Ja
Anmerkungen
Insbesondere die nur zwei freien Pins bei einem Olimex ESP32-EVB (GPIO 13/I2C-SDA & GPIO 16/I2C-SCL), die problemlos für den Anschluss weiterer Hardware (wie bspw. Sensoren, Relais, Taster) genutzt werden können, sind u.U. ein Ausschlusskriterium, das es zu beachten gilt!
Soll die interne Loggingfunktion von BSB-LAN auf microSD-Karte genutzt werden, so ist wiederum vom NodeMCU abzuraten, da die u.U. häufigen Schreibzyklen beim Speichern der Daten auf dem EEPROM-Chip des ESP32 zu einem frühzeitigen Ausfall (“wear out”) führen können.
Vor der Entscheidung für einen der genannten Mikrocontroller ist es daher ratsam, den späteren Einsatzzweck und etwaige Erweiterungen auf Hardwarebasis gründlich zu überdenken. Hierfür empfiehlt es sich, das Handbuch im Vorfeld aufmerksam zu lesen.
Hinweis bzgl. Verwendung eines Raspberry Pi
Wie in Kap. 1.4 beschrieben, ist der Anschluss des Adapters an einen Raspberry Pi zwar grundsätzlich möglich, der Einsatz der BSB-LAN-Software hingegen nicht. Davon abgesehen können wir den Einsatz eines RPi als Mikrocontroller für diesen Einsatzzweck nicht empfehlen. Als Hauptargumente sprechen unserer Ansicht nach insbesondere die Faktoren Preis, Stromverbrauch sowie das zu wartende Betriebssystem dagegen.

1.1 Adapter

Der BSB-LAN-Adapter ist im Prinzip ein Pegelwandler, der die 12V Bussignale in 3,3V Signale für den benötigten Mikrocontroller umsetzt. Die Busanschlüsse des Adapters sind von der eigentlichen elektronischen Schaltungstechnik galvanisch getrennt.
Der BSB-LAN Adapter ist grundsätzlich in zwei verschiedenen Versionen verfügbar. Zum einen als Arduino Due-spezifische Version mit einem EEPROM, zum anderen als eine ESP32-spezifische Version ohne EEPROM.

Achtung
Es sei bereits an dieser Stelle angemerkt, dass die ESP32-spezifische Adapterversion aufgrund des fehlenden EEPROMs nur mit einem ESP32 genutzt werden kann - die Due-spezifische Version hingegen kann (wenn auch nicht komfortabel aufsteckbar) auch mit einem ESP32 genutzt werden.

Der Adapter kann von versierten Usern selbst gebaut werden, einen entspr. Schaltplan für die Due-kompatible Version samt EEPROM findet sich in Anhang A1 - bei der ESP32-kompatiblen Version entfällt lediglich das EEPROM, der Rest der Schaltung ist identisch.

Neben dem kompletten Eigenbau besteht die Möglichkeit, fertige Adapterplatinen bei Frederik Holst (bsb [ät] code-it.de) zu erwerben.
Die bei Frederik erhältlichen PCBs können auf die im Folgenden vorgestellten kompatiblen Mikrocontroller (Arduino Due / Joy-It ESP32-NodeMCU / Olimex ESP32-EVB) passgenau aufgesteckt werden, so dass man bereits im Vorfeld gründlich überlegen sollte, welchen Mikrocontroller man für das Setup im weiteren Verlauf einsetzen möchte.


1.1.1 Due-Version

Die Due-spezifische Version des BSB-LAN-Adapters weist ein EEPROM auf, in dem die Einstellungen der BSB-LAN-Software (ab v2.0) gespeichert werden. Der Adapter lässt sich komfortabel und sicher auf den Due aufstecken.

Adapter v4 plain front

Die BSB-LAN-Adapterplatine, Due-Version, v4.1, Oberseite, unbestückt.

Hinweis
Die Verwendung des Due-spezifischen Adapters an einem ESP32 ist trotz des EEPROMs prinzipiell möglich, der Adapter kann jedoch nicht wie bei einem Due problemlos auf ein ESP32-Board aufgesteckt werden. Sollte der Adapter trotzdem mit einem ESP32-Board genutzt werden, so ist darauf zu achten, dass die Verbindungen zwischen Adapter und ESP32 korrekt und zuverlässig hergestellt (also bestenfalls gelötet) werden.

1.1.2 ESP32-Version

Für bestimmte ESP32-Boardvarianten gibt es eine eigene BSB-LAN-Adapterplatine: “BSB-LAN ESP32”.

ESP32 PCB

Die “BSB-LAN ESP32”-Adapterplatine, v4.2, unbestückt.

Diese BSB-LAN-Adapterplatine ist auf das 30 polige ESP32-NodeMCU-Board von Joy-It (WROOM32-Chip) ausgelegt.

ESP32 PCB assembled

Die “BSB-LAN ESP32”-Adapterplatine, v4.2, bestückt für den empfohlenen NodeMCU.

Darüber hinaus kann der Adapter außerdem mit einem Olimex ESP32-EVB sowie einem Olimex ESP32-PoE genutzt und durch Hinzufügen einer doppelreihigen fünfpoligen Pinbuchse (2x5 polig, RM 2,54mm) auf der Platinenunterseite direkt auf den zehnpoligen UEXT-Stecker von Olimex-Boards aufgesteckt werden.

ESP32 PCB v44

Die “BSB-LAN ESP32”-Adapterplatine, v4.4, bestückt für die empfohlenen Olimex-Boards.

Die ESP32-spezifische Version des BSB-LAN-Adapters weist kein EEPROM auf, Einstellungen werden im Flashspeicher des ESP32 gespeichert.

Hinweis
Die Verwendung des ESP32-spezifischen Adapters an einem Due ist aufgrund des fehlenden EEPROMs nicht möglich!

1.2 Arduino Due

Grundsätzlich ist die Verwendung eines originalen Arduino Due zu empfehlen.
Erfahrungsgemäß können jedoch auch günstige Nachbauten des Arduino Due verwendet werden, der Einsatz dieser Clones ist normalerweise problemlos möglich. Bei diesen sollte beim Kauf allerdings darauf geachtet werden, ob in den Produktbeschreibungen auf ein verändertes Platinenlayout, geänderte Pinbelegungen o.ä. hingewiesen wird. Sollte dies der Fall sein, so sind ggf. in der Datei BSB_LAN_config.h diesbezügliche Anpassungen vorzunehmen.

ACHTUNG: Die GPIOs des Arduino Due sind nur 3.3V kompatibel!

Ein Pinout-Schema des Arduino Due ist im Anhang B abgebildet.

DUE clone

Ein kompatibler Clone des Arduino Due.

Hinweise
Es wird empfohlen, den Arduino mit einem externen Netzteil an der Hohlsteckerbuchse zu betreiben. Laut den technischen Daten von Arduino liegt dabei die empfohlene Versorgungsspannung in einem Bereich von 7-12V (Limit: 6-16V).
Die Versorgung mit einem 9V-Steckernetzteil (mind. 1000mA) stellte sich bisher als zuverlässige Lösung dar.
Soll die Stromversorgung trotzdem über die USB Buchse des Due erfolgen, so ist möglichst der ‘Programming Port’, also der mittlere USB Port (neben der Hohlsteckerbuchse gelegen) zu nutzen.
Der Due kann via Netzteil an der Hohlsteckerbuchse mit Strom versorgt und gleichzeitig via USB am Programming Port mit dem Computer verbunden werden.
Der Adapter kann am Bus des Heizungsreglers beim Flashen des Due angeschlossen bleiben.
Achte darauf, dass du möglichst ein qualitativ hochwertiges USB-Kabel verwendest. Dies gilt sowohl für den Fall, dass du den Due via USB mit Strom versorgen willst, als auch für den Fall, dass du den Due zum Flashen an deinen PC anschließen möchtest. Insbesondere lange und dünne Kabel (bspw. Zubehör von Smartphones) können Probleme bei der Stromversorgung und somit der Stabilität des Due verursachen und/oder sind nicht immer voll beschaltet, so dass eine Nutzung für die Datenübertragung nicht möglich ist.
Bei einigen Due-Modellen/-Clones kann es vorkommen, dass sie nach einem initialen Start (bspw. nach einem Stromausfall) nicht richtig zu funktionieren scheinen und erst nach einem Betätigen des Reset-Buttons korrekt arbeiten. Hier kann anscheinend das Hinzufügen eines Kondensators Abhilfe schaffen.

1.2.1 Due + LAN: Das LAN-Shield

Grundsätzlich ist die Verwendung eines originalen Arduino Ethernet-Shields zu empfehlen, das direkt auf den Arduino Due aufgesteckt werden kann.

Die LAN-Shields gibt (bzw. gab) es in zwei verschiedenen Ausführungen. Zum einen mit einem WIZnet W5100-Chip (v1), zum anderen mit einem W5500-Chip (v2).
Die Verwendung des aktuellen v2-Shields (W5500) wird empfohlen, es ist u.a. im offiziellen Arduino-Store und bei Reichelt erhältlich.
Erfahrungsgemäß können jedoch auch günstige Nachbauten dieser Shields verwendet werden, der Einsatz dieser Clones ist normalerweise problemlos möglich. Allerdings sollte beim Kauf darauf geachtet werden, ob in den Produktbeschreibungen auf ein verändertes Platinenlayout, geänderte Pinbelegungen o.ä. hingewiesen wird. Sollte dies der Fall sein, so sind ggf. in der Datei BSB_LAN_config.h diesbezügliche Anpassungen vorzunehmen.

LAN shield clone

Ein kompatibler Clone eines LAN-Shields mit einem W5100-Chip.

Tipp
Als LAN-Kabel sollte möglichst eine geschirmte Ausführung mit einer Mindestlänge von 1m verwendet werden.

1.2.2 Due + WLAN: Die ESP8266-WiFi-Lösung

Das Due-Setup lässt sich mittels eines ESP8266 (NodeMCU oder Wemos D1) anstelle des LAN-Shields auch in WLAN-Netzwerke integrieren.
Hierfür ist der ESP8266 mit dem sechspoligen SPI-Anschluss des Arduino Due zu verbinden und wird dabei vom Due mit Strom versorgt (+5V). Der ESP8266 muss dafür mit einer speziellen Firmware geflasht werden, Näheres dazu erfährst du weiter unten in diesem Kapitel. Die BSB-LAN-Software wird weiterhin auf dem Due installiert.

DUE clone SPI

Der zu verwendende sechspolige SPI-Anschluss des Arduino Due.

Die Anschlüsse sind wie folgt zu verbinden:

Pin DUE Funktion Pin ESP8266
SPI 1 MISO (Master Innput Slave Output) D06
SPI 2 VCC (Stromversorgung ESP) +5V / Vin
SPI 3 SCK (Serial Clock) D05
SPI 4 MOSI (Master Output Slave Input) D07
SPI 6 GND (Stromversorgung ESP) GND
Pin 12 SS (Slave Select) D08

Kommt keine weitere per SPI angeschlossene Komponente (bspw. LAN-Shield, Kartenleser) zum Einsatz, so kann auf den Anschluss von “SS” (SlaveSelect, DUE Pin 12 = D08 beim ESP8266) verzichtet werden.
Im Falle der Verwendung von SS kann der Anschluss auch an einem anderen Pin als Pin 12 erfolgen, der entspr. Pin muss in der Datei BSB_lan_config.h entspr. definiert werden. In diesem Fall ist jedoch darauf zu achten, dass der zu verwendende Pin nicht zu den geschützten Pins zählt und nicht anderweitig verwendet wird. Es wird daher empfohlen, es bei der Voreinstellung (Pin 12) zu belassen.

Wemos SPI

Die korrespondierenden Anschlüsse beim Wemos D1.

Es bietet sich an, das LAN-Shield zu entfernen, eine unbestückte Lochrasterplatine passend auf dem Due zu platzieren und mit den entspr. Anschlüssen zu versehen. So kann der Wemos D1 / NodeMCU stabil auf dem Due platziert werden. Je nach Gehäuse ist hier u.U. auf die Bauhöhe zu achten.

Due WiFi

Wemos D1 auf einer Lochrasterplatine auf dem Arduino Due.

Achtung
Bei dieser Lösung entfällt jedoch die Möglichkeit, Daten auf eine microSD-Karte zu loggen. Soll dies trotz WiFi-Anbindung weiterhin möglich sein, so muss entweder ein entspr. Kartenmodul zusätzlich oder der ESP parallel zum bestehenden LAN-Shield angeschlossen werden. In beiden Fällen muss der SS-Pin zwingend angeschlossen werden (s. Pinbelegung/Anschluss).
Ob ein paralleler Betrieb von LAN-Shield und ESP8266 problemlos möglich ist, wurde bisher jedoch noch nicht getestet.

Flashen des ESP8266:
Der ESP8266 muss mit einer speziellen Firmware geflasht werden. Für die Verwendung der Arduino (o.ä.) muss darauf geachtet werden, dass zuvor die Version 2.7.4 der ESP8266-Bibliotheken mittels des Boardverwalters installiert und ausgewählt wurde wurde.

Die benötigte Firmware WiFiSpiESP für den ESP8266 liegt bereits als zip-file im BSB-LAN-Repository. Das zip-file muss in einem anderen Ordner als BSB_lan entpackt werden! Der ESP8266 ist dann mit der Datei WiFiSPIESP.ino zu flashen.

Konfiguration von BSB-LAN:
Zur Verwendung muss das Definement #define WIFI in der Datei BSB_lan_config.h aktiviert werden. Des Weiteren müssen die beiden Variablen wifi_ssid und wifi_pass entsprechend angepasst und die SSID des WLAN sowie das Passwort eingetragen werden. Diese Angaben können auch im Nachhinein via Webinterface geändert werden.

Hinweise
Bei Verwendung von DHCP kann die vom Router vergebene IP-Adresse im Seriellen Monitor der Arduino IDE beim Start des DUE ausgelesen werden.
Bei der Verwendung der ESP-WiFi-Lösung lautet der Hostname nicht WIZnetXYZXYZ, sondern i.d.R. ESP-XYZXYZ, wobei sich die Ziffern-Buchstabenkombination “XYZXYZ” nach “ESP-“ aus den letzten drei Bytes (also den letzten sechs Zeichen) der MAC-Adresse des ESP zusammensetzt.
Bei Verwendung der ESP-WiFi-Lösung lässt sich die MAC-Adresse des ESP nicht selbst festlegen.

1.3 ESP32

Die BSB-LAN-Software ist auch auf einem ESP32 lauffähig. Es sind allerdings zwingend bestimmte Anpassungen vorzunehmen, die im Kap. 2.1.2 beschrieben sind.

Achtung, wichtiger Hinweis
Falls das ESP32-Framework bereits in der Arduino IDE installiert ist und dir die verschiedenen ESP32-Boardvarianten angezeigt werden, überprüfe bitte im “Boardverwalter” unter “Werkzeuge/Boards”, dass die Version 2.0.2 (oder höher, falls verfügbar) installiert ist.
Sollte das Board nicht aufgeführt sein, so muss die ESP32-Plattform in der Arduino IDE hinzugefügt werden. Informationen hierzu findest du in Kap. 12.1.2.

Im Grunde kann jeder ESP32 verwendet werden, aufgrund des spezifischen Platinendesigns wird jedoch die Verwendung folgender ESP32-basierten Modelle empfohlen:

Die genannten ESP32-Boards nutzen das ESP32-WROOM32-Modul.

Achtung, wichtige Hinweise
Falls du ein anderes als die empfohlenen Boards verwenden möchtest, prüfe immer das spezifische Datenblatt und versichere dich, dass du Pins für RX/TX auswählst, die nicht anderweitig verwendet werden. Diese müssen dann in der Datei BSB_LAN_config.h bei dem entspr. Definement eingetragen werden!
Beachte bitte außerdem, dass die Autodetect-Funktion von BSB-LAN für den angeschlossenen Regler nur mit den von uns empfohlenen Boardtypen funktioniert!
Es ist ausdrücklich empfohlen, immer einen ESP32-WROOM32-Modultyp zu wählen, falls ein anderes ESP32-Board als die von uns empfohlenen Boards eingesetzt werden soll!
Solltest du dennoch ein WROVER-Modul einsetzen wollen oder müssen, so müssen entweder andere Pins anstelle von 16/17 für RX/TX genutzt werden, da WROVER-Module diese beiden Pins intern für das SPI-PSRAM-Modul verwenden, oder es muss im BSB-LAN-Code die Verwendung des PSRAM deaktiviert werden.

1.3.1 ESP32 mit spezifischem “BSB-LAN ESP32”-Adapter

Für eine bestimmte ESP32-Boardvariante gibt es eine eigene BSB-LAN-Adapterplatine: “BSB-LAN ESP32”.

ESP32 PCB

Die “BSB-LAN ESP32”-Adapterplatine, v4.2, unbestückt.

Diese BSB-LAN-Adapterplatine ist auf das 30 polige ESP32-NodeMCU-Board von Joy-It (WROOM32-Chip) ausgelegt.

ESP32 NodeMCU assembled

Die “BSB-LAN ESP32”-Adapterplatine, v4.2, bestückt für den empfohlenen NodeMCU.

Die ESP32-Adapterversion kann außerdem mit einem Olimex ESP32-EVB und einem Olimex ESP32-PoE
genutzt werden. In diesem Fall wird anstellle der beiden 15poligen Pinheader eine doppelreihige fünfpolige Pinbuchse (2x5 polig, RM 2,54mm) auf der Platinenunterseite verbaut, so dass der Adapter direkt auf den zehnpoligen UEXT-Stecker von Olimex-Boards aufgesteckt werden kann.

ESP32 v4.4 Olimex

Die “BSB-LAN ESP32”-Adapterplatine, v4.4, bestückt für die Olimex-Boards.


1.3.1.1 ESP32: NodeMCU “Joy-It”

Die ESP32-Variante der BSB-LAN-Adapterplatine ist auf das 30 polige ESP32-NodeMCU-Board von Joy-It (WROOM32-Chip) ausgelegt. Es ist in Deutschland u.a. bei Reichelt erhältlich.
Für das Board ist beim Hersteller eine Bedienungsanleitung verfügbar. Dort sind sowohl das boardspezifische Pinoutschema als auch eine generelle Anleitung zur Verwendung von ESP32-Boards mit der Arduino IDE enthalten!

v42 NodeMCU

Die “BSB-LAN ESP32”-Adapterplatine, v4.2, bestückt für den empfohlenen NodeMCU.

ESP32 + Adapter

NodeMCU + Adapter

Der Joy-It ESP32-NodeMCU auf dem “BSB-LAN ESP32”-Adapter.

Sollte das Joy-It-Board nicht erhältlich sein und ein anderes NodeMCU-ESP32-Board zum Einsatz kommen, so muss in jedem Fall auf zwei Dinge geachtet werden, damit der ESP32-spezifische BSB-LAN-Adapter passt:

  1. Das Board muss ein 30 poliger ESP32-NodeMCU sein! Es gibt auch 38 polige NodeMCUs - diese passen nicht!
  2. Das Pinout-Schema muss identisch mit dem des Joy-It-Boards sein.
Achtung, wichtiger Hinweis
Falls das ESP32-Framework bereits in der Arduino IDE installiert ist und dir die verschiedenen ESP32-Boardvarianten angezeigt werden, überprüfe bitte im “Boardverwalter” unter “Werkzeuge/Boards”, dass die Version 2.0.2 (oder höher, falls verfügbar) installiert ist.
Sollte das Board nicht aufgeführt sein, so muss die ESP32-Plattform in der Arduino IDE hinzugefügt werden. Informationen hierzu findest du in Kap. 12.1.2.

Stromversorgung:
Die Stromversorgung des NodeMCU erfolgt über die microUSB-Buchse. Das Netzteil sollte mindestens 5V(DC)/1A liefern.
Sollten Probleme hinsichtlich des Datentransfers oder auch später beim Betrieb auftauchen, probiere zunächst ein anderes USB-Kabel. Es gibt Kabel, die reine Ladekabel sind und keine Datenleitung aufweisen und es gibt außerdem Kabel, die nur sehr dünne Litzen verbaut haben und aufgrund dessen im Betrieb Probleme hinsichtlich der Strom- & Spannungsversorgung bereiten können.


1.3.1.2 ESP32: Olimex ESP32-EVB & ESP32-PoE

Die ESP32-Adapterversion kann außerdem mit einem Olimex ESP32-EVB und einem Olimex ESP32-PoE genutzt werden. In diesem Fall wird anstelle der beiden 15poligen Pinheader eine doppelreihige fünfpolige Pinbuchse (2x5 polig, RM 2,54mm) auf der Platinenunterseite verbaut, so dass der Adapter direkt auf den zehnpoligen UEXT-Stecker von Olimex-Boards aufgesteckt werden kann.
Diese Olimex-Boardvarianten bieten neben der ESP32-basierten WLAN-Funktionalität u.a. einen LAN-Anschluss und einen microSD-Kartenleser und sind daher sehr empfehlenswert.

v4.4 Olimex

Die “BSB-LAN ESP32”-Adapterplatine, v4.4, bestückt für die empfohlenen Olimex-Boards.

Olimex + v4.2

Der Olimex ESP32-EVB samt aufgestecktem “BSB-LAN ESP32”-Adapter v4.2.

Olimex PoE + Adapter

Der Olimex ESP32-PoE samt aufgestecktem “BSB-LAN ESP32”-Adapter v4.4.

Achtung, wichtige Hinweise
Achte beim Aufstecken des Adapterboards penibel darauf, dass die UEXT1-Buchse der Platine **exakt in der Mitte der Olimex-Buchse aufgesteckt wird und alle Pins des Olimex Kontakt haben!** Ansonsten leuchtet beim korrekten Anschluss des Adapters an den Heizungsregler zwar die LED des Adapters, es ist aber kein Zugriff auf den Regler möglich.
Ebenso ist auf die korrekte Ausrichtung der Platine zu achten (s. Foto)!
Beim Olimex ESP32-EVB ist der Anschluss weiterer Hardware lediglich an den beiden GPIO-Pins 13 (I2C-SDA) und 16 (I2C-SCL) möglich.
Falls das ESP32-Framework bereits in der Arduino IDE installiert ist und dir die verschiedenen ESP32-Boardvarianten angezeigt werden, überprüfe bitte im “Boardverwalter” unter “Werkzeuge/Boards”, dass die Version 2.0.2 (oder höher, falls verfügbar) installiert ist.
Sollte das Board nicht aufgeführt sein, so muss die ESP32-Plattform in der Arduino IDE hinzugefügt werden. Informationen hierzu findest du in Kap. 12.1.2.

Stromversorgung:
Die Stromversorgung der Olimex-Boards kann auf zwei Arten erfolgen: Via Hohlsteckerbuchse oder via microUSB-Buchse. In beiden Fällen sollte das Netzteil mindestens 5V(DC)/1A liefern. Das Netzteil für den Betrieb via Hohlsteckerbuchse sollte einen 5.5/2.1mm (Pluspol innen) Hohlstecker aufweisen (die entspr. Produktbezeichungen auf der Olimex-Webseite lauten “SY0605E” bzw. “SY0605E-CHINA”).
Achtung: In Ausnahmefällen hat sich herausgestellt, dass die 1A des Netzteils nicht ausreichend waren, einen stabilen Betrieb des Boards zu gewährleisten!
Sollten Probleme hinsichtlich des Datentransfers oder auch später beim Betrieb via microUSB-Anschluss auftauchen, probiere zunächst ein anderes USB-Kabel. Es gibt Kabel, die reine Ladekabel sind und keine Datenleitung aufweisen und es gibt außerdem Kabel, die nur sehr dünne Litzen verbaut haben und aufgrund dessen im Betrieb Probleme hinsichtlich der Strom- & Spannungsversorgung bereiten können.

ESP32-Adaptervariante v4.1 am Olimex nutzen:
Bei Adapterboards, die an Olimex-Boards am UEXT Anschluss verwendet werden und eine BSB-LAN-Board-Revision bis einschließlich 4.1 haben (und nur in dieser Kombination) starten diese nicht korrekt, wenn bei aufgestecktem BSB-LAN-Adapter die Stromzufuhr unterbrochen wurde. Es muss dann zusätzlich nach dem Einschalten einmal der Reset-Button gedrückt werden.
Um dieses Problem zu beheben, muss mit einem spitzen und scharfen Gegenstand (bspw. Rasierklinge/Teppichmesser/Skalpell) die vom Widerstand R6 in Richtung des UEXT-Steckers abgehende Leiterbahn (rot markiert) auf der Platine durchtrennt werden (gelb markiert). Am besten ist dies mit einem Multimeter vorher und nachher zu überprüfen, ob zwischen dem Ende von R6 und Pin 3 des UEXT-Anschlusses (k)eine Verbindung (mehr) besteht. Stattdessen muss dann eine leitende Verbindung mittels eines dünnen Drahtes zwischen diesem Ende des R6 zu Pin 10 des UEXT-Anschlusses (unterhalb des „U“ von „UEXT“) hergestellt werden (grün markiert).
Olimex fix R6
BSB-LAN Boards ab der Board-Revision 4.2 sind von diesem Problem nicht mehr betroffen.


1.3.2 ESP32 mit Due-kompatiblem BSB-LAN-Adapter ab V3

Der bisherige Due-kompatible Adapter (ab v3) lässt sich ebenfalls mit einem ESP32 verwenden. Das EEPROM des Adapters wird hierbei nicht benötigt/verwendet und ist dementsprechend auch bei der Verkabelung nicht zu berücksichtigen.
Bei der Wahl eines ESP32 ist hier keine zwingende Einschränkung auf die zuvor genannte Joy-It-boardkompatible NodeMCU-Variante gegeben, da ohnehin eine ‘lose’ Verkabelung oder der Eigenbau einer kleinen Adapterplatine zur stabileren Aufnahme des BSB-LAN-Adapters und des ESP32 nötig ist. Es sollte jedoch darauf geachtet werden, dass die unten angegebenen Pinnummern/-belegungen mit denen des gewählten ESP32 übereinstimmen.

Die Verbindungen sind wie folgt vorzunehmen:

BSB-LAN-Adapter ab v3 Funktion ESP32-Board
Pin 53 VCC (Stromversorgung Adapter) 3,3V
GND GND (Stromversorgung Adapter) GND
TX1 TX (Senden) Pin 17 (TX2)
RX1 RX (Empfangen) Pin 16 (RX2)

Beispielhaft wird im Folgenden ein “ESP32 D1 R32 Entwicklerboard” (WROOM32-Chip) in der Größe eines Arduino Uno mit einer selbstgebastelten Adapterplatine (Uno-kompatible Prototyping-Platine) für die Aufnahme des BSB-LAN-Adapters v3 (Due-Version) gezeigt. Selbstverständlich sind auch andere Varianten, wie bspw. mit einem ESP32-NodeMCU und einer entsprechend angepassten Lochrasterplatine möglich!

D1R32

Links das “ESP32 D1 R32”-Board, rechts die entsprechende aufsteckbare Platine zur Aufnahme des BSB-LAN-Adapters v3 (Due-Version).

D1R32 complete

Der komplette Aufbau.

Hinweis
Das abgebildete ESP32 “D1 R32 Entwicklerboard” kann ich persönlich ausdrücklich NICHT empfehlen, da es offenbar deutlich schlechtere Empfangseigenschaften aufweist als andere ESP32-Boards. Obwohl der Router nur wenige Meter entfernt stand, war es mir nicht möglich, eine stabile WLAN-Verbindung aufzubauen. Auf Nachfrage beim Anbieter wurde mir dieser Eindruck bestätigt, die “Ursache dafür ist in der Bauform begründet”.
Achtung, wichtiger Hinweis
Falls das ESP32-Framework bereits in der Arduino IDE installiert ist und dir die verschiedenen ESP32-Boardvarianten angezeigt werden, überprüfe bitte im “Boardverwalter” unter “Werkzeuge/Boards”, dass die Version 2.0.2 (oder höher, falls verfügbar) installiert ist.
Sollte das Board nicht aufgeführt sein, so muss die ESP32-Plattform in der Arduino IDE hinzugefügt werden. Informationen hierzu findest du in Kap. 12.1.2.

1.3.3 ESP32 mit veraltetem BSB-LAN-Adapter V2

Der (inzwischen veraltete) BSB-LAN-Adapter v2, der mit einem Arduino Mega2560 verwendet wurde, kann ebenfalls an einem ESP32 betrieben werden. So kann von der Weiterentwicklung und den neuen Funktionen der BSB-LAN-Software ab v2.x profitiert werden, ohne dass ein neuer Adapter angeschafft werden muss. Dazu müssen am Adapter selbst einige Änderungen vorgenommen werden, die im Folgenden beschrieben werden.

Achtung
Die nachfolgend beschriebenen Schritte zur ‘Umrüstung’ des Adapters auf 3,3V gelten nur für den Einsatz an einem ESP32 - an einem Due kann der Adapter v2 aufgrund des fehlenden EEPROMs nicht genutzt werden!

Um den Adapter v2 erfolgreich an einem ESP32 betreiben zu können, muss der Adapter auf den Betrieb mit 3,3V ‘umgerüstet’ werden. Dies ist für die Nutzung mit einem Raspberry Pi bereits vorgesehen. Nachfolgende Schritte müssen vorgenommen werden:

Nun ist der Adapter für den Betrieb an einem 3,3V-System vorbereitet.
Zum Anschluss an den ESP muss nun die “RasPi”-Kontaktreihe genutzt und wie folgt mit dem ESP32 verbunden werden:

BSB-LAN-Adapter v2 Funktion ESP32-Board
Pin 06 GND (Stromversorgung Adapter) GND
Pin 08 TX (Senden) Pin 17 (TX2)
Pin 10 RX (Empfangen) Pin 16 (RX2)
Pin 12 3,3V (Stromversorgung Adapter) 3,3V

Die folgende Abbildung zeigt einen entspr. bestückten Adapter v2. Das gelbe “X” bei SJ1 markiert die entfernte Lötbrücke (den nicht-geschlossenen Kontakt), die beiden gelben Umrandungen bei SJ2 und SJ3 markieren die zu schließenden Lötbrücken.

v2 mod

Der umgerüstete Adapter v2 für die Nutzung mit einem ESP32.

Es ist empfehlenswert, die vier Kontakte auf dem Adapter mit einer Pinleiste zu bestücken und sich eine kleine Adapterplatine aus einer Lochrasterplatine und Pinheadern aufzubauen, auf der der Adapter und das ESP32-Board aufgesteckt werden könnnen, um einen stabilen Aufbau und eine sichere Verbindung zu gewährleisten.

Achtung, wichtiger Hinweis
Falls das ESP32-Framework bereits in der Arduino IDE installiert ist und dir die verschiedenen ESP32-Boardvarianten angezeigt werden, überprüfe bitte im “Boardverwalter” unter “Werkzeuge/Boards”, dass die Version 2.0.2 (oder höher, falls verfügbar) installiert ist.
Sollte das Board nicht aufgeführt sein, so muss die ESP32-Plattform in der Arduino IDE hinzugefügt werden. Informationen hierzu findest du in Kap. 12.1.2.

1.4 Raspberry Pi

Der aktuelle ESP32-spezifische Adapter (v4.4) kann auch an einem Raspberry Pi genutzt werden.
Es sind dabei jedoch folgende Punkte zu beachten:

RPi v4.4

Der ESP32-Adapter v4.4 mit der entspr. Buchsenleiste für einen RPi.

RPi v4.4 complete

Der aufgesteckte ESP32-Adapter v4.4 auf einem RPi3.

Achtung
Für die Verwendung des Adapters an einem RPi muss eine gänzlich andere Software genutzt werden: “bsb_gateway” von J. Loehnert!
Für jeglichen Support in Zusammenhang mit der bsb_gateway-Software kontaktiere bitte direkt den Autor von bsb_gateway!
Dieses Handbuch bezieht sich nur auf die BSB-LAN Hard- & Software!
Es kann und wird von uns keinerlei Support bzgl. einer RPi-Nutzung erfolgen!
Von unserer Seite her wurde die Verwendung des Adapters mit der zuvor genannten Software lediglich auf einem RPi 3 getestet. Ob eine einwandfreie Funktion mit aktuelleren RPi-Versionen gegeben ist, können wir nicht beurteilen.
Für die Nutzung des Adapters mit einem RPi an der PPS-Schnittstelle kann das Python-Script PPS-monitor von D. Spinellis genutzt werden.

1.5 Gehäuse

Das Angebot an verfügbaren Gehäusen für einen Arduino Due samt LAN-Shield oder auch einen NodeMCU samt Aufsteckplatine ist leider recht begrenzt, nur bei einzelnen Anbietern finden sich Kunststoff-, Plexiglas- oder Metallgehäuse. Noch knapper wird die Auswahl, wenn bspw. bei einem Due-Setup ein zusätzlich aufgestecktes Relaisboard mit untergebracht werden soll. Solltest du gezielt nach Gehäusen für den Due suchen, so wirst du u.U. nicht fündig. In dem Fall suche nach Gehäusen, die für den Arduino Mega 2560 konzipiert sind, denn er weist den gleichen Formfaktor wie der Due auf. Achte jedoch darauf, dass du möglichst ein Gehäuse wählst, das den Due samt aufgesteckten LAN-Shield aufnehmen kann. Gehäuse, die nur den Arduino aufnehmen und im Deckel Schlitze haben, so dass Shields aufgesteckt werden können, sind nicht zu empfehlen, da in dem Fall sowohl das LAN-Shield als auch der Adapter ungeschützt sind.

Neben kommerziellen Produkten und kreativen Selbstbau- und Bastellösungen bietet sich für Besitzer eines 3D-Druckers noch die Möglichkeit, ein entsprechendes Gehäuse selbst herzustellen.
FHEM-Forumsmitglied “EPo” war so freundlich, entsprechende STL-Dateien zu erstellen und zur Verfügung zu stellen.
Vielen Dank!

Die STL-Dateien für den Arduino Due, den ESP32-NodeMCU sowie den Olimex ESP32-EVB samt BSB-LAN-Platine sind bereits im GitHub-Repo von BSB-LAN enthalten (Unterordner “schematics”).

DUE housing

3D-Druckmodell des Gehäuses für den Arduino Due inkl. LAN-Shield und Adapter.

NodeMCU housing

3D-Druckmodell des Gehäuses für den empfohlenen ESP32 NodeMCU inkl. Adapter.

Olimex EVB housing

3D-Druckmodell des Gehäuses für den empfohlenen Olimex ESP32-EVB inkl. Adapter.

Olimex PoE housing

3D-Druckmodell des Gehäuses für den empfohlenen Olimex ESP32-PoE inkl. Adapter.


ko-fi


Weiter zu Kapitel 2
Zurück zum Inhaltsverzeichnis