home     Inhaltsverzeichnis
erste Version am 24.01.2017
letzte Änderung am 28.01.2017

ESP8266-12 - Seite 2

Nun lässt sich das Löten nicht mehr vermeiden.

den nackigen ESP-12E auf Lochrastermaß bringen

Der erste Schritt besteht darin, etwa einen halben Meter "versilberten Kupferdraht" von der Rolle in Form zu bringen. Will heißen: gerade und steif machen.
Mein Draht hatte einen Querschnitt von 0,6mm und passte damit gerade noch in die Bohrungen des ESP-12E.

Zum gerade und steif machen braucht es einen Schraubstock und einen Akkuschrauber mit variablem Bohrfutter. Das eine Ende des Drahts wird in den Schraubstock gespannt. Das andere Ende knickt man ein- oder zweimal ca. 2cm lang um, damit es sich besser im Bohrfutter des Akkuschraubers hält. Nach Befestigung des Drahtes im Bohrfutter dann den Draht zärtlich stramm ziehen, indem der Akkuschrauber vom Schraubstock wegbewegt wird. Unter leichter Spannung danach den Akkuschrauber etwa 10 bis 20 Sekunden drehen lassen. Den Draht dabei immer gespannt lassen. Irgendwann merkt man, dass der Draht von alleine in Form bleibt. Nun muss man ihn nur noch vorsichtig zuerst am Schraubstock abknipsen, den Akkuschrauber mit dem fallenden Draht mitbewegen (um ihn nicht unnötig zu biegen) und schließlich auch am Akkuschrauber abknipsen.
Wenn man alles richtig gemacht hat, hat man jetzt ein Stück perfekt gerades und steifes Stück Draht.

Dann habe ich mir aus den Holzresten von dem hier eine Löt-Halterung für den ESP-12E gebaut, bei der die Leiterplatte bündig auf dem Holz aufliegt.
Dadurch konnte ich das Stück Draht einfach in das Bohrloch reinstellen und dann festlöten:
ESP-12E auf Lochrastermaß bringen,
        Schritt 1


Nach 16 Drähten sah es erstmal so aus:
ESP-12E auf Lochrastermaß bringen,
        Schritt 2


Nun kam der heikle Teil, die Drähte auf Lochraster-Maß zu bringen. Erstmal die eine Seite, danach die andere:
ESP-12E auf Lochrastermaß bringen,
        Schritt 3


Nachdem beide Seiten einzeln zurechtgebogen waren, bekam ich sie gut beide gleichzeitig in die Lochraster-Platte gesteckt:
ESP-12E auf Lochrastermaß bringen,
        Schritt 4


In der Lochraster-Platte steckend, werden alle Beinchen auf eine Länge geschnitten.
Danach sah der auf dem Rücken liegende Käfer so aus:
ESP-12E auf Lochrastermaß bringen,
        Schritt 5

Nun braucht es noch einen IC-Sockel wie diesen, eine Kneifzange zum Sockel-Kürzen und....
der ESP-12E, passend für Lochraster
...schon hat man einen ESP-12E mit Lochraster-Kompatibilität.
Ich habe bewusst vier Pins zuviel drangelassen, um mir damit die Option offen zu halten, einige der restlichen sechs Pins des ESP-12E ggf. auch noch zu verdrahten.

Ich finde, dass das durchaus schick aussieht :-)
Und vor allen Dingen ist das kompakter als alles Andere, was ich bisher an ESP-12E-Lochrasterisierungs-Lösungen gesehen habe.
Natürlich könnte man auch einen gedrehten Sockel oder sogar einen Präzisions-Sockel als Adapter verwenden. Das hängt nur davon ab, was man später mit dem ESP-12E vor hat.
Allerdings dürfte es bei gedrehten Sockeln etwas schwieriger werden, die Drähte da rein zu bekommen. Notfalls hilft hier wie immer: löten.


Programmier-Board

Der nächste Schritt wird eine Programmier-Einheit für den USB-losen ESP-12E werden.
Dazu wird erstmal ein USB zum TTL-Konverter gebraucht, der auf 3,3V umschaltbar ist.
Und eine hinreichend leistungsstarke 3,3V Spannungsversorgung.
Die Pinbelegung des Chips sieht so aus:


Antenne


RST



ESP-12E


Vorderansicht
TxD
ADC
RxD
EN(CH-PD)
GPIO5
GPIO16
GPIO4
GPIO14 GPIO0
GPIO12 GPIO2
GPIO13      GPIO15
Vcc
GND

