Giter VIP home page Giter VIP logo

arduinoota's Introduction

Arduino library to update the sketch over the network

This library allows you to update sketches on your board over WiFi or Ethernet.

The library is a modification of the Arduino WiFi101OTA library.

network port in IDE

Contents

Supported micro-controllers

  • classic ATmega AVR with at least 64 kB of flash (Arduino Mega, MegaCore MCUs, MightyCore 1284p and 644)
  • Arduino SAMD boards like Zero, M0, MKR and Nano 33 IoT
  • Arduino Uno R4 boards
  • nRF5 board supported by nRF5 core.
  • RP2040 boards with Pico core
  • STM32F boards with STM32 core
  • boards supported by ESP8266 and ESP32 Arduino boards package
  • any board with MCU with SD bootloader
  • any board with custom Storage and boot-load solution for that storage
  • Nano RP2040 Connect with mbed core with custom storage example and SFU library

Supported networking libraries

The ArduinoOTA library will work any proper Arduino Ethernet or WiFi library. For Ethernet library add #define OTETHERNET before including the ArduinoOTA library. If you don't want a network port or the library doesn't support it, add #define NO_OTA_PORT before including the ArduinoOTA library. If you only want to use InternalStorage without the network upload from IDE, add #define NO_OTA_NETWORK before including the ArduinoOTA library.

Tested libraries are:

  • Ethernet library - Ethernet shields and modules with Wiznet 5100, 5200 and 5500 chips
  • WiFi101 - MKR 1000, Arduino WiFi101 shield and Adafruit WINC1500 WiFi shield or module
  • WiFiNINA - MKR 1010, MKR 4000, Nano 33 IoT and any supported MCU with attached ESP32 as SPI network adapter with WiFiNINA firmware
  • WiFiS3 library of Arduino Uno R4 WiFi
  • WiFiEspAT - esp8266 or ESP32 as network adapter with AT firmware
  • EthernetENC - shields and modules with ENC28j60 chip
  • WiFi library of the Pico Core including its Ethernet network interfaces

EthernetENC and WiFiEspAT doesn't support UDP multicast for MDNS, so Arduino IDE will not show the network upload port.

Installation

The library is in Library Manager of the Arduino IDE.

Note for platformio users: Please, don't use this library with platformio. It was not tested with platformio and most of the documentation doesn't apply.

Arduino SAMD boards (Zero, M0, MKR, Nano 33 IoT) are supported 'out of the box'. Additionally to upload over the internal flash as temporary storage, upload over SD card and over MEM shield's flash is possible. For upload over SD card use the SDU library as shown in the WiFi101_SD_OTA or similar for upload over MKR MEM shield use the SFU library.

For Uno R4, RP2040, nRF5 and STM32 boards, platform.local.txt from extras folder has to be copied into boards package installation folder. For nRF5 details scroll down. For RP2040 the bundled ArduinoOTA library must be deleted.

For ESP8266 and ESP32 boards, platform.local.txt from extras folder has to be copied into boards package installation folder and the bundled ArduinoOTA library must be deleted. For details scroll down.

ATmega boards require to flash a modified Optiboot bootloader for flash write operations. Details are below.

For other MCU upload over SD card is possible if the MCU has SD bootloader which can bootload the update bin from SD card. See the ATmega-SD example. Some MCU can use a second stage SD bootloader linked to the sketch as a library similar to SAMD package's SDU library.

With InternalStorage the sketch binary size is limited to half of the available flash memory size. The available flash size may be reduced by the bootloader and EEPROM emulation space.

For upload the 'OTA programmer' technique can be configured.

The upload tool in IDE gas a timeout 10 seconds. For some sketch size, MCU or library it is too short. To set longer timeout, download newer version of the tool, replace the 1.3.0 arduinoOTA executable and in platform.local.txt add the -t option in seconds.

OTA Upload from IDE without 'network port'

Some networking libraries don't have the UDP.beginMulticast function and can't start a MDNS service to propagate the network port for Arduino IDE. And sometimes the MDNS port is not detected for the good libraries too. Arduino IDE doesn't yet allow to enter the IP address.

The workaround is to configure a fake programmer for Arduino OTA. You can use my_boards as starting point. For Arduino Mega it is the best option for all ArduinoOTA aspects, for other boards it gives you control about your custom settings. In your copy of my_boards in programmers.txt, configure the IP address and restart the IDE. Note: the esp boards packages can't be used as referenced packages in my_boards style.

If you don't want to use my_boards, the platform.local.txt files for avr and samd in extras folder in this library contain the configuration for arduinoOTA tool as programmer. Copy platform.local.txt next to platform.txt in the hardware package of your board. The programmers.txt file can't have a 'local' extension so you have to add your OTA 'programmer' configuration into the existing programmers.txt file. Then restart the IDE.

Example OTA 'programmer' configuration in programmers.txt:

arduinoOTA104.name=Arduino OTA (192.168.1.104)
arduinoOTA104.program.tool=arduinoOTA
arduinoOTA104.program.tool.default=arduinoOTA
arduinoOTA104.ip=192.168.1.104

In IDE select in Tools menu the "Arduino OTA (...)" programmer and use "Upload using programmer" from the Sketch menu in IDE.

Important! If you test OTA with the 'fake' programmer, close the Serial Monitor in IDE. With Serial Monitor open, IDE will reset the board after upload tool finishes. The board then doesn't finish to apply the update.

OTA update as download

Note: For Arduino MKR WiFi 1010 and Arduino Nano 33 IoT the SNU library and storage support in the nina firmware can be used for OTA update as download. See the SNU library example in the IDE Examples menu.

Note: Don't use this for esp8266 and esp32 Arduino. Use the ESP8266httpUpdate and the esp32 HTTPUpdate library for OTA update download for esp8266/esp32. Or use the Update object from esp8266 core of the Update library directly.

The WiFi101OTA and ArduinoOTA libraries were created for upload from IDE. But in some scenarios as for example deployed sleeping battery powered devices it is better to have the update available for download by the device.

In advanced section of examples you can find examples of sketch update over download from a http server. One example shows update over the InternalStorage object of the ArduinoOTA library. The example for update over SD card doesn't use this library at all.

The Blynk library uses this library in its Blynk.Edgent examples to store and apply user's updated sketch downloaded from the Blynk IoT cloud storage.

ATmega support

The sizes of networking library and the SD library allows the use of ArduinoOTA library only with ATmega MCUs with at least 64 kB flash memory.

Side note: There are other network upload options for here excluded ATmega328p: (Ariadne bootloader for Wiznet chips, WiFiLink firmware for the esp8266) or AvrDudeTelnet upload (Linux only).

For upload with ArduinoOTA library over InternalStorage, Optiboot bootloader with copy_flash_pages function is required. MegaCore and MightyCore by MCUDude before version 3 has Optiboot binaries with copy_flash_pages function ready to be burn to your ATmega.

