Erweiterungsboard für ESP8266 (Ideensammlung)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich möchte in diesem Thread ein paar Ideen zusammen tragen, um ein Erweiterungsboard für den ESP8266-12(F) zu entwerfen. Dreamshader hatte die Idee, den ESP um weitere digitale I/O und vor allen Dingen analoge Eingänge zu erweitern.

    Die Hardwareseite sähe nach den ersten Überlegungen so aus:

    MCP23S17
    Stellt über den SPI Bus 16 weitere digitale I/O zur Verfügung

    MCP3208
    Stellt über den SPI Bus 8 analoge Eingänge mit 12 Bit zur Verfügung

    ADR366BUJZ
    3,3V Spannungsreferenz für den MCP3208 um möglichst exakte Ergebnisse zu erhalten (die 12 Bit sollen ja schließlich sinnvoll genutzt werden undefined )
    Beim LDO schwanke ich noch etwas, tendiere aber zum AMS1117-3.3, da er günstig und robust ist.

    Als Eingangsspannungsquelle könnte ein 5V Ladegerät dienen, dass über eine Micro-USB-Buchse angeschlossen wird. Man könnte überlegen, sowohl die Eingangsspannung als auch die 3,3V für externe Baugruppen zur Verfügung zu stellen, sofern diese keinen zu hohen Strombedarf haben.

    Hättet ihr vielleicht noch weitere Ideen, oder andere/bessere Bauteilvorschläge?

    ======================================================================

    edit:
    Der aktuelle Stand der Ideensammlung:

    Die Ansteuerung erfolgt nun doch über I²C. Die benötigten ICs sind:
    MCP 23017
    ADS1115 (evtl. 2 Stück, a 4 Eingänge)

    Weitere Features:
    - es wird ein Footprint sowohl für den ESP8266-01 als auch den ESP8266-12(F) vorgesehen
    - es wird ein Jumper (RM 2,54mm) vorgesehen, mit dem es möglich sein wird, GPIO16 mit RST zu verbinden, um deep sleep wakeup zu aktivieren
    - die Stromversorgung erfolgt über eine Micro-USB-Buchse
    - die Schaltung wird mit 5V betrieben und per Level Shifter mit dem ESP8266 verbunden
    - alle I/O werden im 2,54mm RM zur Verfügung gestellt
    - die I/O B06 und B07 erhalten (analog zum Arduino D13) eine LED zur Visualisierung

  • Ja super ...
    Wär schon genial, weil es dann vielleicht möglich ist das 2.4" TFT mit Touch-Funktionalität anzuschliessen - ich weiss im Moment nur noch nicht wie :) ...

    Ich bin da im Moment allerdings noch etwas unschlüssig und schwanke zwischen SPI und I2C ...
    I2C hätte den Vorteil, dass es möglich wäre auch einen ESP-01 "aufzupeppen" ... SPI bekommst Du auf dem wegen eines fehlenden I/Os nicht zum Laufen. So ein kleiner 2x4 Buchsenblock müsste doch zwischen die Anschlussreihen des ESP-12 passen, oder?
    Wenn der ESP-12 dann auch steckbar ist, hätte man die Möglichkeit evtl.Altlasten in Form von ESP-01 Modulen zu verbauen.
    Müsste doch gehen, oder habe ich da einen Denkfehler drin?

    cu,
    -ds-

  • Hallo,
    soll die Erweiterungsplatine dann auch den ESP mit Strom versorgen, oder soll das als eine Art Shield aufgesetzt werden?
    Wenn die Platine schon extra Spannung braucht, dann wäre es in jedem Fall sinnvoll, wenn auch 3,3V für den ESP abfallen würden.
    Gruß
    Chris

  • Mir persönlich wäre I²C auch lieber, da ich die MCP23017 (also die I²C Version) noch vom Relaisplatinen-Projekt hier liegen habe. Nur habe ich bisher keinen 12 Bit A/D Wandler gefunden, der per I²C angesprochen wird. Aber vielleicht haben andere Forumiten eine Idee?

    Den Sockel sowohl für den ESP-12 als auch ESP-01 vorzusehen wird kein Problem sein denke ich.

    chris
    Die Platine wird über den LDO auch den ESP mit Strom versorgen. Es soll kein Shield werden. Wobei ich schon die Idee hatte, das Format eines Arduino-UNO zu wählen und statt des ATmega den ESP-12 (oder -01) zu verwenden. Aber das war nur ein bisschen rumgesponnen und passt auch mit der Anzahl der I/O nicht überein.

  • ADS1115 hört sich sehr gut an. Nur die Geschichte mit dem Multiplexing will sich mir noch nicht erschließen...
    Ich habe mal nach dem Käfer gesucht, aber keine wirklich günstige Quelle gefunden. Daher habe mir ein paar der fertigen Boards geordert. Die werden dann entweder direkt auf der Platine aufgelötet oder senkrecht gesteckt. Da muss ich mal schauen, wie groß sie sind und wie es passt. Oder aber ich entferne den Käfer von der Platine und baue ihn dann in die Schaltung ein.

    Die Spannungsversorgung der I²C Bauteile werde ich mit 5V vorsehen. Die Anbindung (SDA, SCL) an den ESP werde ich über einen Level-Shifter vornehmen.

    Fliegenhals: Wie schon geschrieben, habe ich von den MCP23017 einige hier liegen. Daher würde ich diesen bevorzugen. Danke für den Link. Da sind ja mal richtig interessante Sachen...

    edit: Ich habe in elektor 12/2014 auf Seite 40/41 einen Artikel zu dem ADC gefunden. Ich werde die externe Beschaltung so vornehmen, wie es die elektor-Autoren im Schaltplan gemacht hat. Wegen des Copyrights darf ich den Artikel hier nicht einstellen.

  • 1/10" 2,54mm wäre nett, gibt ja auch andere Raster ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Sorry, ich bin der letzte, der irgendwelchen Enthusiasmus bremsen will, aber!

    Ich liebe dieses Ding selbst und setze es dauernd an den krudesten Ecken bei der Haussteuerung ein. Weil es eigentlich so einfach ist. Aber dann leider doch nicht, was die Programmierung betrifft.

    Eigentlich ist es die perfekte "Einstiegsdroge" in Sachen µC. Es ist ja nicht einmal einer.

    Als ich "dreamshader"s Beitrag gelesen habe, dachte ich zuerst an Satire und dann an seinen Namen, ernsthaft mal.

    Der Reihe nach...
    - Energieversorgung via 5V Handy-Netzteil und Micro-USB ist ein must heutzutage, einfach weil man die Dinger aus China zu Cent-Preisen nachgeschmissen bekommt
    - I²C oder SPI ist quasi auch Pflichtprogramm, und dann bitte auch 2x oder 4x out
    - ein bis zwei Ports, an die man direkt Kontroll-LEDs klemmen kann, schaden nicht
    - alle anderen Ports samt 5V, 3,3V und GND auf ein Breakout mit 1/10"-Raster zu schieben, freut die Bastler wie mich. Ein hochgesteppter 12V-Pin mit wenigstens 0,3 A zeugt von Luxus, ein -12V-Pin ist der Sahneklecks, alle Sensoren freuen sich

    Bei der ganzen Sache fehlt aber: die Software. Die IDE. Die Bibliotheken. Und der einfache Anschluss an den PC oder wenigestens eine Bib, mittels der man das Ding von einem anderen µC aus schiessen kann. Und zwar sicher bei jedem Neustart.

    Ich benutze einen ESP8266 etwa, um eine zerlegte Fernbedienung einer Leuchten-Fernsteuerung anzutriggern. Das war quasi das letzte Halbjahr meines Lebens, bis ich das auf die Reihe bekommen habe. Einfach weil die Programmierung so **** ist. Bis ich meinem RPi beigebracht hatte, den ESP mit Code zu beschiessen: graue Haare galore. Die Tuts sind gut, aber eben nicht perfekt: die Lernkurve ist extrem steil.

    Der ESP ist ein cooles, kleines Ding. Man muss ihm aber nicht gleich die Quadratur des Kreises, ein TFT, eine ganze Haussteuerung, den Warp-Antrieb und die Rettung des Universums zumuten...

    Die Ultra-Freaks werden jetzt vielleicht sagen, pah, was laberst du, Alter, das ist doch alles Kinderkram, ich kann das aus dem Handgelenk. So lesen sich manche Debian-Man-Pages und Inline-Kommentare etwa im "systemd" Source auch. Manche Menschen behaupten ja, dass es auch andere Menschen gibt... Klingt freaky, aber angenommen, so ist es..? Dann ist es immer noch super, eigene Projekte durchzuziehen, sobald die kritische Masse erreicht ist. Schade ist halt, wenn der Rest dabei einfach ignoriert wird, der nach einiger Zeit vielleicht beitragen kann - wenn er denn mitgenommen wird. Erfordert das Eingehen auf andere Menschen mit anderen Denkweisen -- so war ja mal vor langer Zeit der Open-Source-Gedanke.

    "Wer nur Nägel kennt, hält jedes Stück Materie für einen Hammer."
    (einschließlich mir)

    Einmal editiert, zuletzt von R2Pi (2. August 2016 um 22:00)


  • ...
    Einfach weil die Programmierung so **** ist. Bis ich meinem RPi beigebracht hatte, den ESP mit Code zu beschiessen: graue Haare galore.
    ...

    ???

    Du nutzt nicht die Arduino-IDE?
    Die kann mit sehr wenig Aufwand auch den ESP8266 supporten.
    Und läuft unter Windows als auch unter Linux. Per seriellem USB2Seriell-Adapter ist die Programmierung sehr simpel. :angel:

    Das dürfte sogar mit dem RP gehen...

    Berichte doch bitte, warum du offenbar so große Probleme hast.
    Man(n) muß ja nicht alle Haare opfern :lol:

    das Zen

  • R2Pi
    Dem Wunsch nach +-12V könnte ich zumindest optional nachkommen, in dem ich einen DC-DC Wandler vorsehe: http://www.reichelt.de/DC-DC-Wandler-…SIM2-0512D+SIL7
    Was genau meinst Du mit 2x oder 4x out von I²C oder SPI?
    Wie meinst Du das mit der Kontroll-LED? Soll die einfach parallel zum Ausgang geschaltet sein? Kann ich machen. Beim Arduino liegt die LED auf dem letzten I/O. So würde ich es dann auch machen.
    Die I/O wollte ich sowieso auf 2.54mm RM legen. Wie genau das zeigt sich dann beim Layout.

  • Ich habe angefangen, den Schaltplan zu zeichnen. Bisher sind der ADS1115, der MCP23017, die Spannungsversorgung und der I²C Levelshifter mit entsprechender Peripherie gezeichnet. Wer noch weitere Ideen/Wünsche hat, kann sie gerne noch schreiben.

    Eine Frage zum MCP23017 habe ich noch: Wieviele der I/O wollt ihr ausgeführt haben? Reichen 8 oder soll ich 16 nehmen?

    edit: Feddisch! Da sich R2Pi seinerzeit auf meine Fragen nicht mehr gemeldet hat, werde ich seine Vorschläge nur zum Teil umsetzen.

    Vom MCP23017 habe ich nun alle 16 I/O genommen. Der ADS1115 ist nur einmal vorhanden. Aber 4 analoge Eingänge sollten auch erst einmal reichen, denke ich. Wie im ersten Beitrag geschrieben, habe ich parallel zu PB6 und PB7 eine kleine LED vorgesehen. Das Hühnerfutter ist überwiegend in 0805 ausgeführt. Nur wo es nicht anders passte habe ich 0603 genommen. Im nächsten Schritt werde ich versuchen ein vernünftiges Layout hin zu bekommen.

    edit2: Auch das Layout ist nun fertig. Die Platine misst etwa 37mmx87mm
    edit3: Layout leicht verändert. Die Maße sind geblieben.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!