Nabend,
mit welchem Tool programmiert und flasht ihr esp2866-module (NodeMCU,
also über usb)?
Alles was ich bisher gefunden habe, ist dass ich mir die Arduino IDE
installieren muss.
Gibt es keine möglichkeit ein Addon oder so in AtmelStudio zu
installieren?
Würde ungern extra nur dafür die Arduino IDE installieren.
Frank
Das Atmel Studio untestützt nur Atmel Mikrocontroller. Der ESP8266 ist
von Espressif und enthält eine CPU von Tensilica. Wenn Du Dir die Doku
zum entsprechenden SDK anschaust wirst du sehen, dass es entsprechende
Plugins für Eclipse gibt.
Mit Arduino ist die Programmierung aber einfacher.
Hallo,
habe mir jetzt Microsoft Visual Code und plattformio installiert und
zunächst den blink-code erstellt
1
#include <Arduino.h>
2
3
void setup() {
4
// put your setup code here, to run once:
5
pinMode(13, OUTPUT);
6
}
7
8
void loop() {
9
// put your main code here, to run repeatedly:
10
digitalWrite(13, HIGH);
11
delay(1000);
12
digitalWrite(13,LOW);
13
delay(1000);
14
}
Allerdings bekomme ich den esp nicht geflasht. Verbunden habe ich den
NodeMCU mit usb an COM3 mit dem PC verbunden.
Bekome den output
Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2;
framework: arduino)
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION:
https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder ->
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 26 compatible libraries
Scanning dependencies...
No dependencies
Retrieving maximum program size .pioenvs\nodemcuv2\firmware.elf
Checking size .pioenvs\nodemcuv2\firmware.elf
Memory Usage ->
DATA: [=== ] 34.2% (used 28000 bytes from 81920 bytes)
PROGRAM: [== ] 23.7% (used 247912 bytes from 1044464 bytes)
Configuring upload protocol...
Looking for upload port...
Auto-detected: COM3
Uploading .pioenvs\nodemcuv2\firmware.bin
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
*** [upload] Error 2
Aber das bisschen brauch schon 247912 bytes? Das finde ich eigentlich
ganz schön viel. Mal schaun wie weit ich da mit meinem Programm komme
Dieses Problem habe ich hinbekommen. hatte noch einen Arduino am PC
angeschlossen, welcher am COM3 hing. konnte ich nicht flashen.
Aber dann ist mir ein neues Problem aufgekommen. Und zwar den serial
Monitor
Dazu lasse ich mir im Code (anstelle von die LED blinken) "HIGH" und
"LOW" ausgeben.
Wenn ich PlatformIO: Serial Monitor anklicke, bekomme ich folgende
Meldung
> Executing task in folder ESP_1: C:\Users\.platformio\penv\Scripts\platformio.exe
device monitor <
could not open port '/dev/ttyUSB1': could not open port '/dev/ttyUSB1':
WindowsError(3, 'Das System kann den angegebenen Pfad nicht finden.')
The terminal process terminated with exit code: 1
Wenn ich Debugg starte, bekomme ich ein Error
> Executing task in folder ESP_1: C:\Users\.platformio\penv\Scripts\platformio.exe
debug <
Error: Currently, PlatformIO does not support debugging for `NodeMCU 1.0
(ESP-12E Module)`.
Please contact support@pioplus.com or visit <
https://docs.platformio.org/page/plus/debugging.html >
The terminal process terminated with exit code: 1
Dort ist der Fehler eigentlich klar beschrieben ( also das kein
debugging unterstützt wird). Aber im Internet gibt es Beispiele, wo die
es benutzen.
Einige male, wurde eine android.json angepasst. Diese existiert in
meinem Projekt allerdings gar nicht.
Frank schrieb:> could not open port '/dev/ttyUSB1': could not open port '/dev/ttyUSB1':> WindowsError(3, 'Das System kann den angegebenen Pfad nicht finden.')
Das ist auch für Linux. Du hast nach eigenem bekunden COM3 und nicht
dev...
Du musst vmtl. einiges in der "platformio.ini" für dein Projekt
anpassen.
"upload_port = COM3"
für den Comport deines Nodemcu.
"upload_speed = 115200" , ist vmtl. default
"upload_resetmethod = nodemcu"
stellt ein, ob dein Board per DTR-Gewackel einen reset-auslösen kann,
und wie. Wenn du "board = nodemcuv2" gesetzt hast, sollte das auch
default sein.
ähnlich:
"monitor_port = COM3" für den Seriellen Monitor. /dev/ttyUSB1 wäre für
Linux...
"monitor_speed = 115200", oder was du in deinem Sketch konfiguriert
hast.
Wegen dem Speicherplatz-Bedarf: Da ist ja auch das ganze Wlan-drumherum
mit dabei, das wird jedesmal mitkompiliert und hochgeladen.
Du kannst mit platformio statt
platform = espressif8266
framework = arduino
auch z.B. mit
framework = esp8266-nonos-sdk
"auf dem blankem Metall" arbeiten, da hast du mehr Kontrolle über das,
was am Schluss im Chip landet. Aber auch weniger Easy-to-use
vorbereitete Libraries.
Stefanus F. schrieb:> Das Atmel Studio untestützt nur Atmel Mikrocontroller. Der ESP8266 ist> von Espressif und enthält eine CPU von Tensilica. Wenn Du Dir die Doku> zum entsprechenden SDK anschaust wirst du sehen, dass es entsprechende> Plugins für Eclipse gibt.>> Mit Arduino ist die Programmierung aber einfacher.
Falsch.
esp-idf bietet das Flashen mit einem Befehl an, zudem ist das ganze
aufgebaut auf FreeRTOS und sehr angenehm zu programmieren.
Debuggen ist auch kinderleicht. Macht das mal einfach mit Arduino.
Kannst du vergessen. Genauso wie die Nutzung einer anständigen IDE, so
kannst du einfach in eclipse ein Projekt einbinden und fertig aus...
Frank schrieb:> Aber das bisschen brauch schon 247912 bytes? Das finde ich eigentlich> ganz schön viel. Mal schaun wie weit ich da mit meinem Programm komme
Das ist normal, der größte Teil davon ist der von Espressiv
bereitgestellte Firmwarekern in binärer Form. Da kenn man halt nichts
weglassen auch wenn Funktionen für das eigene Projekt nicht benötigt
werden.
Mit dem schreiben eigener Programme wächst der Speicherbedarf dann in
üblichen Größenordnungen.
Sascha
Frank schrieb:> Aber das bisschen brauch schon 247912 bytes? Das finde ich eigentlich> ganz schön viel.
Ca. 250 Kilobytes gehen für die Basis Firmware des Chipherstellers
drauf, da sind die ganzen WLAN spezifischen Funktionen drin. Mache Dir
keine Sorgen, den Rest bekommt man nicht so schnell voll.
> /dev/ttyUSB1
So benennt Linux die USB-UART Adapter. Unter Windows heissen die Ports
COMx. Das musst du irgendwo einstellen.
Bezüglich des Debuggings: Soweit ich weiß hat der ESP8266 keine
Debugging Schnittstelle. Du kannst nur Texte auf dem seriellen port
ausgeben.
Die unterstützten Plattformen von PIO kannst du hier sehen:
https://docs.platformio.org/en/latest/plus/debugging.html
Platformio schrieb:> Du musst vmtl. einiges in der "platformio.ini" für dein Projekt> anpassen.
Danke für den Hinweis. Das hat mir sehr geholfen
Platformio schrieb:> Wegen dem Speicherplatz-Bedarf: Da ist ja auch das ganze Wlan-drumherum> mit dabei, das wird jedesmal mitkompiliert und hochgeladen.>> Du kannst mit platformio statt>> platform = espressif8266> framework = arduino>> auch z.B. mit> framework = esp8266-nonos-sdk>> "auf dem blankem Metall" arbeiten, da hast du mehr Kontrolle über das,> was am Schluss im Chip landet. Aber auch weniger Easy-to-use> vorbereitete Libraries.
Das werde ich später in Angriff nehmen :)