Forum: Mikrocontroller und Digitale Elektronik esp2866 nur über Arduino IDE?


von Frank (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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.

von Platformio (Gast)


Lesenswert?

installier dir plattformio https://platformio.org/

(entweder mit Atom-Texteditor oder mit Microsoft Visual Code)

von Frank (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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.

von Lutz (Gast)


Lesenswert?

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

von Platformio (Gast)


Lesenswert?

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.

von Egon N. (egon2321)


Lesenswert?

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

von Sascha W. (sascha-w)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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 :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.