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
A python module for DeSo

DeSo.py A python package for DeSo. Developed by ItsAditya Run pip install deso to install the module! Examples of How To Use DeSo.py Getting $DeSo pri

ItsAditya 0 Jun 30, 2022
Project Faros is a reference implimentation of Red Hat OpenShift 4 on small footprint, bare-metal clusters.

Project Faros Project Faros is a reference implimentation of Red Hat OpenShift 4 on small footprint, bare-metal clusters. The project includes referen

project: Faros 9 Jul 18, 2022
Plugin to manage site, circuit and device diagrams and documents in Netbox

Netbox Documents Plugin A plugin designed to faciliate the storage of site, circuit and device specific documents within NetBox Note: Netbox v3.2+ is

Jason Yates 38 Dec 24, 2022
A tool for generating skill map/tree like diagram

skillmap A tool for generating skill map/tree like diagram. What is a skill map/tree? Skill tree is a term used in video games, and it can be used for

Yue 98 Jan 07, 2023
Team collaborative evaluation tracker.

Team collaborative evaluation tracker.

2 Dec 19, 2021
Turn a raspberry pi into a Bluetooth Midi device

PiBluetoothMidSetup This will change serveral system wide packages/configurations Do not run this on your primary machine or anything you don't know h

MyLab6 40 Sep 19, 2022
Build a grocery store management application.

python_projects_grocery_webapp In this python project, we will build a grocery store management application. It will be 3 tier application, Front end:

codebasics 54 Dec 29, 2022
Free APN For Python

Free APN For Python

XENZI GANZZ 4 Apr 22, 2022
A tool to improve Boolean satisfiability (SAT) solver user's life

SatHelper This is a tool to improve the Boolean satisfiability (SAT) and MaxSAT solver user's life. It helps you model various problems as SAT and Max

Tomas Balyo 1 Nov 16, 2021
Procedural modeling of fruit and sandstorm in Blender (bpy).

SandFruit Procedural modelling of fruit and sandstorm. Created by Adriana Arcia and Maya Boateng. Last updated December 19, 2020 Goal & Inspiration Ou

Adriana Arcia 2 Mar 20, 2022
Something like Asteroids but not really, done in CircuitPython

CircuitPython Staroids Something like Asteroids, done in CircuitPython. Works with FunHouse, MacroPad, Pybadge, EdgeBadge, CLUE, and Pygamer. circuitp

Tod E. Kurt 14 May 31, 2022
Generate Openbox Menus from a easy to write configuration file.

openbox-menu-generator Generate Openbox Menus from a easy to write configuration file. Example Configuration: ('#' indicate comments but not implement

3 Jul 14, 2022
Vita Specific Patches and Application for Doki Doki Literature Club (Steam Version) using Ren'Py PSVita

Doki-Doki-Literature-Club-Vita Vita Specific Patches and Application for Doki Doki Literature Club (Steam Version) using Ren'Py PSVita Contains: Modif

Jaylon Gowie 25 Dec 30, 2022
"Cambio de monedas" Change-making problem with Python, dynamic programming best solutions,

Change-making-problem / Cambio de monedas Entendiendo el problema Dada una cantidad de dinero y una lista de denominaciones de monedas, encontrar el n

Juan Antonio Ayola Cortes 1 Dec 08, 2021
A GUI love Calculator which saves all the User Data in text file(sql based script will be uploaded soon). Interative GUI. Even For Admin Panel

Love-Calculator A GUI love Calculator which saves all the User Data in text file(sql based script will be uploaded soon). Interative GUI, even For Adm

Adithya Krishnan 1 Mar 22, 2022
Sample microservices application demo

Development mode docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d or export COMPOSE_FILE='docker-compose.yml:docker-compose.dev.ym

Konstantinos Bairaktaris 1 Nov 14, 2021
Chemical equation balancer

Chemical equation balancer Balance your chemical equations with ease! Installation $ git clone

Marijan Smetko 4 Nov 26, 2022
Labspy06 With Python

Labspy06 Profil Nama : Nafal mumtaz fuadi Nim : 312110457 Kelas : T1.21.A.2 Latihan 1 Ubahlah kode dibawah ini menjadi fungsi menggunakan lambda impor

Mas Nafal 1 Dec 12, 2021
Small C-like language compiler for the Uxn assembly language

Pyuxncle is a single-pass compiler for a small subset of C (albeit without the std library). This compiler targets Uxntal, the assembly language of the Uxn virtual computer. The output Uxntal is not

CPunch 13 Jun 28, 2022
适用于HoshinoBot下的人生重来模拟器插件

LifeRestart for HoshinoBot 原作地址 python版原地址 本项目地址 安装方法 这是一个HoshinoBot的人生重来模拟器插件 这个项目使用的HoshinoBot的消息触发器,如果你了解其他机器人框架的api(比如nonebot)可以只修改消息触发器就将本项目移植到其他

黛笙笙 16 Sep 03, 2022