CS
0
MI
SO
GP
IO
9
GP
IO
10
MO
SI
SC
LK


Die Pins RxD, TxD und GND müssen sich per Stecker mit dem USB zum TTL-Konverter verbinden lassen.
Die Pins Vcc und GND brauchen einen Stecker zur 3,3V Spannungsversorgung.
Dann müssen noch die Pins GPIO0, GPIO2 und GPIO15 beschaltet werden, um den Chip in den Programmiermodus zu versetzen.
Weiterhin braucht es einen Taster am Pin RST und einen Pullup am Pin EN(CH-PD).
Vielleicht auch noch eine LED mit Vorwiderstand, um damit via Blink-Sketch eine Funktionsprüfung des Moduls durchführen zu können.

Um das Board gleichzeitig als Entwicklungs-Plattform (für Low-Power-Szenarien) nutzen zu können, sollte sich sämtliche Beschaltung des Chips abklemmen lassen und weiterhin an beiden Seiten je eine Buchsenleiste existieren, über die mit Drahtbrücken von jedem Pin eine Verbindung zu einem Breadboard hergestellt werden kann.
Das Abklemmen der Programmier-Beschaltung könnte über zweipolige Stecker mit Jumper erfolgen.
Also so:
Schaltplan für das ESP-12E
        Programmier-Board
Die Farben der Label-Spitzen haben nix zu bedeuten. Deren Farbe hat sich random nach rot geändert....

Ich habe dann doch weit mehr 10KΩ-Widerstände eingeplant, als ich ursprünglich vorhatte.
Eigentlich könnte man einen Pin ja dadurch auf HIGH setzen, dass man ihn direkt an +3,3V legt - analog bei LOW an Masse.
Andererseits hätte man dadurch jedoch automatisch einen Kurzschluss gebaut, wenn nach dem Programmieren das Programm losläuft und darin beispielsweise GPIO2 als Ausgang geschaltet und mit LOW initialisiert würde. Ich schätze mal, dass der ESP-12E das ziemlich übel nehmen könnte, wenn der Pin dann [noch] auf +3,3V liegt. Vielleicht sind die Ports intern auch gegen sowas abgesichert. Wer weiß....steht sicher irgendwo...aber egal: ich habe Unmengen an 10KΩ-Widerständen rumliegen.

Die LED hängt bewusst in der Luft. Dafür ist vorgesehen, sie bei Bedarf per Drahtbrücke mit einem individuell wählbaren Pin des ESP-12E zu verbinden.

Weil ich mir bei Reichelt für das Programmier-Board u.a. gerade diesen edlen Sockel und einen 5-poligen DIP-Schalter (statt der Jumper-Brücken) bestellt habe, muss der Aufbau noch bis zu deren Lieferung warten.


Vortest des Programmier-Boards

Weil ich ja eh noch warten muss, bis der Nullkraft-Sockel da ist, habe ich die Schaltung vorab schon mal auf einem Breadboard aufgebaut.
Das sah dann so aus:
Breadboard Testaufbau für das
        ESP-12E Programmier-Board
Der relevante Ausschnitt so:
Breadboard Testaufbau für das
        ESP-12E Programmier-Board, der relevante Ausschnitt
Wichtig ist der Kondensator in der rechten unteren Ecke!
Den hatte ich zuerst nämlich nicht drauf. Damit konnte ich zwar erfolgreich ein Blink-Sketch hochladen, danach passierte aber nix.
Daraufhin habe ich noch einen Serial.println() eingebaut, das Terminal geöffnet und sah nach dem erneuten Hochladen nur Absturz-Meldungen.
Deswegen dachte ich mir: ein kleiner Elko könnte sicher nicht schaden..... und was soll ich sagen.... danach klappte es wie geschmiert.

Die Upload-Sequenz lautet:
    erst GPIO0 an Masse,
    dann kurz RST an Masse,
    anschließend GPIO0 von Masse trennen (bzw. über den Pullup an +3.3V) und
    final in der Arduino IDE den Upload-Knopf anklicken.

Das ist jetzt zwar nicht ganz so komfortabel wie beim Arduino oder dem WeMos D1 mini, aber gut machbar.

Wie schön....ein erfolgreicher / gelungener Feierabend ... und genau rechtzeitig, weil jetzt Dr. Who anfängt.


Programmier-Board löten

