PlatformIO Community

Arduino Ota on ESP8266

Hello I try to use the basic script

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
# endif

const char *ssid = "

const char *password = "

void setup()
{

	Serial.begin(115200);

	Serial.println("Booting");

	WiFi.mode(WIFI_STA);

	WiFi.begin(ssid, password);

	while (WiFi.waitForConnectResult() != WL_CONNECTED)
	{

		Serial.println("Connection Failed! Rebooting...");

		delay(5000);

		ESP.restart();
	}

	// Port defaults to 8266

	// ArduinoOTA.setPort(8266);

	// Hostname defaults to esp8266-[ChipID]

	// ArduinoOTA.setHostname("myesp8266");

	// No authentication by default

	// ArduinoOTA.setPassword("admin");

	// Password can be set with it's md5 value as well

	// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3

	// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

	ArduinoOTA.onStart([]()
	{

		String type;

		if (ArduinoOTA.getCommand() == U_FLASH)
		{

			type = "sketch";
		}
		else
		{
			// U_FS

			type = "filesystem";
		}

		// NOTE: if updating FS this would be the place to unmount FS using FS.end()

		Serial.println("Start updating " + type);
	});

	ArduinoOTA.onEnd([]()
	{

		Serial.println("\nEnd");
	});

	ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
	{

		Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
	});

	ArduinoOTA.onError([](ota_error_t error)
	{

		Serial.printf("Error[%u]: ", error);

		if (error == OTA_AUTH_ERROR)
		{

			Serial.println("Auth Failed");
		}
		else if (error == OTA_BEGIN_ERROR)
		{

			Serial.println("Begin Failed");
		}
		else if (error == OTA_CONNECT_ERROR)
		{

			Serial.println("Connect Failed");
		}
		else if (error == OTA_RECEIVE_ERROR)
		{

			Serial.println("Receive Failed");
		}
		else if (error == OTA_END_ERROR)
		{

			Serial.println("End Failed");
		} });

	ArduinoOTA.begin();

	Serial.println("Ready");

	Serial.print("IP address: ");

	Serial.println(WiFi.localIP());

}

void loop()
{

	ArduinoOTA.handle();

}

PlatformIO.ini is

[env:esp07]
platform = espressif8266
board = esp07
framework = arduino
monitor_speed = 115200
upload_protocol = espota
upload_port = 192.168.1.52

The Compiler tells me

Uploading firmware remotely
Could not find active agents. Please start it before on a remote machine using `pio remote agent start` command.
See http://docs.platformio.org/page/plus/pio-remote.html
The terminal process terminated with exit code: 1

It seems that I ave to install a remote agent but how ?

PS D:\__Dokus\Documents\PlatformIO\ESP8266\ESP8266-01-Klima-Server> platformio remote agent list
PIO Plus (https://pioplus.com) v2.6.1
Could not find active agents. Please start it before on a remote machine using `pio remote agent start` command.
See http://docs.platformio.org/page/plus/pio-remote.html
PS D:\__Dokus\Documents\PlatformIO\ESP8266\ESP8266-01-Klima-Server> platformio remote agent list
PIO Plus (https://pioplus.com) v2.6.1
Could not find active agents. Please start it before on a remote machine using `pio remote agent start` command.
See http://docs.platformio.org/page/plus/pio-remote.html
PS D:\__Dokus\Documents\PlatformIO\ESP8266\ESP8266-01-Klima-Server> pio remote agent list
PIO Plus (https://pioplus.com) v2.6.1
Could not find active agents. Please start it before on a remote machine using `pio remote agent start` command.
See http://docs.platformio.org/page/plus/pio-remote.html
PS D:\__Dokus\Documents\PlatformIO\ESP8266\ESP8266-01-Klima-Server> platformio remote agent list
PIO Plus (https://pioplus.com) v2.6.1
Could not find active agents. Please start it before on a remote machine using `pio remote agent start` command.
See http://docs.platformio.org/page/plus/pio-remote.html
PS D:\__Dokus\Documents\PlatformIO\ESP8266\ESP8266-01-Klima-Server>

PIO Remote (https://docs.platformio.org/en/latest/plus/pio-remote.html) is for collaborating with other remote PlatformIO agents and has nothing to do with uploading to an ESP8266 via OTA (documented here.

Could you show the result of a normal upload (pio run -t upload -v or “Verbose Upload” task in VSCode).

1 Like

That was working, but this was very useful to understand the concept

https://www.thingforward.io/techblog/2017-09-06-embedded-testing-with-platformio-part-3-remoting.html

Now I just need to know how change the remote monitor speed Thank you

1 Like

See if monitor_speed applies to PIO remote… haven’t tried it myself so have no idea if it actually does! :laughing: