ESP8266 Programmierer Version 2.0

  • Der bisherige Programmieradapter hatte zwei Knöpfe. Einen um den ESP zu Reseten und mit der Kombination linken Knopf halten, rechten Knopf drücken, linken Knopf los lassen in den Programmiermodus zu gelangen. Zum einen ist die Anordnung der Knöpfe mit etwas dickeren Fingern nicht ganz so optimal gewählt und zum anderen habe ich mir gedacht, dass es eine einfachere Lösung geben muss, um in den Programmiermodus zu gelangen.


    Heraus gekommen ist die hier vorgestellte zweite Version des ESP8266 Programmieradapters. Die Platine hat die gleichen Maße behalten, ist aber wesentlich enger mit Bauteilen bestückt. Der Bedienknopf ist nach rechts zwischen die beiden Befestigungsbohrungen gesetzt worden, da diese Stelle meiner Meinung nach besser zu erreichen ist.


    Als Schaltzentrale wurde ein kleiner Mikrocontroller gewählt. Dieser erfüllt nun diverse Aufgaben. Er sorgt unter anderem dafür, dass die Bedienung nun über nur noch einen einzigen Taster möglich ist. Des weiteren überwacht er die 3,3V Spannungsversorgung des ESP und warnt durch eine Multicolour LED durch entsprechendes Blinken davor, dass die Spannung über- oder unterschritten wird.


    Ein Reset wird wie bisher durch kurzes Drücken des Tasters ausgelöst. In den Programmiermodus gelangt man, indem man den Taster länger als eine Sekunde gedrückt hält und wieder los lässt. In den normalen Modus wechselt der ESP nach dem Flashen durch einen kurzen Tastendruck, durch den wieder eine Reset ausgeführt wird.


    Die LED zeigt die verschiedenen Zustände wie folgt an:


    Einschalten: LED blitzt zur Bestätigung der Funktion und der Spannung von 3,3V drei mal grün auf
    grün leuchtend: Schaltung befindet sich im normalen Modus
    blau fadend: Schaltung befindet sich im Programmiermodus
    grün schnell blinkend: Die Versorgungsspannung ist unter 3,1V gefallen
    rot leuchtend: Die Versorgungsspannung ist über 3,5V (aber unter der Eingangsspannung durch das USB-Kabel) gestiegen
    rot schnell blinkend: Die Versorgungsspannung des ESP ist genau so hoch wie die Eingangsspannung durch das USB-Kabel. Der ESP ist akut gefährdet!


    Wie immer habe ich auch bei diesem Projekt mehr Platinen geordert, als ich benötige. Wer also Interesse hat, kann mir gerne schreiben. Wer dann ganz nett fragt, dem bestücke und teste ich den Programmierer auch noch gegen einen kleinen Obulus in die Bastelkasse.

  • Version 3.0


    Die bisherige ISP-Steckerwanne stellte auf der ansonsten überwiegend mit SMD bestückten Platine das größte Bauteil dar und benötigte dementsprechend (anteilig) viel Platz. Auch ist es sehr unpraktisch für eine einmalige Programmierung ein so großes Bauteil aufzulöten.


    Durch die Nutzung des Tag-Connector Kabels war es möglich, die Steckerwanne gegen einen kleinen Footprint (unten links) zu tauschen. Dadurch konnte die Platine insgesamt leicht verkleinert werden. Weitere Änderungen wurden nicht durchgeführt. Die Platine hat nun in etwa die Maße 58 x 34mm. Eine weitere Verkleinerung wäre nur durch das Entfernen der vier Befestigungspunkte und eine beidseitige Bestückung möglich. Hier sehe ich aber im Augenblick keine Notwendigkeit.


    Auf die Rückseite habe ich eine kurze Beschreibung der LED geschrieben. So hat man immer die Möglichkeit auf die Schnelle zu sehen, was diese oder jene Farbe bedeutet.

  • sorry für OT,


    Ich nutze ja auschliesslich ESP8266-01 und grübel gerade auch einen Adapter zu bauen der einfach steckbrettfreundlicher ist,


    8 Pin DIL 2x4 Fassung im 1/10" Raster mit eingebauten 3,3k pullups, einen low drop Regler mit power on/off Pin und max 3232 für die RS232 Anbindung auf 2 Reihen Stiftleisen die wirklich den Abstand haben um aufs Steckbrett zu passen,


    was denkst du?

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Das sollte machbar sein. Was gibt der MAS3232 denn auf TX aus? 3V3? Ansonsten braucht es noch einen LevelShifter. Ich habe es für RX und TX mit je einem BS138 gelöst. Das schien mir die sauberste Lösung. So hat es der ESP auf allen Pins wirklich nur mit 3V3 zu tun. Wieso willst Du das denn über RS232 lösen und nicht per USB?


  • Das sollte machbar sein. Was gibt der MA (X) 3232 denn auf TX aus? 3V3? Ansonsten braucht es noch einen LevelShifter. Ich habe es für RX und TX mit je einem BS138 gelöst. Das schien mir die sauberste Lösung. So hat es der ESP auf allen Pins wirklich nur mit 3V3 zu tun.


    das ist ja das geniale am MAX3232 der kann zu echten RS 232 Pegeln umsetzten +-10V und gibt auf der TTL Seite das aus mit dem er versorgt wird 3,3V oder 5V je nach Bedarf, so kann ich den am Arduino mit 5V (oder auch 3,3V) betreiben oder am ESP der nur 3,3V mag.


    Nachteilig wäre aber lösbar, der ESP bekommt ja sein Power von einem 4 PIN low drop habe ich schon im Einsatz den ich on und off schalten kann falls der ESP mal abgestürzt ist, aber der MAX3232 mag es nicht wenn seine VCC abgeschaltet wird wenn er an einer echten RS232 hängt, Abhilfe den MAX mit extra 3,3V und 2tem Regler dauerversorgen, dann müsste wieder eine Entkopplung zum ESP erfolgen, das mache ich aber ja immer mit 470 Ohm Serienwiderständen und Ableitdioden BAT42 zu VCC 3,3V in dem Fall.


    Mir ist noch kein Stein irgendeiner Art durch diese Art der Kopplung von 5V nach 3,3V gestorben



    Wieso willst Du das denn über RS232 lösen und nicht per USB?


    weil ich ein RS232 Flasher Tool habe vom PC und echte physikalische RS232 aus dem BIOS schon mit Com1-4 zugewiesenen Ports, ergo nutze ich das um mich nicht immer mit der virtuellen Comzuordnung per USB zu kümmern und diese jedesmal umstellen zu müssen.
    Es gibt so viele SW die mit Ports über 4 nicht zurechtkommt.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Vor einigen Wochen habe ich einen kleinen Adapter entworfen, mit dem es möglich ist, das Breakout Board 2.0B von joh.raspi direkt zu flashen, ohne weitere Kabel anschließen zu müssen.


    Die Vorgehensweise sollte sich aus den Fotos erschließen lassen. Statt eines ESP8266-01 wird der Adapter auf den Programmierer gesteckt. In diesen wird dann das Breakout Board gesteckt. Die Beschriftung des Adapters muss lesbar sein, dann steckt das Breakout Board richtig herum drin.


    Wie immer habe ich mehr Platinen als ich selber benötige. Wer also Bedarf hat, darf sich gerne melden.


  • Vor einigen Wochen habe ich einen kleinen ESP 8266 Adapter entworfen,


    schade, schade, schade


    nur 2x4 zu 1x6!


    ich brauch auch Adpater, aber besser breakboardauglich, 2x4 in 1x8 oder 2x4 mit weiteren Abständen. Dein Platinchen ist nett, und die Fläche hätte ausgereicht um das umzusetzen, aber so.......

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • jar :
    Du solltest den Text aufmerksamer lesen;).
    Das ist ein Adapter für Neueinsteigers PROGRAMMIERADAPTER.
    ...und genau dafür passt er auch:).


    Den Adapter den Du suchst - ich nehme mal an für ESP8266-01 auf Breakboard gibt es natürlich auch.
    Vielleicht fragst du ja mal bei Neueinsteiger nach;).


  • Das ist ein Adapter für Neueinsteigers PROGRAMMIERADAPTER.
    ...und genau dafür passt er auch:).


    dem widerspreche ich nicht!


    Den Adapter den Du suchst - ich nehme mal an für ESP8266-01 auf Breakboard gibt es natürlich auch.
    Vielleicht fragst du ja mal bei Neueinsteiger nach;).


    mache ich danke!



    jar :
    Du solltest den Text aufmerksamer lesen;).


    dito, warum 2 Adapter?
    hättest du genauer gelesen würdest du mich verstehen, es ist genug Platz auf dem Adapter und da hätten auch noch 2 - 4 Löcher mehr raufgepasst für andere Funktion, warum 2 Adapter muss ich mal Neueinsteiger fragen, entweder hisorisch gewachsen, kann passieren, oder zu viel Geld um 2x zu bestellen oder eingene LP Fertigung die ausgelastet werden muss.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

    Edited once, last by jar ().

  • Version 4.0


    Da ich festgestellt habe, dass ich den Zugriff auf die GPIO00 und GPIO02 doch gelegentlich benötige, habe ich die Buchsenleiste wieder hinzu gefügt. Der in Beitrag #6 vorgestellte Adapter ist mit dieser Version nicht mehr notwendig, da ich ihn direkt auf der Platine integriert habe.

  • Version 5.0


    Ich habe die Schaltung um zwei weitere Features ergänzt. Zum einen habe ich den Sockel für einen ESP-07, bzw. ESP-12 nun direkt auf die Platine verlegt, was die Suche nach dem Adapter erspart, wenn man ihn mal benötigt. ;)


    Außerdem habe ich einen Schalter hinzu gefügt, über den es möglich ist, die Spannung an der Buchsenleiste (unten rechts) wahlweise auf 3,3V oder 5V zu legen. Bei der einen oder anderen Schaltung mit dem Breakout Board hatte ich Probleme damit, dass die Spannung des dort aufgesteckten Breakout Boards zu gering war, weil der LDO die anliegenden 3,3V zu weit reduziert hat. Liegen 5V an, hat der ESP auf dem Breakout Bord stabile 3,3V über seinen LDO.

  • Da ein Forumit einen Adapter für einen ESP-03 benötigte, habe ich diesen angefertigt. Die Nutzung ist etwas "tricky", da der ESP-03 keine Reset-Pin hat. Um ihn in den Flash-Modus zu versetzen, muss bereits beim Start GPIO00 mit GND verbunden sein. Da ich dies nicht per Software realisieren kann, muss zum flashen manuell eine Verbindung von GND (unten rechts) und GPIO00 (unten links) hergestellt werden. Somit ist es mit dem Programmierer nun möglich mit diesem Adapter auch ESP-03 flashen zu können.


    Wie immer habe ich mehr Platinen als eigenen Bedarf. Wer also eine Platine benötigt, darf sich gerne per PN melden.

  • Hey ich hab mal ne Frage. Da es indirekt mit deinenm Adapter zu tun hat hoffe ich, dass ich die hier stellen kann.
    Ich habe ja wie du weisst, deinen Adapter auf einem Prototypenboard selber nachgebaut.
    Soweit klappt das auch ganz gut mit dem Attiny. Jetzt würde ich aber gerne die ESPs auch direkt auf dem Board mit ALLEN ihren Pins direkt nutzen und testen können.
    Also auch die Pins die vom Attiny HIGH oder LOW gezogen werden. Hast du eine Idee, wie ich den Attiny einstellen müsste oder was nötig wäre um die ESP-Pins quasi frei zu bekommen ohne dass sie von einem HIGH oder LOW vom Attiny beeinflusst werden?
    Am besten ohne irgendwelche Jumper zu ziehen oder ähnliches. Das wollte ich ja mit dem Attiny grade vermeiden :)

  • Du möchtest den Tiny im Grund vom ESP entkoppeln, nachdem er geflasht wurde?
    Oder anders herum soll er nur dann mit dem Tiny verbunden sein, wenn er geflasht wird? Wie wäre es, wenn Du die Pins des Tiny über Transistoren/FETs/Relais mit dem ESP verbindest und über noch freie Pins des Tiny diese aktivierst, bevor Du den ESP flashen wirst. Nachdem alles auf den ESP geschoben wurde, wird diese Verbindung wieder abgeschaltet. So wäre der ESP dann vom Tiny entkoppelt.

  • das klingt gut. Leider habe ich nur noch den reset Pin am Tiny über. Der sollte aber über D5 nutzbar sein soweit ich das gesehen habe. Richtig?
    Nur für die NeoPixelLib war der irgendwie unbrauchbar.
    Dann muss ich mich jetzt mal mit dem Thema Transistoren/FETs beschäftigen. Hab ich noch nicht mit gearbeitet.
    Danke

  • Das Problem mit dem Reset-Pin ist, dass man den nur einmalig über die Fuses auf einen "normalen" Pin umstellen kann. Ist dann noch ein Fehler in Deinem Sketch, kannst Du den Tiny nicht mehr flashen, da er keinen Reset-Pin mehr hat. Die einzige Möglichkeit wäre, die Fuses mit einem HV Programmer wieder zurück zu stellen. An einer solchen Lösung bastele ich im Moment.

  • Ah I see.
    Gut, das machts schwieriger aber nicht unmöglich. Ich eröffne hierfür mal ein eigenes Thema. Will nicht den Thread damit vollspammen!
    Danke erstmal.

    Edited once, last by DerMega ().

  • Das in #14 erläuterte Problem, dass es nicht ganz so einfach ist, den ESP-03 in den Flashmodus zu bekommen, habe ich durch einen Schalter gelöst. Schalter nach rechts "Flashmodus", Schalter nach links "normaler Modus". Damit lässt er sich sehr bequem flashen.


    Wer Interesse an der Platine hat, darf sich gerne melden, da ich mehr Platinen als eigenen Bedarf habe.