Sonoff mit ESP8266 flashen

  • [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:
    http://www.forum-raspberrypi.d…-uart-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/espea…sp8266-fuer-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!

    Edited once, last by Gnom ().


  • 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/imag…/Sonoff_POW_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.


  • 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 am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • 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-

  • 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
    1. 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
    1. Timed out waiting for packet header


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

    Code
    1. Resource temporarily unavailable


    Mit 921600:

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


    Mit 57600:

    Code
    1. Timed out waiting for packet header


    Mit 230400:

    Code
    1. Timed out waiting for packet content


    Mit 74880:

    Code
    1. 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

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    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.

    Edited once, last by Andreas ().

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

    Code
    1. console=ttyAMA0,115200


    In /etc/inittab den Teil auskommentiert:

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


    Neustart, dann:

    Code
    1. 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.