Ein weiteres mal: ESP8266

Es ist ein wenig Zeit ins Land gegangen, und ich muss mal wieder ein klein wenig bloggen.

Die letzten Tage und Wochen habe ich mich recht intensiv mit Arduinos und deren Programmierung befasst. Basierend auf der Library von Franck Marini, habe ich eine erweiterung geschaffen, die es einem ermöglicht, den Arduino, den man mit einem Siemens BCU (das hier ist die Basis: http://www.opternus.com/de/siemens/entwicklungs-werkzeuge/tp-uart2-board-btm2-pcb.html) verbunden hat, mit dem KNX Bus sprechen zu lassen UND (und jetzt kommt meine Erweiterung), über den Bus auch programmieren kann.

Details dazu werden noch folgen wenn die Entwicklung soweit ist. Auf was ich aber hinaus will: Meine ganze Entwicklung habe ich mit einem Arduino Leonardo bzw. Arduini Micro gemacht. Die sind günstig zu haben, haben einen extra USB Anschluss der auf einen extra UART geführt ist (man hat also zwei UARTs) und und und. Eine feine Sache.

Meine Mitstreiter setzen hingegen auf den (ausreichenden) minimalismus in Form einen Arduino Pro Mini. Kein USB-Anschluss, 3.3V mit 8Mhz. Klein, aber fein. Nun gut. Meine Entwicklung muss auch damit getestet werden. Gesagt getan. Ich hab den einzig verbliebenen Arduino Nano aus der Schublade geholt und damit getestet. Ergebnis: Läuft nicht…

Nach langer recherche stellte sich heraus: Der Bootloader der ab Werk auf dem Nano (und weil der ProMini die gleiche CPU hat, dort auch) vorhanden ist, kann mit dem eingebauten Watchdog-Timer nicht richtig umgehen.  Ok, er kann doch, aber nur 1x. Meine KNX Bastelei will nach dem Programmieren über den Bus neu gestartet werden. Dazu verwende ich den WDT, blockiere mit einer kleinen Endlosschleife und forciere somit einen neustart. Der Micro/Leonardo kommt damit prima zurecht. Der ProMini/Nano hingehen bootet in einen Endlosschleife…

Nach weiteren Stunden der Recherche stellt sich heraus was befürchtet wurde: Man braucht einen anderen Bootloader… Ich komm mir vor wie der erste Mensch auf dem Mond… Wieso ist das Netz nicht voll von Fehlerbeschreibungen diesbezüglich? Egal. Anderer Bootloader drauf (OptiBoot) und das Problem sollte behoben sein. Bei anderen Mitstreitern – zum Teil – ja… Bei mir nicht.

In der Frustdiskussion um den ProMini/Nano hatte ich dann wieder den ESP8266 als „optimale Alternative“ ins Spiel gebracht. Mehr Leistung, mehr RAM, mehr EEPROM (bzw. Flash), mehr WLAN… Mehr von allem. Prompt kam das Gegenargument: Strombedarf… Peaks von über 200mA soll es geben.

Tatsächlich. Mit aktivem WLAN wird an vielen Stellen im Netz von über 100mA gesprochen. Da wir für unsere Anwendung aber eher kein WLAN brauchen, könnte man das ja abschalten. Im Netz finden sich dann ganz vereinzelt (weil das machen die wenigsten, die meisten nutzen das WLAN) Hinweise auf <20mA@3.3V… wenn man das WLAN abschaltet.

Ich konnte es nicht lassen und musste das selbst testen. Nach einer Stunde hatte ich auf einer kleinen Lochrasterplatine den nackigen ESP12E aufgeklebt und mit den Stiftleisten verbunden, so dass ich auf einem Steckbrett meinen ersten Aufbau damit machen konnte. Nach einem typischen Anfängerfehler (man sollte nicht versuchen mit einem Terminalprogramm den UARt mitzulesen während man versucht den Arduino-Sketch drauf zu schieben. Das kommt sich in die Quere) ging’s da..

Und siehe da: 68mA…. Mist. WLAN ist doch aus? Oder doch nicht? Kurz gegoogelt… Rausgefunden dass erst in ESP8266 für Android 2.1.0-RC2  ein Bug behoben wurde. Also ein Update gemacht, sketch angepasst und siehe da. 14.43mA bei 3.3V und einem Sketch der eine LED blinken lässt und über die serielle Schnittstelle deren Status ausgibt. Super Sache.

48mW für eine 80Mhz Rechenmaschine mit viel Speicher und RAM und zahlreichen Ein/Ausgängen (alle digital, keiner analog), sowie 10bit PWM auf jedem Ausgang.

Sobald die oben genannte KNX Bastelei funktioniert, portiere ich die Bibliothek auf den ESP8266 (und wenn der Kollege den Arduino Zero noch weiter verfolgt auch dahin).

 

Leave a Comment

Your email address will not be published.