ABB Aurora Web Inverter Monitor (WIM): upload the sketch and front end – 9

Spread the love

I’m going to add this section because I realized that the sketch is quite complex and a little guide can help in the operation.

ABB PowerOne Aurora Web Inverter Centraline Upload sketch and front end
ABB PowerOne Aurora Web Inverter Centraline Upload sketch and front end

Install Optional Tools

The use of these tools is optional as they are useful, but not required.


Git 2.0 or greater is required only if you want to clone the source code locally. At a command line, you can verify if git is installed by running the command:

git --version

If it is not properly installed or is not a version greater than 2.0, visit to download and install a version for your platform.

Get the Source Code via Git

If you have git installed on your workstation, you can use the following instructions to pull the source code into your working directory.

  1. From the command-line, navigate into the working directory on your desktop: arduino-projects
  2. Run the following command to pull the source code to a working directory:
git clone

Get the Source Code via Download

If you do not have git installed, download and unzip the zipped contents of the sample from into your desktop working directory: Aurora_Web_Invert_Monitor.


Now you need to install a long list of library

Now after you had upload the code you must upload the data folder, to do that you can follow this guide “WeMos D1 mini (esp8266), integrated SPIFFS Filesystem“.

To upload the data you can also uncomment the ftp server define

// Uncomment to enable server ftp.
#define SERVER_FTP

if you do that you can upload web part data, the user is aurora and password aurora, pay attention to your client configuration, follow this tutorial “FTP server on esp8266 and esp32“.

Filezilla configuration for access esp8266, select plain FTP on Manage Site

For the NTP management I use the european server, and It’s synchronized one time per hour, if you want change that the line to modify is this

NTPClient timeClient(ntpUDP, "", 0*60*60, 60*60*1000);

To work you need to connect the SD adapter with relative SD.

Upload precompiled firmware (reccomended)

To simplify the process I add the precompiled firmware, you can find 4 files:



Upload from command prompt or

First we look that the core component of esp8266 core need python installed, and when install It remember to add to path (for windows)

ESP Tools Install Python and add It to path
ESP Tools Install Python and add It to path

In your installation of Arduino IDE you can find file that is the same of

You can install only for python with a simple command

pip install esptool

or you can download from here the compiled version, remember to add the executable to path.

Then if you launch esptool on your cmd you have this information

