Arduino UNO WiFi - OTA und Wifi Console?

Hallo,

ich habe zwei Arduino Uno Wifi und versuche schon tagelang über das Programm Atom mit der Erweiterung PlatformIO per OTA mein Programm hochzuladen und über die Wifi Console zu debuggen.

Allerdings hat bis jetzt nichts so richtig funktioniert. Das einzige was geht, ist mit der Arduino IDE mein Programm hochzuladen, aber nicht mit PlatformIO.

Darum zwei allgemeine Fragen:

  1. Ist es grundsätzlich möglich mit einem Arduino Uno Wifi mit PlatformIO hochzuladen? (Mit der Arduino IDE hat es ja funktioniert)
  2. Ist es möglich den Konsolen-Output über Wifi zu sehen?

Bitte klärt mich auf - wahrscheinlich verstehe ich hier irgendwas falsch :-/

Vielen Dank schonmal!! :slight_smile:

  1. Ist es grundsätzlich möglich mit einem Arduino Uno Wifi mit PlatformIO hochzuladen? (Mit der Arduino IDE hat es ja funktioniert)

Auch wenn ich wenig Erfahrung mit dem UNO Wifi habe, würde ich aus dem Schema schliessen, dass der ESP8266 über einen I2C/SPI-UART an den ATMega328 angeschlossen ist. Somit kann der ESP den seriellen Port des ATMega nicht direkt mit Daten beliefern, was eine Programmierung darüber mit dem Standard-Bootloader ausschliesst. Die Antwort auf Deine Frage lautet also "Nein", sofern Du nicht den Bootloader getauscht hast.

  1. Ist es möglich den Konsolen-Output über Wifi zu sehen?

Nein. Grund: siehe Antwort zu 1.

Danke pylon, hab das mit dem ESP8266 falsch verstanden.

Jedenfalls weiß ich jetzt, wie die WiFi Console funktioniert.
(Arduino - Home)

Mit dieser Bibliothek kann ich jetzt auch etwas auf der Konsole via WiFi ausgeben und das Debuggen somit vereinfachen. (Dieser Arduino dreht sich, daher kein Kabel ohne weiteres möglich)

Nur das Hochladen mit PlatformIO sollte doch eigentlich funktionieren, wenn die Arduino IDE ohne Probleme hochladen kann :-/

Nur das Hochladen mit PlatformIO sollte doch eigentlich funktionieren, wenn die Arduino IDE ohne Probleme hochladen kann :-/

Grundsätzlich schon, aber Du hast ja auch noch nicht mitgeteilt, was genau denn nicht funktioniert. Kriegst Du eine Fehlermeldung? Findet es den USBSerial nicht? Auf welchem Betriebssystem betreibst Du PlatformIO? Etwas detailiertere Informationen solltest Du uns schon liefern.

Ja hast natürlich recht :wink:

Ich versuche gerade dieses Programm hochzuladen:
(Arduino/BasicOTA.ino at master · esp8266/Arduino · GitHub)

Den Link habe ich von dieser Seite:
(Over-the-Air ESP8266 programming using PlatformIO)

In der platformio.ini Datei steht folgendes:

[env:nodemcu]
platform = espressif8266
board = nodemcu
framework = arduino

Habe alles nach Anleitung gemacht, aber beim Hochladen kommt der folgende Fehler:

MacBook-Pro:Test $ platformio run --target upload
[Fri Dec 2 11:17:07 2016] Processing nodemcu (platform: espressif8266, lib_deps: ArduinoJson, board: nodemcu, framework: arduino)

Verbose mode can be enabled via -v, --verbose option
Collected 25 compatible libraries
Looking for dependencies…
Library Dependency Graph
|-- v5.7.2
|-- v1.0
| |-- v1.0
| |--
| | |-- v1.0
|-- v1.0
|--
| |-- v1.0
Looking for upload port…
Auto-detected: /dev/cu.usbmodem1421
Uploading .pioenvs/nodemcu/firmware.bin
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
*** [upload] Error 255
==================== [ERROR] Took 4.95 seconds ===========