Bevor ich nun den teuren Sockel auf das Programmier-Board löte, wollte ich erstmal herausfinden, was es mit den sechs Pins gegenüber von der Antenne auf sich hat. Die Info-Lage dazu war ausgesprochen spärlich. Und wenn es tatsächlich mal um diese Pins ging, war das meiste eher vom Hörensagen...
Hier steht was und hier hat sich jemand richtig Mühe gegeben.
Fazit: ich lasse da besser die Finger von und verdrahte sie nicht.

Zusammen mit dem Sockel habe ich mir auch Kupferschaltdraht, verzinnt, Ø 0,4 mm, 90 m bestellt. Der passt jetzt auch problemlos in gedrehte Sockel. Laut des Datenblattes bei Reichelt passen da runde Kontakte zwischen 0,40 - 0,56 mm rein. Interessanterweise sitzt der Draht da drin sogar halbwegs fest - obwohl sein Querschnitt ja am unteren Limit liegt. Den nächsten ESP-12E werde ich mal damit auf Lochraster-Maß bringen.

Und weil ich bei der Bestellung gleich noch meinen Vorrat an 3,3V-Reglern aufgestockt habe, wird auch einer davon auf dem Programmier-Board landen. Zur Sicherheit....weil das Labornetzteil meist auf 5V eingestellt ist.

Nun habe ich mindestens zwei Stunden rumgelötet, aber dafür ist es m.E. auch ganz hübsch geworden...und funktioniert:
das ESP-12E Programmier-Board auf
        Leiterplatte
Abweichend zum obigen Schaltplan geht die LED gegen Masse (wird also mit HIGH-Pegel eingeschaltet) und der DIP-Switch ist bezüglich der Widerstände andersrum beschaltet - meint: die Widerstände sind mit dem ESP-12E verbunden, die Trennung durch die Schalter erfolgt dahinter.
Naja...und eben zusätzlich noch der 3,3V-Regler samt 100µF Elko als Sicherheitsfeature.

Wobei es mit dieser Version ein kleines mit Problem mit dem PowerOn-Reset gibt. Etwa jedes zweite Mal kommt der ESP-12E nach PowerOn nicht hoch und braucht erst noch einen händisch ausgelösten Reset via Taster.
Im Schaltbild des WeMos D1 mini liegt an RST noch ein 100nF Kondensator gegen Masse. In meiner Schaltung ändert ein 100nF Kondensator nix. Erst ein 22µF Elko hat den gewünschten Effekt. Allerdings widerstrebt es mir irgendwie, den da fest einzubauen und mit jedem Druck auf den Reset-Taster eine so hohe Kapazität kurzzuschließen....

Weil ich keine Ahnung habe, ob Kondensator oder Taster das langfristig übel nehmen würden, könnte ich es erstmal mit 1µF (statt 100µF) hinter dem Regler probieren. Die Idee dabei ist, dass der ESP-12E zum einen am RST-Pin relativ hochohmig ist und zum anderen für einen sauberen Start nach PowerOn an RST etwas länger ein LOW braucht, als bis sich die Spannung an Vcc stabilisiert hat. Der Kondensator an RST wird über den 10KΩ-Widerstand langsam geladen, der an Vcc hängt direkt am Ausgang des Reglers und wird mit ~1A geladen.
Ist das Verhältnis zwischen den beiden Kondensatoren nun zu groß, wäre die Spannung über dem Kondensator an RST schon hoch genug, um als HIGH angesehen zu werden, während der (viel größere) Kondensator an Vcc noch am laden ist. Was mich an dieser Betrachtung etwas stört ist der Umstand, dass der kleine Kondensator ja an der selben Spannung hängt, wie der große. Eine Schaltungs-Simulation hat mich auch nicht wirklich schlauer gemacht. Es hilft wohl nix...ich muss das ausprobieren und dafür zwangsläufig nochmal den Lötkolben anheizen.

Nun habe ich den 100µF Elko abgelötet und somit lediglich einen 10µF Tantal-Elko am Eingang des Reglers in der Schaltung. Damit läuft es - auch ohne 100nF an RST und trotzdem zu 100% saubere Starts.
Ganz ohne Kondensator hinter dem Regler will ich aber nicht.
Daher ist jetzt statt des 100µF Elkos ein 100nF Keramikkondensator drin. Läuft ebenfalls stabil.

Auf der nächsten Seite gehts dann mit ein paar Messungen weiter.