NodeMCU Taktfrequenz

Hallo, ich mach gerade meine ersten Gehversuche mit einer NodeMCU. Die Arduino IDE bietet ja diverse Einstellungsmöglichkeiten. Aber ich weis gar nicht was meine NodeMCU kann (AMICA Chip ist ES8266mod). Die Größe des Flash habe ich ja über ein Testprogramm rausbekommen (4M). Aber welcher Takt ist richtig. Ob ich in der IDE beim Upload 80 oder 160Mhz angebe macht bisher keinen Unterschied. Eine Sekunde ist bei Messung eine Sekunde. Scheint auf beiden Einstellungen zu funktionieren.

Gruß Ulli

Default ist 80MHz. Reicht auch meist.

Bein 160MHz ist der Stromverbrauch deutlich höher.

Bei rechen intensiven Programmen, kleine Codestrecken, viel Arbeit, mag sich das bemerkbar machen. Bei Flash intensiven Programmen macht sich das eher weniger bemerkbar, da das Flash nicht schneller wird.

Die Größe des Flash habe ich ja über ein Testprogramm rausbekommen (4M).

Alle NodeMcu haben 4MByte Flash.

Per Software kann man herauskommen, welcher Flash Baustein unter dem Deckel sitzt. Evtl. kann man den Flash Takt von 40MHz auf 80MHz anheben.

Vielen Dank für die Info. Das Teil ist ja klasse gerade in Verbindung mit der Arduino-IDE.

Erstaunlich das die ganzen Libs mitspielen. Ich denke mal für hardwarenahe Dinge wird es Speziallibs geben.

Noch eine Frage, was heißt den bei den Flasheinstellungen (4M 1M SPIFFS) oder (4M 3M SPIFFS) ?

Und auch Debugport ? Ich kann ja normal mit "Serial.print" arbeiten. Ist der Debugport für interene Traces ?

Ich bin lästig : Was ist die IWP-Variante ?

Als Board habe ich Nodecpu 1.0 gewählt, das es klappt scheint es richtig zu sein.

Noch mal vielen Dank Ulli

SPIFFS

SPI -- FFS

Ich rate dir zu 4M (1M SPIFFS) so bleibt immer genug Platz für OTA Update.

Und auch Debugport ? Ich kann ja normal mit "Serial.print" arbeiten. Ist der Debugport für interene Traces ?

Die 2te Serielle Schnittstelle, nur Tx kein Rx "Serial1.print"

Die kannst du beliebig nutzen, auch für Debugzwecke.

Ich bin lästig : Was ist die IWP-Variante ?

IwIP

Nachtrag: Arduino ESP8266 filesystem uploader Arduino ESP8266/ESP32 Exception Stack Trace Decoder

Der Filesystemuploader ist grottenlahm, weil er immer das gesamte SPIFFS über COM beschreibt. Deshalb habe ich mir einen Upload übers WLAN gebaut. Der ist wesentlich schneller.

Der Exception-Decoder ist ein MUSS.

Gruß Tommy

Vielen Dank für die vielen ESP-Einsteigerinfos

Ulli

Aber warum muss ich die DebugSchnittstelle beim Board angeben ? Ich brauche doch im Sketch einfach nur Serial1 nehmen !?

Ulli

Ich verspreche das ich mich ab morgen über die reichhaltig vorhanden Quellen selber informieren werde, aber ein Frage liegt mir noch spontan auf dem Herzen.

Ich hatte bisher mit den ESPs Erfahrung mit Arduinos und Verbindung über das serielle API.

Ist die Firmware auf dem ESP der NodeMCU eine gänzlich andere oder gibt es dort das serielle Api auch noch irgendwo ? Oder andersherum : Kann ich eine Software die ich für die NodeMCU gebaut habe auch auf einen "normalen" ESP bringen ?

Ulli

Die Arduino IDE plättet die originale NodeMcu Firmware vollständig. Damit wird der NodeMCU zu einem "normalen" ESP!

Das würde ja heißen ich kann den die NodeCPU über den Seriellen Monitor mit AT-Kommandos ansprechen. Aber das kann ich nicht ! Und die erste Software die gerade auf dem Dingen eine Digitaluhr mit NTP-Verbindung spielt sendet auch keine AT-Kommandos irgendwo hin.

Ulli

beeblebrox: Das würde ja heißen ich kann den die NodeCPU über den Seriellen Monitor mit AT-Kommandos ansprechen. Aber das kann ich nicht ! Und die erste Software die gerade auf dem Dingen eine Digitaluhr mit NTP-Verbindung spielt sendet auch keine AT-Kommandos irgendwo hin.

Nein, denn auf dem NodeMcu läuft keine AT Firmware, bei der Auslieferung, sondern ein Lua Interpreter.

Also Ja, du kannst per Serieller Konsole mit dem Interpreter interagieren, aber AT Commands versteht es von Hause aus nicht.

Aber du kannst die AT Firmware auf jeden NodeMcu drauf spielen, wenn du scharf darauf bist. Denn der NodeMcu ist auch nur ein ESP8266. Ein ganz normaler.

Vielen Dank bis hier erst mal.

OK,

also in welchen Zustand hat jetzt die Arduino IDE die NodeMCU versetzt ?

Ulli

Welche Zustände gibts denn deiner Ansicht nach?

So, langsam werde ich warm mit dem Teil. Auch meine alten ESP-Platinchen (nicht NodeMCU) kann ich inzwischen von der Arduino IDE Flashen und die tun was sie sollen.

Ich habe nun noch eine Frage zu Memorylayout von den Teilen. So richtig haben mich die Infos die ich gegoogled habe noch nicht zufrieden gestellt.

Der Esp hat nach meinen Infos 64KB Ram für Code und 96 für Daten. Dazu Unmengen (je nach Typ unterschiedlich viel Flash).

Wenn ich ein Programm von der Ide hochlade muss es ja im Flash landen (sonst wäre es ja nicht dauerhaft). Wird es dann im Flash ausgeführt oder beim Boot ins Ram geladen ?

Was kann ich mit dem vielen Flash anfangen. Ok schon gelesen das es ein Filesystem darin gibt. Ich nehme stark an das es auch eine Lib gibt um auf das FS zuzugreifen. Ist das FS von meiner Applikation beschreibbar ? Kann man Programme nachladen ? Oder große Programme direkt aus dem Flash ausführen ? (wofür dann das ProgrammRam ?)

Wie gesagt die ganze Memorymap ist mir nicht so ganz klar.

Ulli

ja du kannst in deinem Programm auf das Filesystem zugreifen, Dateien schreiben, lesen, renamen löschen. Suchwort "SPIFFS".

weiters kannst du das ding über WLAN flashen. Suchwort "OTA".

Entweder Upload durch den NodeMCU anstoßen (z.B. durch Klick auf einen Button in deiner Webkonsole) und/oder direkt in der ArduinoIDE nach Installation einiger Dinge. Siehe https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme.html ... dort gibts auch eine knappe Erklärung zum Memory am Ende der Seite

In den Programm-RAM werden die Flash-Programm-Teile aus dem externen (seriellen SPI) Flash eingeblendet, die gerade ausgeführt werden.

Es gibt noch einen speziellen Programm-RAM-Bereich (Stichwort: ICACHE_RAM_ATTR). Der ist für Interruptroutinen gedacht, damit die immer verfügbar sind.

Gruß Tommy