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
An extensive password manager built using Python, multiple implementations. Something to meet everyone's taste.

An awesome open-sourced password manager! Explore the docs » View Demo · Report Bug · Request Feature 🐍 Python Password Manager 🔐 An extensive passw

Sam R 7 Sep 28, 2021
A general illumination correction method for optical microscopy.

CIDRE About CIDRE is a retrospective illumination correction method for optical microscopy. It is designed to correct collections of images by buildin

Kevin Smith 31 Sep 07, 2022
Repo with data from local elections in Portugal from 2009 to 2013

autarquicas - local elections in Portugal Repo with data from local elections in Portugal from 2009 to 2013 Objective To provide, to all, raw data fro

Jorge Gomes 6 Apr 06, 2022
Materials and information for my PyCascades 2021 Presentation

Materials and information for PyCascades 2021 Presentation: Sparking Creativity in LED Art with CircuitPython

GeekMomProjects 19 May 04, 2022
Linux Security and Monitoring Scripts

Linux Security and Monitoring Scripts These are a collection of security and monitoring scripts you can use to monitor your Linux installation for sec

Andre Pawlowski 65 Aug 27, 2022
A Python software implementation of the Intel 4004 processor

Pyntel4004 A Python software implementation of the Intel 4004 processor. General Information Two pass assembler using the original mnemonics, directiv

alshapton 5 Oct 01, 2022
Module for remote in-memory Python package/module loading through HTTP/S

httpimport Python's missing feature! The feature has been suggested in Python Mailing List Remote, in-memory Python package/module importing through H

John Torakis 220 Dec 17, 2022
Freeze your objects in python

gelidum Freeze your objects in python. Latin English Caelum est hieme frigidum et gelidum; myrtos oleas quaeque alia assiduo tepore laetantur, asperna

Diego J. 51 Dec 22, 2022
Nook is a simple, concatenative programming language written in Python.

Nook Nook is a simple, concatenative programming language written in Python. Status Nook is currently WIP. It lacks a lot of basic feature, and will n

Wumi4 4 Jul 20, 2022
A simple way to read and write LAPS passwords from linux.

A simple way to read and write LAPS passwords from linux. This script is a python setter/getter for property ms-Mcs-AdmPwd used by LAPS inspired by @s

Podalirius 36 Dec 09, 2022
Toppr Os Auto Class Joiner

Toppr Os Auto Class Joiner Toppr os is a irritating platform to work with especially for students it takes a while and is problematic most of the time

1 Dec 18, 2021
Ballcone is a fast and lightweight server-side Web analytics solution.

Ballcone Ballcone is a fast and lightweight server-side Web analytics solution. It requires no JavaScript on your website. Screenshots Design Goals Si

Dmitry Ustalov 49 Dec 11, 2022
Animation picker for Audodesk Maya 2017 (or higher)

Dreamwall Picker Animation picker for Audodesk Maya 2017 (or higher) Authors: Lionel Brouyère, Olivier Evers This tool is a fork of Hotbox Designer (L

DreamWall 93 Dec 21, 2022
A male and female dog names python package

A male and female dog names python package

Fayas Noushad 3 Dec 12, 2021
Script de monitoramento das teclas do teclado, salvando todos os dados digitados em um arquivo de log juntamente com os dados de rede.

listenerPython Script de monitoramento das teclas do teclado, salvando todos os dados digitados em um arquivo de log juntamente com os dados de rede.

Vinícius Azevedo 4 Nov 27, 2022
This is a menu driven Railway Reservation Project which is mainly based on the python-mysql connectivity.

Online-Railway-Reservation-System This is a menu driven Railway Reservation Project which is mainly based on the python-mysql connectivity. The projec

Ananya Gupta 1 Jan 09, 2022
PORTSCANNING-IN-PYTHON - A python threaded portscanner to scan websites and ipaddresses

PORTSCANNING-IN-PYTHON This is a python threaded portscanner to scan websites an

1 Feb 16, 2022
Grail(TM) is a web browser written in Python

Grail is distributed in source form. It requires that you have a Python interpreter and a Tcl/Tk installation, with the Python interpreter configured for Tcl/Tk support.

22 Oct 18, 2022
Tracing and Observability with OpenFaaS

Tracing and Observability with OpenFaaS Today we will walk through how to add OpenTracing or OpenTelemetry with Grafana's Tempo. For this walk-through

Lucas Roesler 8 Nov 17, 2022
A code base for python programs the goal is to integrate all the useful and essential functions

Base Dev EN This GitHub will be available in French and English FR Ce GitHub sera disponible en français et en anglais Author License Screen EN 🇬🇧 D

Pikatsuto 1 Mar 07, 2022