Sonoff mit ESP8266 flashen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • [Gelöst]Vollständige Zusammenfassung, Lösung bzw. Tutorial hier:

    Sonoff mit ESP8266 flashen


    Mahlzeit, ich wollte heute meinen Sonoff POW mit dem ESP8266EX flashen, das ist der hier:
    https://www.itead.cc/wiki/Sonoff_Pow
    Leider finde ich nirgens eine Pinbelegung Tx und Rx.
    Den Beitrag von meigrafd habe ich hier auch schon gelesen:
    ESP8266 + RaspberryPI
    Jedoch habe ich nur 4 Pins und einen Taster auf dem Modul.
    Die äusseren 2 Pins sind mit Vdd und GND bezeichnet, die beiden in der Mitte haben jedoch keine Bezeichnung.

    (Erledigt)
    1. Hat einer von euch das gleiche Teil und weiss welcher Pin Tx und Rx ist ?
    Pin 1 bis 4 VCC, RX, TX, GND.

    Zur Firmware:

    (Erledigt)
    2. Welche Firmware soll ich für das Teil nehmen, oder ist das egal ?
    Ich möchte mein WLAN-Passwort ja nicht in der Chinacloud speichern.
    Wenn ja, würde ich ESPEasy nehmen:
    https://blog.moneybag.de/espeasy-admini…r-iot-und-fhem/
    Espurna ist viel besser für den POW:
    https://bitbucket.org/xoseperez/espurna/overview

    P.S. Wie kann man eigentlich Bilder hochladen ?
    Ich habe nur die Möglichkeit, eine URL zu einem Bild anzugeben. :s

    MfG

  • Es gibt einen Link auf das Schaltbild.
    Wenn die Zeichnung auf Seite 2 korrekt ist, ist Pin 1 bis 4 VCC, RX, TX, GND.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (19. April 2017 um 12:44)


  • Servus,
    Du brauchst zum Flashen allerdings noch GPIO00 ... der ist in der Schalte als E_FW bezeichnet
    cu,
    -ds-


    Ist das nicht der Taster in der Mitte, der auch zum manuellen schalten der Last dient ?
    Soweit ich gelesen habe, muss man den Taster gedrückt halten und dann 3,3 Volt anlegen, damit ich ihn flashen kann.
    Also Taster gedrückt halten, Strom drauf geben, Taster loslassen, oder nicht ?

  • Ups ... kann ich nicht sagen, so genau habe ich mir das jetzt nicht angeschaut.
    Bei meinen ESPs muss der Pin vor dem Einschalten/Reset auf LOW gelegt werden und während des Flashens auch LOW bleiben ...

    //EDIT: Taster drücken und loslassen klingt für mich eher nach RESET ...

    cu,
    -ds-

  • Ja, auf dem Schaltbild auf Bild 2 links unten sieht man den E-FW, das ist der einzige Taster den ich auf dem gesamten Schaltbild sehen kann.
    https://www.itead.cc/wiki/images/5/…W_Schematic.pdf
    Und auf dem Modul gibts auch nur einen Taster, das ist der zum manuellen Schalten ohne WLAN im Anwendungsmodus.
    Das wird wohl der GPIO0 sein.


  • Doch, da ist eine FW drauf, die schickt mein WLAN-Passwort und SSID auf eine China-Cloud, das möchte ich vermeiden.
    Es gibt ja schon einiges an Firmware, da brauche ich das Rad ja nicht neu erfinden.

    du willst genau was ich will aus den gleichen Gründen

    mir fehlt auch noch der Weg

    Sonoff ESP liegt hier,
    Stiftleiste ist bestückt,
    USBser ist dran

    und nun hänge ich

    welche FW woher, ich muss nicht FEHM, ich will einfach nur selber den in mein wlan integrieren ohne obskures FremdServerGedöns

    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)

  • Hm, das EasyESP werde ich mal probieren, wenn ich heute Abend noch dazu komme.
    Aber ich glaube nicht, dass das heute noch was wird, ich muss ja noch Adolfs Geburtstag feiern Rennen fahren:
    http://www.altbierbude.de/images/events/Vorschau/D.jpg

  • Mir stellt sich halt die Frage inwiefern das mit der Schalterei mit einer anderen Firmware noch funktioniert ...
    Da sind ja der eine oder andere GPIO des ESP involviert ... woher soll z.B. EasyESP wissen, an welchem Pin welches Signal wann und wie lange anliegen muss? :s

    Ok ... ich hab' jetzt keine Ahnung, wie z.B. diese EasyESP Firmware aufgebaut ist ...

    Aber ob das alles dann so oob wie gewünscht funktioniert?

    cu,
    -ds-

  • Schau dir mal dieses Video an.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Oder das hier.

    http://rutg3r.nl/sonoff/

    Einmal editiert, zuletzt von YellowForest12781 (20. April 2017 um 16:09)

  • Das ist ein zwar ein anderer ESP und der flasht mit einem Windows-Rechner, aber das Prinzip ist das gleiche.
    Ich habe jetzt in /boot/config.txt ein enable_uart=1 eingetragen und neu gestartet.
    Mein Pi scheint den Peak nicht zu verkraften, wenn ich den ESP an die 3,3V anstecke, ich bekomme einen Freeze.
    Also Pi runterfahren, ESP mit gedrückter Taste anstecken, Pi gestartet und mit:

    Code
    sudo /usr/bin/python3 /usr/local/bin/esptool.py -p /dev/ttyAMA0 --baud 9600 write_flash --flash_size=detect 0 /opt/Espressif/ESP8266_SDK/bin/ESPEasy_R120_1024.bin


    Und bekomme eine Fehlermeldung:

    Code
    Timed out waiting for packet header


    Liegt vllt. an der falschen Baudrate, also mal mit 115200 probiert:

    Code
    Resource temporarily unavailable


    Mit 921600:

    Code
    device reports readiness to read but returned no data (device disconnected?)


    Mit 57600:

    Code
    Timed out waiting for packet header


    Mit 230400:

    Code
    Timed out waiting for packet content


    Mit 74880:

    Code
    Type Error: integer argument expected, got float


    Das spricht alles sehr für einen Mangel an Power auf der 3,3V Seite, oder ?

  • Hallo Fred0815,

    ich lasse mich da gern eines besseren belehren - aber mir ist neu, das das Device /dev/ttyAMA0 (die UART-Schnittstelle des RPi über GPIO14 und GPIO15) einige der von Dir gewählten Baudraten unterstützt:

    • 921600
    • 230400
    • 74880

    Wenn überhaupt sind das SPI-typische Baudraten (die beiden höheren). Die UART-Schnittstelle unterstützt nur bis 115200 Baud. Und auch das nur, wenn die Kabel nicht zu lang sind, kein Störfeld dazwischenfunkt. Ansonsten ist die Übertragung fehlerhaft.

    Einen Teil der Fehlermeldungen deute ich so, dass ein anderer Prozess die serielle Schnittstelle blockiert. Der erste Prozess, der die serielle Schnittstelle anspricht, blockiert den Zugriff für andere. Im besten Fall kann ein anderer Prozess mithören. Die empfangenen Daten teilen sich aber beide Empfänger - bei beiden kommt dann Bandsalat an.

    Eine andere Fehleremeldung deutet darauf hin, dass zwar was gesendet aber nichts geantwortet wurde, was zu einem Timeout führt. Entweder hat der Empfänger nur "Bahnhof" verstanden und antwortet deswegen nicht. Oder ... das Kabel hast Du richtig verbunden - Pegel passt - gemeinsame Masse vorhanden?

    Wenn Du auf der Seite RPi eine Baudrate setzt - musst Du sie auf der anderen Seite nicht auch setzen? Oder findet die andere Seite das automatisch heraus?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (21. April 2017 um 10:01)

  • Mein Fehler, man sollte schon zuvor die console deaktivieren, dann klappts auch mit dem flashen. :auslachen:
    In cmdline.txt den Teil rausgeworfen:

    Code
    console=ttyAMA0,115200


    In /etc/inittab den Teil auskommentiert:

    Code
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


    Neustart, dann:

    Code
    sudo /usr/bin/python3 /usr/local/bin/esptool.py -p /dev/ttyAMA0 --baud 115200 write_flash --flash_size=detect 0 /opt/Espressif/ESP8266_SDK/bin/ESPEasy_R120_1024.bin


    P.S. Beim Pi3 ist die UART nicht AMA0, ich habe aber mit dem Pi2 geflasht.

Jetzt mitmachen!

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