The most common Arduino ATmega board with more than 64 kB of flash memory is Arduino Mega. To use it with ArduinoOTA library, you can't use it directly with the Arduino AVR package, because the package doesn't have the right fuse settings for Mega with Optiboot. You can download my boards definitions and use it to burn the modified Optiboot and to upload sketches to your Mega over USB and over network.

For SDStorage a 'SD bootloader' is required to load the uploaded file from the SD card. The SDStorage was tested with zevero/avr_boot. Note that the zevero/avr_boot doesn't support USB upload of sketch. The ATmega_SD example shows how to use this ArduinoOTA library with SD bootloader.

To use remote upload from IDE with SDStorage or InternalStorage, copy platform.local.txt from extras/avr folder, next to platform.txt in the boards package used (Arduino-avr or MCUdude packages).

The IDE upload tool is installed with Arduino AVR core package. At least version 1.2 of the arduinoOTA tool is required. For upload from command line without IDE see the command template in extras/avr/platform.local.txt.

ESP8266 and ESP32 support

This library allows to upload a sketch to esp8266 or esp32 over Ethernet with Ethernet or EthernetENC library.

Both esp8266 and esp32 Arduino core now support wired network as additional network interface for their networking (STA and SoftAP are the 'built-in' network interfaces). With their Ethernet libraries you can use the standard OTA upload of the esp8266 and esp32 platform with wired network.

With esp8266 platform's lwIP_xy libraries (optionally with the EtherCompat.h) you can use W5500, W5100 and ENC28J60 wired network.

With esp32 platform version 3 you can use the EthernetESP32 library (available in Library Manager) with a variety of Ethernet modules including W5500 and ENC28J60. See the BasicOTA example in the EthernetESP32 library,

To use this library instead of the bundled library, the bundled library must be removed from the boards package library folder. To override the configuration of OTA upload in platform.txt, copy the platform.local.txt file from extras folder of this library next to platform.txt file in boards package installation folder. For Arduino IDE 2 use platform.local.txt from extras/IDE2.

This library supports SPIFFS upload to esp8266 and esp32, but the IDE plugins have the network upload tool hardcoded to espota. It can't be changed in configuration. To upload SPIFFS, call the plugin in Tools menu and after it fails to upload over network, go to location of the created bin file and upload the file with arduinoOTA tool from command line. The location of the file is printed in the IDE console window. Upload command example (linux):

~/arduino-1.8.8/hardware/tools/avr/bin/arduinoOTA -address 192.168.1.107 -port 65280 -username arduino -password password -sketch OTEthernet.spiffs.bin -upload /data -b

(the same command can be used to upload the sketch binary, only use -upload /sketch)

nRF5 support

For SD card update use SDUnRF5 library.

To use remote upload from IDE with SDStorage or InternalStorage, copy platform.local.txt from extras/nRF5 folder, next to platform.txt in the nRF5 boards package.

If SoftDevice is not used, the sketch is written from address 0. For write to address 0 the sketch must be compiled with -fno-delete-null-pointer-checks. The setting is in extras/nRF5/platform.local.txt.

If you use SoftDevice, stop BLE before applying update. Use ArduinoOTA.beforeApply to register a callback function. For example in setup ArduinoOTA.beforeApply(shutdown); and add the function to to sketch:

void shutdown() {
  blePeripheral.end();
}

Arduino 'network port'

The Arduino IDE detects the Arduino 'network port' using mDNS system. This requires the use of UDP multicast. From networking libraries supported for OTA upload only Ethernet, WiFiNina and WiFi101 libraries support multicast. For these libraries ArduinoOTA.h at defaults starts the mDNS service.

In some networks or on some computers UDP mDNS doesn't work. You can still use the ArduinoOTA library for upload from command line or with the fake programmer trick described elsewhere in this README.

It is possible to suppress use of the mDNS service by the library. Only define NO_OTA_PORT before the include like this:

 #define NO_OTA_PORT
 #include <ArduinoOTA.h>

Troubleshooting

To see the details of upload command in IDE, set verbose mode for upload in IDE Preferences. arduinoOTA tool version should be 1.2 or higher.

Compilation errors

  • undefined reference to `InternalStorage' - make sure you selected a board supported by the ArduinoOTA library
  • 'ArduinoOTA' was not declared in this scope - make sure a networking library is included before the ArduinoOTA.h include

No OTA network port in IDE tools menu

Not with all supported networking libraries this library can propagate a 'network port'. See the list in 'Supported networking libraries' section of this page.

For networking libraries which support mDNS, sometimes the OS blocks or can't handle mDNS required to discover the 'network port'. Sometimes it helps to wait a little, sometimes it helps to restart the IDE, sometimes it helps disconnect and connect the network on the computer.

You have still the option to use a 'fake programmer' as described in "OTA Upload from IDE without 'network port'".

arduinoOTA tool returns Unauthorized

The password doesn't match. Password is the third parameter in ArduinOTA begin() in sketch.

In platform.local.txt files in extras folder the password is configured as variable parameter for the normal OTA upload. The IDE asks for password and supplies the variable's value. The examples expect password "password".

platform.txt in my_boards and the fake programmer tool definition in platform.local.txt have the password set as "password" to match the examples.

arduinoOTA tool returns "Failed to reset the board, upload failed"

The wrong upload command from AVR boards platform.txt is used. Did you copy extras/avr/platform.local.txt next to platform.txt as required?

Upload fails after 10 seconds

If upload fails with Flashing sketch ... Error flashing the sketch after 10 seconds, the problem is the 10 seconds timeout of IDE's upload tool.

To set longer timeout, download newer version of the tool, replace the 1.3.0 arduinoOTA executable and in platform.local.txt add the -t option in seconds.

Upload returns OK but the sketch is not replaced.

The final loading of the uploaded binary is in some cases not under control of the ArduinoOTA library.

For SD card way the SD bootloader or the SDU library is responsible for loading the new binary. So SD bootloader must be present and in case of SDU, the uploaded sketch must contain the SDU library. Note that other SPI devices may disturb access to the SD card from the bootloader/SDU. Make sure there are pull-up resistors on the CS pins.

For AVR InternalStorage upload the final loading is done by the Optiboot with copy_flash_pages function. Optiboot 8 without copy_flash_pages will successfully store the binary to upper half of the flash but will not copy it to run location in flash.

If you test OTA with the 'fake' programmer, close the Serial Monitor in IDE. With Serial Monitor open, IDE will reset the board after upload tool finishes. The board then doesn't finish to apply the update.

Only the first OTA upload works

Does the OTA uploaded sketch have ArduinoOTA?

Boards tested

arduinoota's People

Contributors

agdl avatar ahradnansky avatar cmaglie avatar facchinm avatar jandrassy avatar marcusjoh avatar n-elia avatar per1234 avatar sandeepmistry avatar tomer-w avatar tommag avatar vshymanskyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduinoota's Issues

OTA with WiFiEspAT and optiboot8/optiboot_atmega2560.hex - No mdns record and no OTA possible

Device: RobotDyn MEGA+WiFi R3 ATmega2560+ESP8266, flash 32MB, USB-TTL CH340G, Micro-USB

Original ESP8266 firmware: ESP8266_NonOS_AT_V1.7.1_19_07_15

Arduino IDE: 1.8.10

#include <SPI.h>
#include <WiFiEspAT.h>
#include <ArduinoOTA.h>
#include <PubSubClient.h>

  • Sketch and network conectivity is working as expected (e.g. ping, mqtt, ...)
  • No arduino record available in mdns browser
  • No network port in Arduino IDE
  • No OTA

Installation of bootloader

Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM8 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD6:m -Ulfuse:w:0xFF:m

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

     Using Port                    : COM8
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATmega2560
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
       flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xD6"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD6:
avrdude: load data hfuse data from input file 0xD6:
avrdude: input file 0xD6 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done. Thank you.

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM8 -b19200 -Uflash:w:C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex:i -Ulock:w:0x0F:m

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

     Using Port                    : COM8
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATmega2560
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
       flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : STK500
     Description     : Atmel STK500 Version 1.x firmware
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex"
avrdude: writing flash (262144 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 262144 bytes of flash written
avrdude: verifying flash memory against C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex:
avrdude: load data flash data from input file C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex:
avrdude: input file C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex contains 262144 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 262144 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done. Thank you.


Installation of wifiespat sketch including arduinoota

Arduino\hardware\my_boards\avr/bootloaders/optiboot8/optiboot_atmega2560.hex

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\A410882\Documents\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\A410882\Documents\Arduino\libraries -fqbn=my_boards:avr:mega -vid-pid=1A86_7523 -ide-version=10810 -build-path C:\Users\A410882\AppData\Local\Temp\arduino_build_510765 -warnings=all -build-cache C:\Users\A410882\AppData\Local\Temp\arduino_cache_541733 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\A410882\Documents\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\A410882\Documents\Arduino\libraries -fqbn=my_boards:avr:mega -vid-pid=1A86_7523 -ide-version=10810 -build-path C:\Users\A410882\AppData\Local\Temp\arduino_build_510765 -warnings=all -build-cache C:\Users\A410882\AppData\Local\Temp\arduino_cache_541733 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino
Using board 'mega' from platform in folder: C:\Users\A410882\Documents\Arduino\hardware\my_boards\avr
Using core 'arduino' from platform in folder: C:\Program
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o nul
Alternatives for SPI.h: [[email protected]]
ResolveLibrary(SPI.h)
-> candidates: [[email protected]]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o nul
Alternatives for WiFiEspAT.h: [[email protected]]
ResolveLibrary(WiFiEspAT.h)
-> candidates: [[email protected]]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o nul
Alternatives for ArduinoOTA.h: [[email protected]]
ResolveLibrary(ArduinoOTA.h)
-> candidates: [[email protected]]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o nul
Alternatives for PubSubClient.h: [[email protected]]
ResolveLibrary(PubSubClient.h)
-> candidates: [[email protected]]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src\SPI.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\WiFi.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\WiFiClient.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\WiFiEspAtBuffStream.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\WiFiServer.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\WiFiUdp.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\utility\EspAtDrv.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src\utility\EspAtDrvLogging.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src\InternalStorage.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src\InternalStorageAVR.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src\InternalStorageESP.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src\OTAStorage.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src\WiFiOTA.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src\PubSubClient.cpp" -o nul
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT\src" "-IC:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src" "-IC:\Users\A410882\Documents\Arduino\libraries\PubSubClient\src" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp" -o "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp.o"
C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino: In function 'void callback(char*, byte*, unsigned int)':

C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino:70:21: warning: unused parameter 'topic' [-Wunused-parameter]

void callback(char* topic, byte* payload, unsigned int length) {

                 ^~~~~

C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino:70:34: warning: unused parameter 'payload' [-Wunused-parameter]

void callback(char* topic, byte* payload, unsigned int length) {

                              ^~~~~~~

C:\Users\A410882\Documents\Arduino\mqtt_esp8266_SO_Counter\mqtt_esp8266_SO_Counter.ino:70:56: warning: unused parameter 'length' [-Wunused-parameter]

void callback(char* topic, byte* payload, unsigned int length) {

                                                    ^~~~~~

Compiling libraries...
Compiling library "SPI"
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\SPI\SPI.cpp.o
Compiling library "WiFiEspAT"
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFi.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiEspAtBuffStream.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiServer.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiClient.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiUdp.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\utility\EspAtDrvLogging.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\utility\EspAtDrv.cpp.o
Compiling library "ArduinoOTA"
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\OTAStorage.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorageESP.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorageAVR.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\WiFiOTA.cpp.o
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorage.cpp.o
Compiling library "PubSubClient"
Using previously compiled file: C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\PubSubClient\PubSubClient.cpp.o
Compiling core...
Using precompiled core: C:\Users\A410882\AppData\Local\Temp\arduino_cache_541733\core\core_my_boards_avr_mega_0c812875ac70eb4a9b385d8fb077f54c.a
Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections,--relax -mmcu=atmega2560 -o "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.elf" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\sketch\mqtt_esp8266_SO_Counter.ino.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\SPI\SPI.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFi.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiClient.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiEspAtBuffStream.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiServer.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\WiFiUdp.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\utility\EspAtDrv.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\WiFiEspAT\utility\EspAtDrvLogging.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorage.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorageAVR.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\InternalStorageESP.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\OTAStorage.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\ArduinoOTA\WiFiOTA.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765\libraries\PubSubClient\PubSubClient.cpp.o" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/..\arduino_cache_541733\core\core_my_boards_avr_mega_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\A410882\AppData\Local\Temp\arduino_build_510765" -lm
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O binary "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.elf" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.bin"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.elf" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.eep"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.elf" "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex"
Multiple libraries were found for "SPI.h"
Used: C:\Program
Multiple libraries were found for "WiFiEspAT.h"
Used: C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT
Multiple libraries were found for "ArduinoOTA.h"
Used: C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA
Multiple libraries were found for "PubSubClient.h"
Used: C:\Users\A410882\Documents\Arduino\libraries\PubSubClient
Using library SPI at version 1.0 in folder: C:\Program Files
Using library WiFiEspAT at version 1.0.2 in folder: C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT
Using library ArduinoOTA at version 1.0.2 in folder: C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA
Using library PubSubClient at version 2.7 in folder: C:\Users\A410882\Documents\Arduino\libraries\PubSubClient
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-size" -A "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.elf"
Sketch uses 21464 bytes (8%) of program storage space. Maximum is 261120 bytes.
Global variables use 2578 bytes (31%) of dynamic memory, leaving 5614 bytes for local variables. Maximum is 8192 bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -carduino -PCOM6 -b115200 -D -Uflash:w:C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex:i

avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

     Using Port                    : COM6
     Using Programmer              : arduino
     Overriding Baud Rate          : 115200
     AVR Part                      : ATmega2560
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
       flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : Arduino
     Description     : Arduino
     Hardware Version: 3
     Firmware Version: 8.0
     Vtarget         : 0.3 V
     Varef           : 0.3 V
     Oscillator      : 28.800 kHz
     SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9801 (probably m2560)
avrdude: reading input file "C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex"
avrdude: writing flash (21464 bytes):

Writing | ################################################## | 100% 2.98s

avrdude: 21464 bytes of flash written
avrdude: verifying flash memory against C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex:
avrdude: load data flash data from input file C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex:
avrdude: input file C:\Users\A410882\AppData\Local\Temp\arduino_build_510765/mqtt_esp8266_SO_Counter.ino.hex contains 21464 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.19s

avrdude: verifying ...
avrdude: 21464 bytes of flash verified

avrdude done. Thank you.

How to download a firmware update without losing WIFI connection?

Hi,

I'm trying to use this advanced example: https://github.com/jandrassy/ArduinoOTA/tree/master/examples/Advanced/OTASketchDownload

I, at first, thought it was working. And - stupidly - updated all my custom lights (about 5 of them) to use this. Then to figure out that the download isn't finishing. It's not because the Wifi antenna apparently gets blocked or something like that? It works if my firmware is small enough, say around 250 KiB. But it's ~300 KiB.

The code in that example is blocking. It downloads the file in one while loop.
Any help or idea on how to make this async would be awesome!

Cheers,
Mark

Arduino Mega 2560 - boards needs hardware reset after every OTA flash

Thank you for this nice library.

I'm facing an issue and I'm not sure how to troubleshoot.

Every time I try to upload new code using OTA the board does not run the new code unless I hardware reset it first.

The whole time, the board is responsive in ping tests.

Similarly, once I upload the new code over OTA, I cannot upload again unless I hardware reset it first.

Is this behavior expected?

Is possible to change the OTA port?

I really impressed with testing this wonderful library. It's not easy at first time, It works well in ESP32 with Ethernet not wireless.
I have known that 65280 port is fixed.
Is it possible to change the OTA port in FW?
I just have seen OTA_PORT in ArduinOTA.h
const uint16_t OTA_PORT = 65280;

template <class NetServer, class NetClient>
class ArduinoOTAClass : public WiFiOTAClass {

private:
NetServer server;

public:
ArduinoOTAClass() : server(OTA_PORT) {};

I would like to set different port each device like below.
ArduinoOTA.setPort(1070);

Could you give me a help?
Thanks so much.

Error flashing on Mega; OTA upload response: Payload size wrong

I use a board with a mega2560 and a esp8266ex. For the communication with the esp chip i use the WiFiEspAT library. Connecting to the wireless network is not a problem, this works nicely :). The next step is flashing the mega via the arduinoOta library.
Unfortunately this was not successful yet. When I use the following command: โ€œC:\Users\Hans\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0/bin/arduinoOTA -address 192.168.8.151 -port 65280 -username arduino -password password -sketch C:\Users\Hans\AppData\Local\Temp\arduino_build_392363/SerialWiFiOTA.ino.bin -upload /sketch -bโ€
I got the response:
โ€œConnecting to board ... done
Uploading sketch ... done
Flashing sketch ... Error flashing the sketch
Error flashing the sketchโ€

I placed some debug code (mentioned in another topic) to see what was causing the failure: โ€œOTA upload response: Payload size wrongโ€. The contentLength = 16720, but read = 4163.
Do you have any idea how to solve this?

U_SPIFFS was not declared in this scope

Hi,

I'm using an ESP-12e (8266) and am getting this error:

/home/mark/.platformio/lib/ArduinoOTA/src/InternalStorageESP.cpp: In member function 'virtual int InternalStorageESPClass::open(int, uint8_t)':
/home/mark/.platformio/lib/ArduinoOTA/src/InternalStorageESP.cpp:35:56: error: 'U_SPIFFS' was not declared in this scope
   return Update.begin(length, command == 0 ? U_FLASH : U_SPIFFS);
                                                        ^
/home/mark/.platformio/lib/ArduinoOTA/src/InternalStorageESP.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
*** [.pio/build/esp12e/lib391/ArduinoOTA/InternalStorageESP.cpp.o] Error 1

And with some googling i found this pull request:
awtrix/AWTRIX2.0-Controller#15

Which solves that very issue in some other library (by replacing U_SPIFFS with U_FS).

If i do that in ArduinoOTA/src/InternalStorageESP.cpp the it does seems to compile just fine for me.

I'm not yet at the point where i can really test if this works though.. I'll update this post if i have confirmed a working flash with that flag.

Edit:
Works like a charm!

Cheers,
Mark

Error flashing the sketch at Arduino Mega 2560

Hi!

I get following message when I try to update my Arduino Mega 2560 via ArduinoIDE (using programmer with IP). The firewall is off.

/opt/arduino-1.8.13/hardware/tools/avr/bin/arduinoOTA -address 192.168.2.101 -port 65280 -username arduino -password password -sketch /tmp/arduino_build_28229/Sketch_Lichtschalter_Arduino_Uno.ino.bin -upload /sketch -b Connecting to board ... done Uploading sketch ... done Flashing sketch ... Error flashing the sketch Error flashing the sketch

What can I do?

LittleFS and SPIFFS?

Since SPIFFS is seemingly deprecated and LittleFS is now recommended, I am using that as part of my project for html storage. It's my understanding based on the README that this library is using SPIFFS for file storage during the upload. Recently, I was trying to figure why I was receiving OTA errors (No Answer, No response from device, ...); I remember that using both LittleFS and SPIFFS at the same time is not supported - could that be the issue? If so, are there plans to update this to LittleFS if my understanding is correct.

Thanks for providing this library!

TLS support

Does it support TLS (https) for updating from web?

[SAMD21] undefined reference to `__text_start__'