Was ich schon alles versucht habe:

  • Alles ausgesteckt bis auf das USB-Kabel und eine externe Spannungsversorgung von 12V
  • Die ArduinoJson Library entfernt (einfach mal versucht)
  • Vier verschiedene USB-Kabel verwendet
  • verschiedene USB-Ports am Mac verwendet
  • Neustart von Mac und Arduino

Es kommt immer der selbe Fehler - mit der Arduino IDE funktioniert es allerdings, wie schon erwähnt, mit der selben Konfiguration.

Wie kommst Du auf nodemcu als Plattform? Das ist ein Arduino, auch wenn der noch einen ESP8266 angeflanscht hat, ist dieser über die USB-Schnittstelle nicht zugreifbar.

Ich sollte vielleicht mal anders fragen: Wieso willst Du PlatformIO überhaupt einsetzen? Weil es das bessere UI bietet? Ich kriege den Eindruck, dass Du im Internet Code gefunden hast, bei dem stand, er sei für PlatformIO und nun benutzt Du das Tool, obwohl die Software eigentlich für eine ganz andere Plattform gedacht war. Nur weil Du PlatformIO einsetzt, kannst Du nicht alle Software, die jemand anders mit PlatformIO für eine andere Zielplattform erstellt hat, auch auf Deinem Arduino UNO Wifi einsetzen.

Ich hoffe, ich habe mich verständlich ausgedrückt.

Also, ja nodemcu ist falsch. Da haben mich die ganzen verschiedenen Bezeichnungen wohl durcheinander gebracht. Dass der ESP8266 ein eigenes Bauteil ist, welches in den Arduino integriert wurde und nicht direkt ansprechbar ist, ist mir jetzt auch klar geworden...

Mit deiner Ersten Vermutung liegst du richtig - PlatformIO hat einfach die bessere UI und der Projektaufbau gefällt mir. Abgesehen davon ist das integrierte Terminal cool und dadurch, dass es direkt nach dem Upload startet, ist einfach eine riesige Erleichterung beim arbeiten...

Deine zweite Vermutung, dass ich einfach blind irgend ein Code aus dem Internet kopiere, sobald "PlatformIO" dabei steht, ist nicht ganz korrekt :slight_smile:

Ich hab auch den ersten Versuch mit folgender Konfiguration gestartet:

[env:uno]
platform = atmelavr
board = uno
framework = arduino
upload_port = 10.0.1.3

Allerdings kommt dann der Fehler:

Looking for upload port...
Use manually specified: 10.0.1.3
*** [upload] could not open port 10.0.1.3: [Errno 2] No such file or directory: '10.0.1.3'
========================== [ERROR] Took 4.36 seconds ==========================

Und das, obwohl die Verbindung definitiv existiert (Zugriff auf das Webinterface ist ohne Probleme möglich und OTA Upload mit der Arduino IDE funktioniert ebenfalls)

Ab diesem Punkt hab ich dann Google ausgelastet und versucht eine Lösung zu finden, aber so langsam geht bei mir auch die Motivation flöten, also steig ich wieder auf die Arduino IDE um, auch wenn es damit tausendmal umständlicher ist.

Danke auf jeden Fall für deine Antworten! Dadurch ist mir einiges klarer geworden.

Eins noch: auf PlatformIO bin ich durch Google gestoßen, weil ich nach einer komfortableren Lösung zum Programmieren von zwei Arduinos gesucht hab - also nicht wegen eines Beispiels :wink:

PlatformIO scheint (wie übrigens auch die normale Arduino IDE von arduino.cc) das OTA für den Upload des ATMega-Sketches nicht zu unterstützen. Wenn Du den Arduino jedoch über USB anhängst, dürfte es problemlos gehen.
Die Hardware des Arduino UNO Wifi ist in dieser Hinsicht schon sehr speziell, aber auch ziemlich ausgeklügelt.