D:\Projects\Arduino\sloeber-workspace-OTA\keys>esptool v3.1
usage: esptool [-h]
               [--chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}]
               [--port PORT] [--baud BAUD]
               [--before {default_reset,usb_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset,no_reset_stub}]
               [--no-stub] [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               [--connect-attempts CONNECT_ATTEMPTS]
               ... v3.1 - ESP8266 ROM Bootloader Utility

positional arguments:
                        Run esptool {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from an application image
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    chip_id             Read Chip ID from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash_status   Read SPI flash status register
    write_flash_status  Write SPI flash status register
    read_flash          Read SPI flash content
    verify_flash        Verify a binary blob against flash
    erase_flash         Perform Chip Erase on SPI flash
    erase_region        Erase a region of the flash
    merge_bin           Merge multiple raw binary files into a single file for
                        later flashing
    version             Print esptool version
    get_security_info   Get some security-related data

optional arguments:
  -h, --help            show this help message and exit
  --chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}, -c {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3beta3,esp32c3,esp32c6beta}
                        Target chip type
  --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate used when flashing/reading
  --before {default_reset,usb_reset,no_reset,no_reset_no_sync}
                        What to do before connecting to the chip
  --after {hard_reset,soft_reset,no_reset,no_reset_stub}, -a {hard_reset,soft_reset,no_reset,no_reset_stub}
                        What to do after is finished
  --no-stub             Disable launching the flasher stub, only talk to ROM
                        bootloader. Some features will not be available.
  --trace, -t           Enable trace-level output of interactions.
  --override-vddsdio [{1.8V,1.9V,OFF}]
                        Override ESP32 VDDSDIO internal voltage regulator (use
                        with care)
  --connect-attempts CONNECT_ATTEMPTS
                        Number of attempts to connect, negative or 0 for
                        infinite. Default: 7.
Command line parameters

Now we can better understand the parameter:

  • --chip esp8266: here we are going to select the correct chip;
  • --port COM17: we set the port;
  • --baud 921600: here we have the transfer speed;
  • erase_flash: perform Chip Erase on SPI flash (clear all information);
  • --before default_reset: pre-upload operation;
  • --after hard_reset: post-upload operation;
  • write_flash: write a binary blob to flash;
  • 0x0 <binary file>: write to address the file.

To upload you can try to use esptool with these command:


esptool --port /dev/COM24 write_flash -fm dio 0x00000 Aurora_Web_Inverter_Monitor.d1_mini.bin


esptool --port /dev/COM24 write_flash -fm dio 0x10000 Aurora_Web_Inverter_Monitor.spiffs.bin

Upload with GUI tool

You can use a GUI tool from espressif to simplify the process, Espressif Download Tool can download from here.

With the gui we must simply set the correct files and address.

esp8266 espressif download tool flash filesystem littlefs spiffs binary
esp8266 espressif download tool flash filesystem littlefs spiffs binary

You must select a firmware version and set address 0x0, and filesystem with address 0x200000, select correct port and click to start.

Memory problem in sending emails

If you encounter problems sending emails, you need to install everything with version 2.4.2 of the esp8266 core environment.

The library list changes slightly due to the renewed handling of SD cards.

  • ABB_Aurora_Solar_Inverter_Library: comment //#define ADD_SOFTWARE_SERIAL
  • Wire
  • SD
  • SPI
  • ArduinoThread
  • ESP8266WiFi
  • TimeLib
  • NTPClient
  • ESP8266mDNS
  • ESP8266WebServer
  • ArduinoJson
  • WiFiManager
  • DNSServer
  • EMailSender: you need to set #define DEFAULT_EMAIL_NETWORK_TYPE_ESP8266 NETWORK_ESP8266_242
  • Timezone
  • WebSockets
  • Hash

First time start

First remember to configure the WiFi connection, read the relative article “ABB (Power One) Aurora Web Inverter Monitor (WIM): WIFI configuration and REST Server“.

WiFiManager select AP

When you have configured the WiFi It’s better (but not needed) if you connect an USB to TTL on Serial1, check how to do that on “ABB Aurora web inverter centraline (WIC): debug and notification“, remember to uncomment the debug define

// Uncomment to enable printing out nice debug messages.

From the Serial1 output you can grab the ip address to connect the first time with the browser.

After the connection go to configuration section and set a Static IP

ABB Aurora Inverter Network Configuration
ABB Aurora Inverter Network Configuration

Then set the correct DST (or if not defined set GTM) and admin email.

ABB Aurora Timezone configuration

Next step (very important) configure the notification of the Inverter error, this features can save you money loss if something goes wrong.

ABB Aurora inverter notification configuration

Now all is configured, wait a day that the WIC store some data then return to the web interface and check the charts.


Remember for all information or issue use the forum.

  1. ABB Aurora Web Inverter Monitor (WIM): project introduction
  2. ABB Aurora Web Inverter Monitor (WIM): wiring Arduino to RS-485
  3. ABB Aurora Web Inverter Monitor (WIM): storage devices
  4. ABB Aurora Web Inverter Monitor (WIM): debug and notification
  5. ABB Aurora Web Inverter Monitor (WIM): set time and UPS
  6. ABB Aurora Web Inverter Monitor (WIM): WIFI configuration and REST Server
  7. ABB Aurora Web Inverter Monitor (WIM): WebSocket and Web Server
  8. ABB Aurora Web Inverter Monitor (WIM): Wiring and PCB soldering
  9. ABB Aurora Web Inverter Monitor (WIM): upload the sketch and front end
  10. ABB Aurora web inverter Monitor (WIM): 3D printed case to complete project
  11. ABB Aurora web inverter monitor (WIM): repair E013 error

GitHub repository with all code BE and FE transpiled

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *