Open source tools to allow working with ESP devices in the browser

Overview

ESP Web Tools

Allow flashing ESPHome or other ESP-based firmwares via the browser. Will automatically detect the board type and select a supported firmware.

<esp-web-install-button
  manifest="firmware_esphome/manifest.json"
></esp-web-install-button>

Manifest definition:

{
  "name": "ESPHome",
  "builds": [
    {
      "chipFamily": "ESP32",
      "improv": true,
      "parts": [
        { "path": "bootloader.bin", "offset": 4096 },
        { "path": "partitions.bin", "offset": 32768 },
        { "path": "ota.bin", "offset": 57344 },
        { "path": "firmware.bin", "offset": 65536 }
      ]
    },
    {
      "chipFamily": "ESP8266",
      "parts": [
        { "path": "esp8266.bin", "offset": 0 },
      ]
    }
  ]
}

Allows for optionally passing an attribute to trigger an erase before installation.

<esp-web-install-button
  manifest="firmware_esphome/manifest.json"
  erase-first
></esp-web-install-button>

All attributes can also be set via properties (manifest, eraseFirst)

Styling

Attributes

The following attributes are automatically added to <esp-web-install-button> and can be used for styling:

Attribute Description
install-supported Added if installing firmware is supported
install-unsupported Added if installing firmware is not supported
active Added when flashing is active

You can add the following attributes or properties to change the UI elements:

Attribute Property Description
show-log showLog Show a log style view of the progress instead of a progress bar
hide-progress hideProgress Hides all progress UI elements

CSS custom properties (variables)

The following variables can be used to change the colors of the default UI elements:

  • --esp-tools-button-color
  • --esp-tools-button-text-color
  • --esp-tools-success-color
  • --esp-tools-error-color
  • --esp-tools-progress-color
  • --esp-tools-log-background
  • --esp-tools-log-text-color

Slots

The following slots are available:

Slot name Description
activate Button to start the flash progress
unsupported Message to show when the browser is not supported
not-allowed Message to show when not a secure context

Events

When the state of flashing changes, a state-changed event is fired.

A state-changed event contains the following information:

Field Description
state The current state
message A description of the current state
manifest The loaded manifest
build The manifest's build that was selected
chipFamily The chip that was detected; "ESP32" | "ESP8266" | "ESP32-S2" | "Unknown Chip"
details An optional extra field that is different per state

Development

Run script/develop. This starts a server. Open it on http://localhost:5000.

Comments
  • Arduino 2.0.4, PlatformIO 5.1.0, LittleFS is corrupted

    Arduino 2.0.4, PlatformIO 5.1.0, LittleFS is corrupted

    Hi all, as soon as I update Arduino Core from 2.0.3 to 2.0.4 and PlatformIO from 5.0.0 to 5.1.0 my Little FS is corrupted after flashing my firmware with esp web tools.

    this is my simple json:

    {
       "name":"Glow Worm Luciferin FULL",
       "version":"5.6.3",
       "new_install_improv_wait_time":40,
       "builds":[
          {
             "chipFamily":"ESP32",
             "parts":[
                {
                   "path":"GlowWormLuciferinFULL_ESP32_firmware-factory.bin",
                   "offset":0
                }
             ]
          },
          {
             "chipFamily":"ESP8266",
             "parts":[
                {
                   "path":"GlowWormLuciferinFULL_ESP8266_firmware.bin",
                   "offset":0
                }
             ]
          }
       ]
    }
    

    and this is the script that I use to create a factory bin.

    def esp32_create_factory_bin(source, target, env):
        print("Generating factory bin for genuine esp units")
        #offset = 0x1000
        offset = 0x0
        new_file_name = env.subst("$BUILD_DIR/${PROGNAME}-factory.bin")
        sections = env.subst(env.get('FLASH_EXTRA_IMAGES'))
        new_file = open(new_file_name,"wb")
        for section in sections:
            sect_adr,sect_file = section.split(" ",1)
            source = open(sect_file,"rb")
            new_file.seek(int(sect_adr,0)-offset)
            new_file.write(source.read());
            source.close()
    
        firmware = open(env.subst("$BUILD_DIR/${PROGNAME}.bin"),"rb")
        new_file.seek(0x10000-offset)
        new_file.write(firmware.read())
        new_file.close()
        firmware.close()
    
    env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_factory_bin)
    

    It worked well before but now it is broken... As soon as I flash the firmware with Arduino core 2.0.4, LittleFS got corrupted. It works well with Arduino core 2.0.3. I think that this can be related to flash mode (QIO is now needed for some boards), is there a way to specify the flash mode with esp web tools?

    Any suggestions will be really appreciated :)

    Thanks Davide

    opened by sblantipodi 30
  • Bug when using ESP32 with Arduino ESP32 V2.0.2 (based on esp-idf v4.4)

    Bug when using ESP32 with Arduino ESP32 V2.0.2 (based on esp-idf v4.4)

    Flashing using esp tool is OK esptool.exe --chip esp32 --port COM6 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0xe000 boot_app0.bin 0x1000 Programm.ino.bootloader.bin 0x10000 Programm.ino.bin 0x8000 Programm.ino.partitions.bin

    But when esp web tools are used (V6.1.1, V5.3.0 tested too) the endless reset loop is shown in terminal log:

    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:2
    load:0x3fff0030,len:1184
    load:0x40078000,len:12804
    ho 0 tail 12 room 4
    load:0x40080400,len:3032
    entry 0x400805e4
    

    Manifest file used:

    {
      "name": "Program",
      "version": "11",
      "builds": [
        {
          "chipFamily": "ESP32",
          "parts": [
            { "path": "Programm.ino.bootloader.bin", "offset": 4096 },
            { "path": "Programm.ino.partitions.bin", "offset": 32768 },
            { "path": "boot_app0.bin", "offset": 57344 },
            { "path": "Programm.ino.bin", "offset": 65536 }
          ]
        }
      ]
    }
    

    Flashing with ESP32 download tool (V3.8.8) is also OK:

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0030,len:1184
    load:0x40078000,len:12804
    ho 0 tail 12 room 4
    load:0x40080400,len:3032
    entry 0x400805e4
    Booting...
    

    Another important observation:

    1. If I flash Arduino-ESP32 V1.0.6 based software using esptool or esp32 downloader, then I can update via OTA to Arduino-ESP32 V2.0.2 based software and it works.
    2. If I flash Arduino-ESP32 V1.0.6 based software using web tools, then I can update via OTA to Arduino-ESP32 V2.0.2 based software BUT it doesnt work (the same error as above).
    bug 
    opened by wladwnt 20
  • ESP8266EX Support?

    ESP8266EX Support?

    I can successfully flash my ESP32 but not my two NodeMCU (v2 and v3), which use the ESP8266EX Chip.

    error: "failed_initialize", details: Error: Unknown Chip

    esptool flash_id returns:

    Connecting....
    Detecting chip type... ESP8266
    Chip is ESP8266EX
    Features: WiFi
    Crystal is 26MHz
    MAC: c4:5b:be:60:dc:da
    Uploading stub...
    Running stub...
    Stub running...
    Manufacturer: d8
    Device: 4016
    Detected flash size: 4MB
    
    opened by ghtomcat 20
  • arduino-esp32 2.0.4 breaks esp-web-tools

    arduino-esp32 2.0.4 breaks esp-web-tools

    I was trying to implement this (as I have done before) when kept getting these errors after the esp32 reboot.

    23:28:30.382 -> ets Jun  8 2016 00:22:57
    23:28:30.382 -> 
    23:28:30.382 -> rst:0x1 (POWERON_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
    23:28:30.382 -> configsip: 0, SPIWP:0xee
    23:28:30.382 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    23:28:30.382 -> mode:QIO, clock div:2
    23:28:30.382 -> load:0x3fff0030,len:1344
    23:28:30.382 -> load:0xf01d020c,len:-2118480896
    23:28:30.430 -> 1162 mmu set 00010000, pos 00010000
    23:28:30.430 -> 1162 mmu set 00020000, pos 00020000
    23:28:30.430 -> 1162 mmu set 00030000, pos 00030000
    23:28:30.477 -> 1162 mmu set 00040000, pos 00040000
    23:28:30.477 -> 1162 mmu set 00050000, pos 00050000
    23:28:30.524 -> 1162 mmu set 00060000, pos 00060000
    23:28:30.524 -> 1162 mmu set 00070000, pos 00070000
    23:28:30.570 -> 1162 mmu set 00080000, pos 00080000
    23:28:30.570 -> 1162 mmu set 00090000, pos 00090000
    23:28:30.570 -> 1162 mmu set 000a0000, pos 000a0000
    23:28:30.616 -> 1162 mmu set 000b0000, pos 000b0000
    23:28:30.616 -> 1162 mmu set 000c0000, pos 000c0000
    23:28:30.662 -> 1162 mmu set 000d0000, pos 000d0000
    23:28:30.662 -> 1162 mmu set 000e0000, pos 000e0000
    23:28:30.709 -> 1162 mmu set 000f0000, pos 000f0000
    23:28:30.709 -> 1162 mmu set 00100000, pos 00100000
    23:28:30.709 -> ets Jun  8 2016 00:22:57
    23:28:30.709 -> 
    23:28:30.709 -> rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    23:28:30.755 -> configsip: 0, SPIWP:0xee
    23:28:30.755 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    23:28:30.755 -> mode:QIO, clock div:2
    23:28:30.755 -> load:0x3fff0030,len:1344
    23:28:30.755 -> load:0xf01d020c,len:-2118480896
    23:28:30.755 -> 1162 mmu set 00010000, pos 00010000
    23:28:30.802 -> 1162 mmu set 00020000, pos 00020000
    

    Arduino 1.19 with arduino-esp32 2.04 and 2.03 will both program the esp32 fine, but when I grab the 4 files for esp32-web-tools, then the 2.04 files do not work -- they produce the stuff above.

    Arduino produces the same programming strings here:

    204 C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\tools\esptool_py\3.3.0/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x1000 C:\Users\James\AppData\Local\Temp\arduino_build_686088/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bootloader.bin 0x8000 C:\Users\James\AppData\Local\Temp\arduino_build_686088/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.partitions.bin 0xe000 C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.4/tools/partitions/boot_app0.bin 0x10000 C:\Users\James\AppData\Local\Temp\arduino_build_686088/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bin 
    203 C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\tools\esptool_py\3.3.0/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x1000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bootloader.bin 0x8000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.partitions.bin 0xe000 C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.3/tools/partitions/boot_app0.bin 0x10000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bin 
    
    

    The files are slightly different sizes for bootloader.bin and ino.bin, and the other two are the same files.

    image

    And I'm using the identical manifest.json

    {
      "name": "ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino",
      "new_install_prompt_erase": false,
      "builds": [
        {
          "chipFamily": "ESP32",
          "parts": [
            { "path": "ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bootloader.bin", "offset": 4096 },
            { "path": "ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.partitions.bin", "offset": 32768 },
            { "path": "boot_app0.bin", "offset": 57344 },
            { "path": "ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bin", "offset": 65536 }
          ]
        }
      ]
    }
    

    2.0.3 files work and 2.0.4 files do not.

    This looks like a similar issue to this one (here):

    https://github.com/esphome/esp-web-tools/issues/278

    ... and this one over at arduino-esp32

    https://github.com/espressif/arduino-esp32/issues/7212

    There seems to be discussion about qio, dio, dout programming and the 40/80 flash frequency. The two arduino esptool strings are both dio above, even though Arduino is set to qio. Arduino can program it fine at 40 or 80.

    Here is the 2.03 40 listing if there is something in there that a wise-man can see:

    C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\tools\esptool_py\3.3.0/esptool.exe --chip esp32 --port COM7 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bootloader.bin 0x8000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.partitions.bin 0xe000 C:\ArduinoPortable\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.3/tools/partitions/boot_app0.bin 0x10000 C:\Users\James\AppData\Local\Temp\arduino_build_830660/ESP32-CAM-Video-Recorder-junior-60x.4.7.srt.4.ino.bin 
    esptool.py v3.3
    Serial port COM7
    Connecting.....
    Chip is ESP32-D0WDQ6 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: 0c:b8:15:f4:14:50
    Uploading stub...
    Running stub...
    Stub running...
    Changing baud rate to 460800
    Changed.
    Configuring flash size...
    Flash will be erased from 0x00001000 to 0x00005fff...
    Flash will be erased from 0x00008000 to 0x00008fff...
    Flash will be erased from 0x0000e000 to 0x0000ffff...
    Flash will be erased from 0x00010000 to 0x00109fff...
    Compressed 18528 bytes to 12759...
    Writing at 0x00001000... (100 %)
    Wrote 18528 bytes (12759 compressed) at 0x00001000 in 0.6 seconds (effective 231.4 kbit/s)...
    Hash of data verified.
    Compressed 3072 bytes to 119...
    Writing at 0x00008000... (100 %)
    Wrote 3072 bytes (119 compressed) at 0x00008000 in 0.1 seconds (effective 393.2 kbit/s)...
    Hash of data verified.
    Compressed 8192 bytes to 47...
    Writing at 0x0000e000... (100 %)
    Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.2 seconds (effective 419.4 kbit/s)...
    Hash of data verified.
    Compressed 1021040 bytes to 639310...
    Writing at 0x00010000... (2 %)
    Writing at 0x0001c720... (5 %)
    Writing at 0x00028395... (7 %)
    Writing at 0x00031ec1... (10 %)
    Writing at 0x0004107c... (12 %)
    Writing at 0x00046e7d... (15 %)
    Writing at 0x0004d569... (17 %)
    Writing at 0x00053360... (20 %)
    Writing at 0x00058da9... (22 %)
    Writing at 0x0005e522... (25 %)
    Writing at 0x00063caf... (27 %)
    Writing at 0x000690e3... (30 %)
    Writing at 0x0006e444... (32 %)
    Writing at 0x00073733... (35 %)
    Writing at 0x00078abf... (37 %)
    Writing at 0x0007dda1... (40 %)
    Writing at 0x00083353... (42 %)
    Writing at 0x000885a7... (45 %)
    Writing at 0x0008d4f0... (47 %)
    Writing at 0x00092cfe... (50 %)
    Writing at 0x00099976... (52 %)
    Writing at 0x0009ec10... (55 %)
    Writing at 0x000a45dc... (57 %)
    Writing at 0x000a9aea... (60 %)
    Writing at 0x000aecaf... (62 %)
    Writing at 0x000b4054... (65 %)
    Writing at 0x000b94e1... (67 %)
    Writing at 0x000be9d2... (70 %)
    Writing at 0x000c42ec... (72 %)
    Writing at 0x000ca090... (75 %)
    Writing at 0x000cfa4c... (77 %)
    Writing at 0x000d5400... (80 %)
    Writing at 0x000ddea4... (82 %)
    Writing at 0x000e7502... (85 %)
    Writing at 0x000ec67c... (87 %)
    Writing at 0x000f3249... (90 %)
    Writing at 0x000f8930... (92 %)
    Writing at 0x000fe05e... (95 %)
    Writing at 0x00103465... (97 %)
    Writing at 0x001092b4... (100 %)
    Wrote 1021040 bytes (639310 compressed) at 0x00010000 in 15.2 seconds (effective 539.0 kbit/s)...
    Hash of data verified.
    
    

    Any ideas ... other than stick with 2.03?

    opened by jameszah 18
  • Improv WiFi works most of the time but not always.

    Improv WiFi works most of the time but not always.

    Hi, I have seen that improv wifi is not really reliable.

    It works most of the time but not always.

    Sometimes, when I try to flash the ESP8266, it asks me for the WiFi SID and password, I enter the credentials, and then it hangs on this screen.

    It happen on my implementation here: https://sblantipodi.github.io/glow_worm_luciferin/beta.html

    and on the one on the official esp web tools page.

    image

    Is this a bug? I tried changing the router and the esp8266 but same problem.

    opened by sblantipodi 16
  • S3 flashing does not work with esp-web-tools

    S3 flashing does not work with esp-web-tools

    opened by Jason2866 15
  • Allow to scale layout of the install dialog

    Allow to scale layout of the install dialog

    See the screenshot: image

    Also the "All existing data will be erased from your device" is a bit frightening. Let's hope it will only flash what I have set in the manifest.

    opened by TD-er 15
  • Bring back the user feature of erase flash

    Bring back the user feature of erase flash

    For Tasmota we prefer NOT to erase flash on subsequent use of esp-web-tools. This way the code can be updated while keeping the settings.

    Used to work in the 3.x release but now only works when configured at manifest level.

    opened by arendst 14
  • Automatically download correct bootloader based on selected firmware

    Automatically download correct bootloader based on selected firmware

    @Jason2866 wrote here:

    A nice feature would be: WebTools scans firmware (magic first bytes https://github.com/esphome/esphome-flasher/blob/main/esphomeflasher/common.py#L143-L153) which Bootloader file and other files are needed and downloads it from espressif github repo. There is no need to provide this file from user side. Only partitions file is specific Example for https://github.com/esphome/esphome-flasher/tree/main/esphomeflasher

    opened by balloob 13
  • 'Timed out waiting for packet header' when writing 16MB image

    'Timed out waiting for packet header' when writing 16MB image

    Hi, I am trying to write an image to my 16MB flash chip. I tried to use separate files like

    {
      "name": "Latest Release",
      "new_install_prompt_erase": false,
      "builds": [
        {
          "chipFamily": "ESP32",
          "parts": [
            { "path": "bootloader.bin", "offset": 4096 },
            { "path": "partitions.bin", "offset": 32768 },
            { "path": "ota_data_initial.bin", "offset": 57344 },
            { "path": "firmware.bin", "offset": 65536 },
            { "path": "spiffs.bin", "offset": 4259840 }
          ]
        }
      ]
    }
    

    or a single 16MB image file like

    {
      "name": "Latest Release",
      "new_install_prompt_erase": false,
      "builds": [
        {
          "chipFamily": "ESP32",
          "parts": [
            { "path": "big-file.bin", "offset": 0 },
          ]
        }
      ]
    }
    

    but every try ends in error "Timed out waiting for packet header".

    I tracked it down to the last of the separated files. The spiffs.bin is about 12 MB in size and may be this is related to a time out that is not long enough.

    opened by lexologe 11
  • Error! Failed to initialize.

    Error! Failed to initialize.

    When i click the install button in the WLED application, i get the following response:

    Failed to initialize. Try resetting your device or holding the BOOT button while selecting your serial port.

    I have a ESP8266 chip and i also tried ESP home and Tasmota, both gave the same issue.

    opened by vicfixxx 10
  • Support request: Error writing filesystem image for ESP8266

    Support request: Error writing filesystem image for ESP8266

    I'm trying to setup ESP Web Tools to write a two part (firmware and file system) to an ESP8266. You can try it here (choose ratgdo v2.0a (alpha) - rolling code support, which uses this manifest.json)

    The first ratgdo_esp8266_v2.0a.bin file at offset 0 seems to write okay, but then it times out right after it starts to write the second ratgdo_esp8266_v2.0a_littlefs.bin (~3mb) file at offset 1048576. image

    I got the offset number from platform.io when uploading the filesystem:

    Wrote 3121152 bytes (679027 compressed) at 0x00100000 in 74.9 seconds (effective 333.3 kbit/s)...
    

    0x00100000 in decimal is 1048576

    Here is the output of the browser console during the flashing process:

    Writing at 0x48000... (100%)
    flash_defl_block 8d 097
    check_command write compressed data to flash after seq 18
    Read with timeout 5000
    Wrote 419216 bytes (296238 compressed) at 0x0 in 28.729 seconds.
    Data Length 3121152
    Image Length 3121152
    _update_image_flash_params keep keep keep
    Compressed image 
    Uint8Array(679025)
    Compressed 3121152 bytes to 679025...
    check_command enter compressed flash mode
    Read with timeout 3000
    Write loop 1048576 0 42
    Writing at 0x100000... (2%)
    flash_defl_block 78 0da
    check_command write compressed data to flash after seq 0
    Read with timeout 5000
    Write loop 1048576 1 42
    Writing at 0x104000... (4%)
    flash_defl_block d5 08b
    check_command write compressed data to flash after seq 1
    Read with timeout 5000
    

    Does anyone know what I'm doing wrong?

    UPDATE:

    From the log you can see that the step Writing at 0x104000... (4%) is where it times out. In platformio, this step takes longer than the rest, but it does continue. How can I increase the Read with timeout value?

    opened by PaulWieland 2
  • ESP Web Tools stopped working after Windows 11 update.

    ESP Web Tools stopped working after Windows 11 update.

    Hi all.

    I noticed that ESP Web Tools stopped working correctly after Windows update. Last Windows 11 update updated the CP210x drivers from the ancient v6.7.6 (2018 drivers) to the latest v11.2.0 (2022 drivers).

    After the update ESP Web Tools has some troubles throwing random errors like this:

    Immagine 2022-11-23 002338 Immagine 2022-11-23 001446 Immagine 2022-11-23 001936

    Everything else apart ESP Web Tools works correctly, I can flash all my firmwares with all the other possible tools without problems.

    Is this something that can be fixed by ESP Web Tools?

    Thanks

    opened by sblantipodi 0
  • make qrcode working by choose Font in the Console

    make qrcode working by choose Font in the Console

    Hi, following the Discussion there: https://github.com/espressif/idf-eclipse-plugin/issues/620 it would be nice to be able to select another Font for the Console.

    currently QRCODE does not work.

    Thanks, Franz

    opened by franz-ms-muc 1
  • Unable to install ESP Web Tools with Yarn: Can't add

    Unable to install ESP Web Tools with Yarn: Can't add "esptool-js": invalid package version undefined

    After many months I tried again web ESP Tools, felt very hipped because I saw Typescript but ended up frustrated.

    Running the following command to install the library on my existing React project: yarn add esp-web-tools

    Outputs the following error message:

    error Can't add "esptool-js": invalid package version undefined. info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

    Does anyone has any hints? Something that I'm missing. Much appreciated.

    opened by mesopa 2
  • [Feature] allow serial speed to be increased

    [Feature] allow serial speed to be increased

    If I flash via command line I use upload_speed of 921600. It would be great if this is also possible via esp-web-tools, might be as a additional parameter (per build) in the manifest?

    opened by amandel 9
  • Serial port is not ready

    Serial port is not ready

    Hi, I used ESP-Prog to connect the esp32 to the PC and when I click on the connect button the first time, this error pops out.

    Screenshot from 2022-07-27 13-07-17

    Then when I click again in the port dropdown menu it says (Paired), there is no error and I can use the tool. Any idea why? I guess the error pops out because of the pairing. It can be annoying because I need to click on connect button two times.

    opened by tobiyas09 8
Releases(9.1.0)
  • 9.1.0(Jan 3, 2023)

    What's Changed

    • Configure wifi improvements (#304) @balloob
    • Update dependencies (#303) @balloob
    • Fix console not staying at bottom if new line spanned two lines (#302) @balloob
    • Add Squeezelite-ESP32 to used projects (#300) @balloob
    • Add note about merging files (#298) @balloob
    Source code(tar.gz)
    Source code(zip)
  • 9.0.5(Nov 29, 2022)

  • 9.0.4(Sep 23, 2022)

    What's Changed

    • Fix casing of ESPLoader.js (#287) @amandel
    • Add 2smart to projects that use ESP Web Tools (#274) @zsarnett

    Dependencies

    4 changes
    • Bump lit from 2.2.8 to 2.3.0 (#282) @dependabot
    • Bump @rollup/plugin-typescript from 8.3.3 to 8.3.4 (#275) @dependabot
    • Bump rollup from 2.75.7 to 2.77.2 (#276) @dependabot
    • Bump lit from 2.2.7 to 2.2.8 (#272) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 9.0.3(Jul 20, 2022)

  • 9.0.2(Jul 20, 2022)

  • 9.0.1(Jul 20, 2022)

  • 9.0.0(Jul 20, 2022)

    What's Changed

    • Use esptool-js by Espressif for the installation step. (#269) @balloob
    • Update SILabs URL (#265) @wrt54g

    Dependencies

    9 changes
    • Bump rollup from 2.76.0 to 2.77.0 (#267) @dependabot
    • Bump serve from 13.0.4 to 14.0.1 (#268) @dependabot
    • Bump rollup from 2.75.7 to 2.76.0 (#263) @dependabot
    • Bump serve from 13.0.2 to 13.0.4 (#264) @dependabot
    • Bump lit from 2.2.6 to 2.2.7 (#262) @dependabot
    • Bump prettier from 2.6.2 to 2.7.1 (#255) @dependabot
    • Bump lit from 2.2.5 to 2.2.6 (#256) @dependabot
    • Bump typescript from 4.7.3 to 4.7.4 (#257) @dependabot
    • Bump rollup from 2.75.6 to 2.75.7 (#258) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 8.0.6(Jun 14, 2022)

    What's Changed

    • better handle long firmware names (#252) @balloob

    Dependencies

    2 changes
    • Bump rollup from 2.75.5 to 2.75.6 (#250) @dependabot
    • Bump @rollup/plugin-typescript from 8.3.2 to 8.3.3 (#251) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 8.0.5(Jun 10, 2022)

  • 8.0.4(Jun 10, 2022)

    What's Changed

    • ESP Web Flasher 5.1.4 (#248) @balloob

    Dependencies

    2 changes
    • Bump typescript from 4.7.2 to 4.7.3 (#246) @dependabot
    • Bump rollup from 2.75.3 to 2.75.5 (#247) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 8.0.3(May 31, 2022)

    What's Changed

    • Always throw error when init fails (#244) @balloob

    Dependencies

    5 changes
    • Bump rollup from 2.74.1 to 2.75.3 (#241) @dependabot
    • Bump lit from 2.2.4 to 2.2.5 (#242) @dependabot
    • Bump typescript from 4.6.4 to 4.7.2 (#240) @dependabot
    • Bump rollup from 2.73.0 to 2.74.1 (#238) @dependabot
    • Bump lit from 2.2.3 to 2.2.4 (#239) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 8.0.2(May 16, 2022)

    What's Changed

    • Bump ESP Web Flasher 5.1.3 (#236) @balloob
    • Update MWC to 0.26.1 (#234) @balloob

    Dependencies

    9 changes
    • Bump rollup from 2.71.1 to 2.73.0 (#235) @dependabot
    • Bump rollup from 2.70.2 to 2.71.1 (#224) @dependabot
    • Bump lit from 2.2.2 to 2.2.3 (#225) @dependabot
    • Bump typescript from 4.6.3 to 4.6.4 (#226) @dependabot
    • Bump @rollup/plugin-node-resolve from 13.2.1 to 13.3.0 (#227) @dependabot
    • Bump tslib from 2.3.1 to 2.4.0 (#223) @dependabot
    • Bump rollup from 2.70.1 to 2.70.2 (#220) @dependabot
    • Bump @rollup/plugin-node-resolve from 13.2.0 to 13.2.1 (#221) @dependabot
    • Bump @rollup/plugin-typescript from 8.3.1 to 8.3.2 (#222) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 8.0.1(Apr 13, 2022)

  • 8.0.0(Apr 12, 2022)

    What's Changed

    • Rename checkSameFirmwareVersion to checkSameFirmware (#217) @balloob
    const button = document.querySelector('esp-web-install-button');
    button.overrides = {
      checkSameFirmware(manifest, improvInfo) {
        const manifestFirmware = manifest.name.toLowerCase();
        const deviceFirmware = improvInfo.firmware.toLowerCase();
        return manifestFirmware.includes(deviceFirmware);
      }
    };
    
    Source code(tar.gz)
    Source code(zip)
  • 7.5.0(Apr 12, 2022)

    What's Changed

    • Allow specifying checkFirmware override (#216) @balloob
    const button = document.querySelector('esp-web-install-button');
    button.overrides = {
      checkSameFirmwareVersion(manifest, improvInfo) {
        const manifestFirmware = manifest.name.toLowerCase();
        const deviceFirmware = improvInfo.firmware.toLowerCase();
        return manifestFirmware.includes(deviceFirmware);
      }
    };
    
    Source code(tar.gz)
    Source code(zip)
  • 7.4.0(Apr 12, 2022)

    What's Changed

    • Don't base font-size on HTML page (#214) @balloob
    • Add funding URL (#213) @balloob

    image

    Dependencies

    6 changes
    • Bump lit from 2.2.1 to 2.2.2 (#210) @dependabot
    • Bump @rollup/plugin-node-resolve from 13.1.3 to 13.2.0 (#211) @dependabot
    • Bump esp-web-flasher from 5.1.1 to 5.1.2 (#212) @dependabot
    • Bump prettier from 2.6.1 to 2.6.2 (#208) @dependabot
    • Bump prettier from 2.6.0 to 2.6.1 (#206) @dependabot
    • Bump typescript from 4.6.2 to 4.6.3 (#207) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 7.3.1(Mar 25, 2022)

    What's Changed

    • Bump ESP Web Flasher 5.1.1 (#205) @balloob
    • add missing S3 (#204) @Jason2866
    • Update firmwares to 2022.3.0 (#202) @jesserockz
    Source code(tar.gz)
    Source code(zip)
  • 7.3.0(Mar 23, 2022)

    What's Changed

    • Improv: handle no SSID list support (#201) @balloob
    • Bump ESP Web Flasher to 5.10 (#200) @balloob

    Dependencies

    3 changes
    • Bump prettier from 2.5.1 to 2.6.0 (#198) @dependabot
    • Bump lit from 2.2.0 to 2.2.1 (#199) @dependabot
    • Bump rollup from 2.70.0 to 2.70.1 (#194) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 7.2.0(Mar 9, 2022)

    What's Changed

    • Scan for SSIDs (#192) @balloob
    • Offer troubleshooting if no port selected (#190) @balloob
    • Stop execution on error during initialization (#191) @balloob
    • Updates firmwares to latest dev (#173) @jesserockz
    • Update text: reset data -> erase user data (#171) @balloob
    Dependency bumps
    • Bump rollup from 2.68.0 to 2.70.0 (#187) @dependabot
    • Bump actions/checkout from 2 to 3 (#188) @dependabot
    • Bump typescript from 4.5.5 to 4.6.2 (#189) @dependabot
    • Bump rollup from 2.67.3 to 2.68.0 (#182) @dependabot
    • Bump actions/setup-node from 2.5.1 to 3 (#183) @dependabot
    • Bump @rollup/plugin-typescript from 8.3.0 to 8.3.1 (#184) @dependabot
    • Bump rollup from 2.67.2 to 2.67.3 (#180) @dependabot
    • Bump lit from 2.1.3 to 2.2.0 (#181) @dependabot
    • Bump rollup from 2.67.1 to 2.67.2 (#178) @dependabot
    • Bump rollup from 2.66.1 to 2.67.1 (#176) @dependabot
    • Bump improv-wifi-serial-sdk from 2.1.0 to 2.2.1 (#175) @dependabot
    • Bump lit from 2.1.2 to 2.1.3 (#174) @dependabot
    • Bump lit from 2.1.1 to 2.1.2 (#170) @dependabot
    • Bump rollup from 2.66.0 to 2.66.1 (#169) @dependabot
    • Bump typescript from 4.5.4 to 4.5.5 (#167) @dependabot
    • Bump rollup from 2.64.0 to 2.66.0 (#168) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 7.1.0(Jan 24, 2022)

    What's Changed

    • Allow downloading logs (#165) @balloob
    • Change from OK_ICON to ERROR_ICON when flash fails (#162) @thorrak
    • Fix link to the repository in package.json (#166) @vergissberlin
    • Bump rollup from 2.63.0 to 2.64.0 (#163) @dependabot
    • Bump lit from 2.0.2 to 2.1.1 (#159) @dependabot
    • Bump rollup from 2.62.0 to 2.63.0 (#158) @dependabot
    • Bump @rollup/plugin-node-resolve from 13.1.2 to 13.1.3 (#157) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 7.0.0(Jan 3, 2022)

    What's Changed

    • [Breaking change] Bump ESP Web Flasher to 5.0.0. ESP Web Flasher will no longer patch the headers of the image. It's up to the caller of the library to provide the right values. (#155) @balloob
    • correct manifest.json example (#146) @Jason2866
    • Cleanups (#145) @balloob
    • Align console with ESPHome (#141) @balloob
    Dependabot stuff
    • Bump @rollup/plugin-node-resolve from 13.1.1 to 13.1.2 (#154) @dependabot
    • Bump actions/setup-node from 2.5.0 to 2.5.1 (#153) @dependabot
    • Bump rollup from 2.61.1 to 2.62.0 (#150) @dependabot
    • Bump typescript from 4.5.3 to 4.5.4 (#147) @dependabot
    • Bump typescript from 4.5.2 to 4.5.3 (#142) @dependabot
    • Bump rollup from 2.60.2 to 2.61.1 (#143) @dependabot
    • Bump @rollup/plugin-node-resolve from 13.0.6 to 13.1.1 (#144) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 6.1.1(Dec 7, 2021)

  • 6.1.0(Dec 7, 2021)

    What's Changed

    • Allow configuring improv timeout (#139) @balloob
    • Bump prettier from 2.5.0 to 2.5.1 (#137) @dependabot
    • Bump rollup from 2.60.1 to 2.60.2 (#138) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 6.0.0(Nov 30, 2021)

    What's Changed

    Add new manifest option new_install_prompt_erase that will prompt users to erase their device when:

    • Installing software when Improv Serial support is not detected
    • Installing software when Improv Serial support is available but it runs a different firmware

    Added in #134 by @balloob

    Breaking change: The old option new_install_skip_erase now works the same as new_install_prompt_erase. It's support is now deprecated and will generate a warning when used in a manifest.

    https://user-images.githubusercontent.com/1444314/143988968-454b08b3-7e42-45d7-bf13-c32ad14505c7.mp4

    Other:

    • Bump actions/setup-node from 2.4.1 to 2.5.0 (#133) @dependabot
    • Bump prettier from 2.4.1 to 2.5.0 (#132) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 5.3.0(Nov 26, 2021)

    What's Changed

    • Change default button label to "CONNECT" (#131) @balloob

    Other:

    • Bump typescript from 4.4.4 to 4.5.2 (#128) @dependabot
    • Bump rollup from 2.60.0 to 2.60.1 (#129) @dependabot
    Source code(tar.gz)
    Source code(zip)
  • 5.2.1(Nov 21, 2021)

  • 5.2.0(Nov 16, 2021)

    What's Changed

    • Wait longer for Improv to respond after erase + install (#125) @balloob
    • Show alert when opening serial port fails (#123) @bramkragten

    Other:

    • Bump rollup from 2.59.0 to 2.60.0 (#124) @dependabot
    • Add color-scheme meta (#122) @bramkragten
    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Nov 14, 2021)

    What's Changed

    • Split out non-improv dashboard from install dialog (#120) @balloob

    Website updates

    • CanAirIO project to Products section (#117) @hpsaturn
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Nov 12, 2021)

    What's Changed

    [Breaking change]: this release includes a minor revision to Improv Serial to unify checksum calculations.

    • Upgrade to Improv Serial 2.0.0 (#116) @balloob
    • Do not silently ignore errors not caused by user closing picker (#115) @balloob
    • Adjust install header + text align (#114) @balloob
    Source code(tar.gz)
    Source code(zip)
  • 4.1.1(Nov 11, 2021)

Owner
ESPHome
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
ESPHome
Coded in Python 3 - I make for education, easily clone simple website.

Simple Website Cloner - Single Page Coded in Python 3 - I make for education, easily clone simple website. How to use ? Install Python 3 first. Instal

Phạm Đức Thanh 2 Jan 13, 2022
Thinky nature dots with python

Thinky Nature Welcome to my rice dotfiles of my ThinkPad X230 You surely will need to change some configs to fit your files and stuff and maybe tweak

Daniel Mironow 26 Dec 02, 2022
奇遇淘客服务器端

奇遇淘客 APP 服务器端 警告 正在使用 v0.2.0 版本的用户,请尽快升级到 v0.2.1。 v0.2.0 版本的 Docker 镜像中包含了有问题的 aiohttp。 奇遇淘客代码库 奇遇淘客 iOS APP 奇遇淘客 Android APP 奇遇淘客文档 服务器端文档 Docker 使用

奇遇科技 92 Nov 09, 2022
Saturne best tools pour baiser tout le système de discord

Installation | Important | Discord 🌟 Comme Saturne est gratuit, les dons sont vraiment appréciables et maintiennent le développement! Caractéristique

GalackQSM 8 Oct 02, 2022
A simple script that shows important photography times. written in python.

A simple script that shows important photography times. written in python.

John Evans 13 Oct 16, 2022
Swim between bookmarks in the Windows terminal

Marlin Swim between bookmarks in the terminal! Marlin is an easy to use bookmark manager for the terminal. Choose a folder, bookmark it and swim there

wilfredinni 7 Nov 03, 2022
KiCad bus length matching script.

KiBus length matching script This script implements way to monitor multiple nets, combined into a bus that needs to be length matched

Piotr Esden-Tempski 22 Mar 17, 2022
An example file showing a simple endpoints like a login/logout function and maybe some others.

Flask API Example An example project showing a simple endpoints like a login/logout function and maybe some others. How to use: Open up your IDE (or u

Kevin 1 Oct 27, 2021
A wrapper around the python Tkinter library for customizable and modern ui-elements in Tkinter

CustomTkinter With CustomTkinter you can create modern looking user interfaces in python with tkinter. CustomTkinter is a tkinter extension which prov

4.9k Jan 02, 2023
Python communism - A module for initiating the communist revolution in each of our python modules

Python communist revolution A man once said to abolish the classes or something

758 Jan 03, 2023
Minimalistic Gridworld Environment (MiniGrid)

Minimalistic Gridworld Environment (MiniGrid) There are other gridworld Gym environments out there, but this one is designed to be particularly simple

Maxime Chevalier-Boisvert 1.7k Jan 03, 2023
Audio-analytics for music-producers! Automate tedious tasks such as musical scale detection, BPM rate classification and audio file conversion.

Click here to be re-directed to the Beat Inspect Streamlit Web-App You are a music producer? Let's get in touch via LinkedIn Fundamental Analytics for

Stefan Rummer 11 Dec 27, 2022
BlackMamba is a multi client C2/post exploitation framework

BlackMamba is a multi client C2/post exploitation framework with some spyware features. Powered by Python 3.8.6 and QT Framework.

Gustavo 873 Dec 29, 2022
Purge your likes and wall comments from VKontakte. Set yourself free from your digital footprint.

vk_liberator Regain liberty in the cruel social media world. This program assists you with purging your metadata from Russian social network VKontakte

20 Jun 11, 2021
Aggressor script that gets the latest commands from CobaltStrikes web site and creates an aggressor script based on tool options.

opsec-aggressor Aggressor script that gets the latest commands from CobaltStrikes opsec page and creates an aggressor script based on tool options. Gr

JP 10 Nov 26, 2022
Prometheus exporter for Spigot accounts

SpigotExporter Prometheus exporter for Spigot accounts What it provides SpigotExporter will output metrics for each of your plugins and a cumulative d

Jacob Bashista 5 Dec 20, 2021
Run PD patches in NRT using Python

The files in this repository demonstrate how to use Pure Data (Pd) patches designed to run in Non-Real-Time mode to batch-process (synthesize, analyze, etc) sounds in series using Python.

Jose Henrique Padovani 3 Feb 08, 2022
Never miss a deadline again

Hack the Opportunities Never miss a deadline again! Link to the excel sheet Contribution This list is not complete and I alone cannot make it whole. T

Vibali Joshi 391 Dec 28, 2022
Box CRUD API With Python

Box CRUD API: Consider a store which has an inventory of boxes which are all cuboid(which have length breadth and height). Each Cuboid has been added

Akhil Bhalerao 3 Feb 17, 2022
Enhanced version of blender's bvh add-on with more settings supported. The bvh's rest pose should have the same handedness as the armature while could use a different up/forward definiton.

Enhanced bvh add-on (importer/exporter) for blender Enhanced bvh add-on (importer/exporter) for blender Enhanced bvh importer Enhanced bvh exporter Ho

James Zhao 16 Dec 20, 2022