Hello,
I'm trying to use your lib on a custom board, but for some reasons, it fails to compile due to the following error:

In function `OTAStorage::OTAStorage()':
OTAStorage.cpp:(.text._ZN10OTAStorageC2Ev+0x40): undefined reference to `__text_start__'

I tried various bootloader (microsoft uf2 and original arduino zero one).
Can the variant.cpp I use can cause this problem ? (I use this one https://github.com/sparkfun/Arduino_Boards/blob/master/sparkfun/samd/variants/SparkFun_SAMD_Mini/variant.cpp)

Any idea ?

Best regards

Upload with ArduinoOTA and OTEthernet to ESP32 pico Kit does not save in flash

Hy

Uploading with ArduinoOTA / OTEthernet does not save the transferred sketch in Flash.
I have no idea what the cause may be.

My steps:

  1. ArduinoIDE 1.8.12 - Portable installed on D: \ ArduinoXXX \ arduino-1.8.12-2. Not started

2.ESP32 pico kit with SPI Wiznet W5500. Board package ESP32 1.0.4 is installed

  1. My test program is running, with web server and MQTT

  2. Delete the ArduinoOTA directory in
    D: \ ArduinoXXX \ arduino-1.8.12-2 \ portable \ packages \ esp32 \ hardware \ esp32 \ 1.0.4 \ libraries \ ArduinoOTA

  3. Text file platform.local.txt (RAW, 6 lines, 391 bytes content) copied next to platform.txt
    D: \ ArduinoXXX \ arduino-1.8.12-2 \ portable \ packages \ esp32 \ hardware \ esp32 \ 1.0.4

  4. New project with OTEthernet.ino from example created after
    D: \ ArduinoXXX \ arduino-1.8.12-2 \ portable \ sketchbook \ ESP32 \ OTEthernet

  5. MAC adjusted

  6. Ethernet.init (33); inserted in setup () before Ethernet.begin (mac)

  7. Start ArduinoIDE in D: \ ArduinoXXX \ arduino-1.8.12-2

  8. Choose OTEthernet.ino, Board ESP32 pico Kit, Standard (not Minimal SPIFFS ..), COM-Port,
    Compile, upload via COMx.

  9. After uploading, the program runs and DHCP-IP is displayed as serial. So it works.

  10. No Ethernet upload "Arduino-IP ..." is offered under Tools / Port

  11. Under Sketch, select Export binding file

  12. Binding file OTEthernet.ino.pico32.bin is stored in the project


? 1. Username Arduino must not be changed.
Is that intended?

? 2. Why can't upload be selected directly under Tools / Port: Arduino-IP ...?
What else am I missing?

? 3. When uploading via arduinoOTA.exe (see below) "Sketch uploaded successfully" is displayed.
Changes in the sketches do not arrive on the ESP32.
What can it be?

Thank you, Klaus


Upload the bin file
D: \ ArduinoXXX \ arduino-1.8.12-2 \ portable \ sketchbook \ ESP32 \ OTEthernet> D: \ ArduinoXXX \ arduino-1.8.12-2 \ hardware \ tools \ avr \ bin \ arduinoOTA -address 192.168.2.54 -port 65280 -username arduino -password password -sketch OTEthernet.ino.pico32.bin -upload / data -b
Connecting to board ... done
Uploading sketch ... done
Flashing sketch ... done

Sketch uploaded successfully

Arduino MKR Zero with Ethernet Shield not visible

Hello,

I am trying to get my MKR Zero OTA ready, the Ethernet Shield is working I can ping it.

I took the example code and changed it to a static IP.
I cannot see the MKR with a Bonjour Viewer under Windows 10, Bonjour installed with Itunes.
I also used a Network Monitor and could not see any Bonjour related trafic going out from the Arduino.

Do you have any suggestions?

Compilation error due ESP core changed

.platformio/lib/ArduinoOTA_ID6178/src/InternalStorageESP.cpp: In member function 'virtual int InternalStorageESPClass::open(int, uint8_t)':
/.platformio/lib/ArduinoOTA_ID6178/src/InternalStorageESP.cpp:35:56: error: 'U_SPIFFS' was not declared in this scope
return Update.begin(length, command == 0 ? U_FLASH : U_SPIFFS);

The problem caused by dummy renaming in ESP core release:

esp8266/Arduino@a389a99

Suggested solution:

#ifndef U_SPIFFS
#define U_SPIFFS U_FS
#endif

With WiFiEspAT the upload from IDE to network port doesn't work (attempts to use SSH)

sorry, the MDNS record created by the AT firmware doesn't specify additional information for IDE to do the upload with the arduinaOTA tool and there is no way in AT firmware to add this information (txt record "ssh_upload=no")

I will remove the MDNS record registration from the library

I will try to create a programmer configuration for OTA upload from IDE for libraries without UDP::beginMulticast()

support for ESP32httpUpdate.h

Hi I have been using ESP32httpUpdate successfully over wifi.
Is there any way it can be made to work over ethernet?
thanks

arduinoOTA.exe seems to upload fine but esp returns Checksum failed

Hi,

When I update my firmware using arduinoOTA, the update seems to work fine:

Connecting to board ...  done
Uploading sketch ...  done
Flashing sketch ...  done

Sketch uploaded successfully

however the firmware is not updated an the esp returns the following error:
E (23612) esp_image: Checksum failed. Calculated 0x66 read 0x0

Any idea what could be the problem ? I build the firmware.bin using platform.io

TIA

Support NANO 33 BLE via Bluetooth?

Hi,

Thank you very much for your library. I see you said this library supports "Nano 33 BLE OTA over TCP should work too (I have nRF5 support in the library)". I am using Nano 33 BLE which has no WiFi function. Could you kindly give an example of how to update the firmware of NANO 33 BLE with ArduinoOTA via OTA? Thank you very much.

Kind regards,
Tang

Is it possible to use this library with VS Code?

Hello @JAndrassy ,

Is there any documentation on how to configure VS Code projects to be able to upload via IP address with your library? Or could you share in here how to configure the VS Code to make it work.

I have everything working on Arduino IDE but I would like to be able to do the same on VS Code. (all the code compiles, just fails during upload).

Thanks,

nRF52 test

nRF52 was not tested yet. it compiles.

Port not showing

The connection works, yet the network port is not showing up.

ESP32: OTA with IP address (no hostname) is failing

I got a setup here where the ESP32 is connected by Ethernet and is put behind a firewall, that does port forwarding of port 3232 to the ESP. So I cannot use the host name as put into the ArduinoOTA.begin() call, but only the firewall's IP address. When trying to do an OTA update, the invitation packets seem to be sent, but never answered:

Uploading .pio\build\az-delivery-devkit-v4\firmware.bin
15:17:59 [DEBUG]: Options: {'timeout': 10, 'esp_ip': '192.168.178.77', 'host_port': 23137, 'image': '.pio\\build\\az-delivery-devkit-v4\\firmware.bin', 'host_ip': '0.0.0.0', 'auth': 'xxxxx, 'esp_port': 3232, 'spiffs': False, 'debug': True, 'progress': True}
15:17:59 [INFO]: Starting on 0.0.0.0:23137
15:17:59 [INFO]: Upload size: 402944
Sending invitation to 192.168.178.77 ..........
15:19:39 [ERROR]: No response from the ESP
*** [upload] Error 1

Is it possible that he ESP is discarding the packets due to the missing host name?

Is there a way to get around that?

My development IDE is VSCode/Platformio, btw.

ArduinoUNO + Shield : 'InternalStorage' was not declared in this scope

Hi.
Have seen this error mentioned in few forum but no resolution.

I'm using an ArduinoUNO with Ethernet shield.
Trying to add ArduinoOTA following the OTEthernet.ino Example as-is but always getting this error while compiling:

'InternalStorage' was not declared in this scope

Using PlatformIO.

Thx for any inputs.

Compatibility With Arduino Uno Wifi Rev 2

When compiling for the Arduino Uno Wifi Rev 2 I am receiving the following error...

Arduino: 1.8.13 (Mac OS X), Board: "Arduino Uno WiFi Rev2, ATMEGA328"


/user-path/Documents/Arduino/libraries/ArduinoOTA/src/ArduinoOTA.h:133:2: warning: #warning "Network library not included or not supported" [-Wcpp]
 #warning "Network library not included or not supported"
  ^~~~~~~
In file included from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:16:0:
/user-path/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino5/avr/include/avr/boot.h:116:6: error: #error AVR processor does not provide bootloader support!
 #    error AVR processor does not provide bootloader support!
      ^~~~~
/user-path/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino5/avr/include/avr/boot.h:127:4: error: #error Cannot find SPM Enable bit definition!
 #  error Cannot find SPM Enable bit definition!
    ^~~~~
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp: In constructor 'OTAStorage::OTAStorage()':
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:31:19: error: 'SPM_PAGESIZE' was not declared in this scope
         PAGE_SIZE(SPM_PAGESIZE),
                   ^~~~~~~~~~~~
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:31:19: note: suggested alternative: 'E2PAGESIZE'
         PAGE_SIZE(SPM_PAGESIZE),
                   ^~~~~~~~~~~~
                   E2PAGESIZE
In file included from /user-path/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino5/avr/include/avr/io.h:99:0,
                 from /user-path/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino5/avr/include/avr/pgmspace.h:90,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/String.h:31,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/Print.h:24,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/Stream.h:25,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/Client.h:22,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/ArduinoAPI.h:29,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/Arduino.h:23,
                 from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.h:27,
                 from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:1:
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:42:22: error: '__SPM_REG' was not declared in this scope
   uint8_t highBits = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS);
                      ^
In file included from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:16:0:
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:42:22: error: '__BOOT_LOCK_BITS_SET' was not declared in this scope
   uint8_t highBits = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS);
                      ^
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:42:22: note: suggested alternative: '__LOCK_BITS_EXIST'
In file included from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/HardwareSPI.h:21:0,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/ArduinoAPI.h:31,
                 from /user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/Arduino.h:23,
                 from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.h:27,
                 from /user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:1:
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:44:24: error: 'FUSE_BOOTRST' was not declared in this scope
   if (!(highBits & bit(FUSE_BOOTRST))) {
                        ^
/user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/Common.h:70:25: note: in definition of macro 'bit'
 #define bit(b) (1UL << (b))
                         ^
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:44:24: note: suggested alternative: 'FUSE_BOOTEND'
   if (!(highBits & bit(FUSE_BOOTRST))) {
                        ^
/user-path/Library/Arduino15/packages/arduino/hardware/megaavr/1.8.6/cores/arduino/api/Common.h:70:25: note: in definition of macro 'bit'
 #define bit(b) (1UL << (b))
                         ^
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:45:29: error: 'FUSE_BOOTSZ1' was not declared in this scope
     byte v = (highBits & ((~FUSE_BOOTSZ1 ) + (~FUSE_BOOTSZ0 )));
                             ^~~~~~~~~~~~
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:45:29: note: suggested alternative: 'FUSE_BOOTEND'
     byte v = (highBits & ((~FUSE_BOOTSZ1 ) + (~FUSE_BOOTSZ0 )));
                             ^~~~~~~~~~~~
                             FUSE_BOOTEND
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:45:48: error: 'FUSE_BOOTSZ0' was not declared in this scope
     byte v = (highBits & ((~FUSE_BOOTSZ1 ) + (~FUSE_BOOTSZ0 )));
                                                ^~~~~~~~~~~~
/user-path/Documents/Arduino/libraries/ArduinoOTA/src/OTAStorage.cpp:45:48: note: suggested alternative: 'FUSE_BOOTEND'
     byte v = (highBits & ((~FUSE_BOOTSZ1 ) + (~FUSE_BOOTSZ0 )));
                                                ^~~~~~~~~~~~
                                                FUSE_BOOTEND
exit status 1
Error compiling for board Arduino Uno WiFi Rev2.


This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

A lot of this seems like it could be a matter of changing names, but I am not entirely sure how in-depth it would be to get it to work on that board. Has there been any work into getting it to work, and could anyone with expertise in this library help guide me on what I might need to do to get it to compile?

Error compiler in HttpClient http(transport, SERVER, SERVER_PORT);

Hello when compiling with the latest version of ide and your example OTASketchDownload gives an error because
httpclient does not wait for past parameters.

``
EthernetClient transport;
HttpClient http(transport, SERVER, SERVER_PORT); <--------------------------------------error

char buff[32];
snprintf(buff, sizeof(buff), PATH, VERSION + 1);

Serial.print("Check for update file ");
Serial.println(buff);
``

exit status 1
no matching function for call to 'HttpClient::HttpClient(EthernetClient&, const char*&, const short unsigned int&)'


I want to update a mega2560 r3 over ethernet.
It is not clear to me if the boot should be changed to optiboot in mega 2560.

Greetings and thanks for your time
Francisco

Serial monitor using ArduinoOTA?

I tried launching Arduino Serial Monitor but it returns the following error:
Serial monitor is not supported on network ports such as 192.168.2.181 for the null in this release

Is it possible to run Serial Monitor over ArduinoOTA? Am I missing something?

My code:

// Setup OTA ----------------------------------------------------------------------------
  ArduinoOTA.setHostname("MY_HOSTMANE");
  ArduinoOTA.setPassword("MY_SUPER_DIFFICULT_TOKEN");
  ArduinoOTA.onStart([]() {
    Serial.println("Recieving new update ...");
  });
  ArduinoOTA.onEnd([](){  
    Serial.println("Recieved new update");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Recieving: %u%%r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Erro [%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Authentication failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Failed at the start");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connection failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Reception failed");
    else if (error == OTA_END_ERROR) Serial.println("Failed at the end");
  });
  ArduinoOTA.begin();

MKR1000 OTA not showing?

Hi there,
Saw the other topics, but i have a different scenario
So im using the 1.8.9 ide, latest WiFi101 (0.16.0) and latest firmware (19.6.1) and ArduinoOTA 1.0.1

Now i'm on windows, but i have multiple tools to check the mDNS. And it's just not showing up.
Even when i try the example OTA it's not showing. Also tried the WiFi101OTA lib not working either.

It did work couple off weeks ago, now it suddenly stopped working?
My default sketch is running: WiFi101, ArduinoOTA, PubSubClient (MQTT), WDTZero

Any more ideas how to trouble shoot this issue?
This is the only thing i see with packet sniffing

22:35:26.287088 f8:f0:05:ed:fb:5e > 01:00:5e:00:00:fb, ethertype IPv4 (0x0800), length 60: (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    10.10.1.90 > 224.0.0.251: igmp v2 report 224.0.0.251
22:35:26.584616 f8:f0:05:ed:fb:5e > 01:00:5e:00:00:fb, ethertype IPv4 (0x0800), length 60: (tos 0xc0, ttl 1, id 2, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
    10.10.1.90 > 224.0.0.251: igmp v2 report 224.0.0.251

help for macOS

I worked on a windows machine and I was able to change bootloader on an Arduino mega.
I have a Mac computer which I mainly use and was able to OTA send firmware to the Mega board without any modifications on the IDE.

However, after changing bootloader, I cannot flash by serial port. I know I need to use the "my_board" definitions, but any idea where should I place it on a macOS computer?

many thanks

Hello,I have a problem while I try to write the program into flash by OTA

Log:
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/arduinoOTA -address 192.168.0.170 -port 65280 -username arduino -password password -sketch C:\Users\DELL\AppData\Local\Temp\arduino_build_272676/ArduinoOTA1.ino.bin -upload /sketch -b
Connecting to board ... done
Uploading sketch ... done
Flashing sketch ... Error flashing the sketch
Error flashing the sketch

Why did it happend and how can I resolve it?I try to find Baidu and Google but there is no solution.

License?

Congratulations on your v1.0 release @JAndrassy!

May I make a suggestion to put a LICENSE file in the root directory of this repository?
That just makes the software licensing clear.

Support for Arduino DUE (Atmel SAM3X8E ARM Cortex-M3)

Hi!
Is it possible to extend OTA support for Atmel SAM3X8E ARM Cortex-M3 ?
The architecture is quite similar with already supported platforms and from the first look, it should be possible to do, but lays behind my skills
I will appreciated for any kind help or advises

OTA using ethernet checksum failed

i'm using atmega2560 connected to ethernet module to get binary file of esp32 then send the file through uart to esp32 to update its firmware.

I'm trying to get binary file data through ethernet module using HttpClient library but when the data stored in esp32 OTA partition, then i'm getting:
esp_image: Checksum failed . Calculated 0xad read 0x0

when i checked some of the received data from the binary file before being sent to esp32, i can see that some location have 0x0 instead of the right value it should be.

that's part of my code where i read the binary file and sent it to esp32.

EthernetClient transport;
HttpClient client(transport, SERVER, SERVER_PORT);
Serial.print("Check for update file ");
Serial.println(PATH);
client.get(PATH);
int statusCode = client.responseStatusCode();
Serial.print("Update status code: ");
Serial.println(statusCode);
if (statusCode != 200)
{
client.stop();
return;
}
long bin_length = client.contentLength();
if (bin_length == HttpClient::kNoContentLengthHeader) {
client.stop();
Serial.println("Server didn't provide Content-length header. Can't continue with update.");
return;
}
Serial.print("Server returned update file of size ");
Serial.print(bin_length);
Serial.println(" bytes");
ESPSerial.print(String(bin_length)); //send file size to ESP
delay(10000);
byte data_char;
int counter=0;
while (bin_length > 0)
{
if (!client.readBytes(&data_char, 1)) // reading a byte with timeout
break;
ESPSerial.write(data_char); //here send data to esp32
if(bin_length==0||bin_length==1||bin_length==2){Serial.print("last data=");Serial.println(data_char,HEX);}
counter++;
if(counter==1000)
{
Serial.println(bin_length);
counter=0;
delay(100);
}
bin_length--;
}
client.stop();
if (bin_length > 0)
{
Serial.print("Timeout downloading update file at ");
Serial.print(bin_length);
Serial.println(" bytes. Can't continue with update.");
return;
}

anyone could help me with this problem.

thanks in advance

Uploading large program (~70kb) fails using httpclient

I have a mega2560 and a w5500. Those are connected to MQTT. So i can trigger a update using a MQTT command. I used the code from the advanced example using httpclient.
It works fine if i flash a small program. But if i try to program i made ~71kb it fails to boot afterwards. I can upload the bin file using avrdude and it works/boots just fine.

ESP32 OTA update via Ethernet (UIPEthernet)

Hi there,

I'd like to know if it's possible to update a sketch on an ESP32 via Ethernet with a ENC28J60 module? I'm using the UIPEthernet library. (Connection to the network is OK and I'm able to send requests over the network via Ethernet.)

The OTEthernet example does not compile, I got the following error:

'InternalStorage'` was not declared in this scope

I tried to #include <InternalStorage.h>, and the error changes to:

no matching function for call to 'ArduinoOTAClass::begin(IPAddress, const char [8], const char [9], InternalStorageClass&)'

Any idea?

Thanks! ;)

Add MKR WiFi 1010 to "Boards tested" list

I have this working now using InternalStorage. When using SDStorage the upload completed successfully and the Arduino rebooted, but SDU didn't apply the update to the sketch. Since I have plenty of Flash memory space for my sketch, I opted not to try to debug that any further :-)

Info: PlatformIO, Arduino Mega, build & upload OTA

Tested for macOS.

  1. add to platformio.ini
 extra_scripts = post:extra_scripts.py
 upload_protocol = custom
 upload_flags =
   http://arduino:password@ip_address:65280/sketch
  1. write extra_scripts.py next to platform.ini
Import("env", "projenv")

env.Replace(    
    UPLOADCMD="curl --request POST --data-binary @\"$BUILD_DIR\"${PROGNAME}.bin $UPLOADERFLAGS"
)

env.AddPostAction(
    "$BUILD_DIR/${PROGNAME}.elf",
    env.VerboseAction(" ".join([
        "$OBJCOPY", "-O", "binary",
        "\"$BUILD_DIR\"/${PROGNAME}.elf", "\"$BUILD_DIR\"${PROGNAME}.bin"
    ]), "Building $BUILD_DIR/${PROGNAME}.bin")
)

LS.

Need help using ArduinoOTA with Arduino Mega

Hi!

I have an Arduino Mega 2560 and would like to do OTA updates of my sketches.
As I understand, this is possible with you project.
Is there a step by step tutorial how to use it?
How can I get network ports in my Arduino IDE?

Thanks,
Sandra

OTA Program with SD Card crashing at 60% of program space used

Hello,
Without the SD card and the ArduinoOTA library, my Arduino MKR1010 would crash at about 40% of program space used. However, now with the SD card the program crashes at about 61% of the available flash used. When I program via the Aruino IDE, it still says that the maximum program memory space is 262144 bytes even though I have connected the micro SD card. If the program binary is stored on the SD card why is my program crashing?
I don't think I am using very much RAM. This is for a FASTLED application and I am using the IoT MQTT communication capability of the Arduino MKR101. Each FASTLED pixel should use 3 bytes of SRAM and the Arduino MKR1010 should have 32kB of SRAM. I am storing some strings for print statements and I am doing networking and I have some animation functions.
Thank you

Arduino Mega 2560 - OTA failed

I tried to push a new firmware using the Arduino GUI on a Arduino Mega 2560 board. I had already flashed a code with your example, therefore I found a new network port on the GUI successfully.

During the OTA flashing a new window came up asking my password. I gave the correct password but then the password window came up again and again like I had given a wrong password.

It looks that for me the process cannot complete successfully.

In the Arduino GUI there was the following error message (in orange)

Resetting the board
Failed to reset the board, upload failed
Resetting the board
Failed to reset the board, upload failed
Resetting the board
Failed to reset the board, upload failed

Support for integration with WiFiEspAT.h

I try to use the WIFI101_OTA example:

#include <SPI.h>
#include <WiFiEspAT.h>
#include <ArduinoOTA.h>

#include "arduino_secrets.h"
.
.
.

In file included from C:\Users\A410882\AppData\Local\Temp\arduino_modified_sketch_74376\WiFi101_OTA.ino:23:0:

C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA\src/ArduinoOTA.h:109:2: error: #error "Network library not included or not supported"

#error "Network library not included or not supported"

^~~~~

Multiple libraries were found for "SPI.h"
Used: C:\Users\A410882\AppData\Local\Arduino15\packages\MegaCore\hardware\avr\2.0.2\libraries\SPI
Multiple libraries were found for "WiFiEspAT.h"
Used: C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT
Multiple libraries were found for "ArduinoOTA.h"
Used: C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA
Using library SPI at version 1.0 in folder: C:\Users\A410882\AppData\Local\Arduino15\packages\MegaCore\hardware\avr\2.0.2\libraries\SPI
Using library WiFiEspAT at version 1.0.2 in folder: C:\Users\A410882\Documents\Arduino\libraries\WiFiEspAT
Using library ArduinoOTA at version 1.0.1 in folder: C:\Users\A410882\Documents\Arduino\libraries\ArduinoOTA
exit status 1
Error compiling for board ATmega2560.

MKR WiFi 1010/MKR Ethernet Shield "Error flashing the sketch"

I've got an MKR WiFi 1010 (same SAMD21 core as the MKR Zero, and should be same configuration), plus an MKR Ethernet Shield. I'm using the Ethernet for LAN connectivity, and have a microSD card in the slot on that shield so I can use SDStorage for ArduinoOTA.

I've copied the relevant example code, and my code is here.

When I try an "Upload using programmer" in the IDE (using version 1.8.13), the process ends with:

Sketch uses 86916 bytes (33%) of program storage space. Maximum is 262144 bytes.
Global variables use 6568 bytes (20%) of dynamic memory, leaving 26200 bytes for local variables. Maximum is 32768 bytes.
/home/kpfleming/.arduino15/packages/arduino/tools/arduinoOTA/1.2.1/bin/arduinoOTA -address 192.168.66.42 -port 65280 -username garaduino -password lO01ic&7#pBMicMo -sketch /tmp/arduino_build_17376/garaduino.ino.bin -upload /sketch -b 
Connecting to board ...  done
Uploading sketch ... Error flashing the sketch
Error flashing the sketch

Sometimes I can see 'done' on the 'Uploading sketch' line, but sometimes not. Regardless, I always see two "Error flashing the sketch" lines, even though I'm trying to use SDStorage.

I have confirmed (using the CardInfo SD example project) that the microSD card is properly seen, and has a 128MB FAT-16 filesystem on it (which is empty).

I have a feeling I missing something really basic and obvious here, but of course can't figure out what it is. Should I try using InternalStorage instead, since my sketch consumes less than 50% of the total Flash space on the processor?

ArduinoOTA with Ethernet3.h?

Is it possible to use the ArduinoOTA with ethernet3 from https://github.com/sstaub/Ethernet3

The manufacturer of my Mega 2560 board with Ethernet advices to use the Arduino Lib Ethernet3.

I get the board working with
#include <Ethernet.h>
OR
#include <Ethernet3.h>

But when I use ArduinoOTA I can not use the Ethernet3 Lib. I get compile errors:

In file included from /Users/Paul/Documents/Arduino/_robotdyn_ethernet_mega/OTEthernet5/OTEthernet5.ino:5:0:
/Users/Paul/Documents/Arduino/libraries/ArduinoOTA/src/ArduinoOTA.h:133:2: warning: #warning "Network library not included or not supported" [-Wcpp]
 #warning "Network library not included or not supported"
  ^~~~~~~
/Users/Paul/Documents/Arduino/_robotdyn_ethernet_mega/OTEthernet5/OTEthernet5.ino: In function 'void setup()':
OTEthernet5:50:3: error: 'ArduinoOTA' was not declared in this scope
   ArduinoOTA.begin(Ethernet.localIP(), "mega_eth_1", "password", InternalStorage);
   ^~~~~~~~~~
/Users/Paul/Documents/Arduino/_robotdyn_ethernet_mega/OTEthernet5/OTEthernet5.ino:50:3: note: suggested alternative: 'Arduino_h'
   ArduinoOTA.begin(Ethernet.localIP(), "mega_eth_1", "password", InternalStorage);
   ^~~~~~~~~~
   Arduino_h
/Users/Paul/Documents/Arduino/_robotdyn_ethernet_mega/OTEthernet5/OTEthernet5.ino: In function 'void loop()':
OTEthernet5:55:3: error: 'ArduinoOTA' was not declared in this scope
   ArduinoOTA.poll();
   ^~~~~~~~~~
/Users/Paul/Documents/Arduino/_robotdyn_ethernet_mega/OTEthernet5/OTEthernet5.ino:55:3: note: suggested alternative: 'Arduino_h'
   ArduinoOTA.poll();
   ^~~~~~~~~~
   Arduino_h
exit status 1
'ArduinoOTA' was not declared in this scope

Are they not compatible?
I wat to use ethernet3 because the manufacturer advices it and it has Wake on Lan (WOL) and custom hostname for DHCP.

Is support for PlatformIO in your roadmap?

First of all I want to thank you guys for your hard work in coming up with a really useful tool for Arduino development. I have been using your library for a few months now and I really love it's simplicity and functionality.

Unfortunately my projects have become too large to keep developing directly on Arduino IDE and the best solution I have been able to find is PlatformIO which also seems to have some really great features so far. I was very disappointed to see that your library is not available there and also that you recommend not using it. Is there are plans in your roadmap to add support for PlatformIO? I really hope you do, but if you are not planning on it I would appreciate if you could recommend an alternative to your library over there.

Much appreciated,

Ignacio

MKR 1010 what is wrong ?

Hi,

Sorry to disturb, but after a few hours of searching I couldn't find an answer to my concern.

I uploaded the WiFi101_OTA sketch on my MKR 1010, and let the card connect to WiFi.
And no port is showing, so I try :

  • Bonjour browser on my Mac --> Nothing appear
  • Bonjour browser on my Android --> Nothing appear
  • OTA Upload from IDE without 'network port' --> Error "Connecting to board ... Error flashing the sketch"
  • Spend a lot of time trying to change my OS / Network parameters...
  • Finally I uploaded the BasicOTA sketch on my Esp32 and everything work fine but still nothing with my MKR !

So why my MKR 1010 won't show itself :( ?

Thanks you for your help :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.