How to flash the SlimmeLezer by usb

There are 3 ways I can explain how you can flash an esp via usb. There are more, yet I’ll stick to this 3. Those 3 are:

  1. esptool
  2. esphome-flasher
  3. via browser (Microsoft Edge and Chrome only)

For esptool and esphome-flasher you only need the firmware. When using the browser, you’ll need ESPHome and your own version of the config (can be copied from here). It’s recommended to run your own ESPHome so you can update without loosing the wifi connection and adjust all settings to your own preferences.

Install USB driver

First install the USB driver, which is needed. You can skip this step when you already have this driver. Linux will most of the time work without the need of installing extra drivers.

As I’m using a Wemos D1, I’ll stick to those drivers. 80~90% is using CH340 chip and the other remaining uses the ftdi chip.

FTDI: https://ftdichip.com/drivers/

CH340: https://www.wemos.cc/en/latest/ch340_driver.html

Using esptool

Installing esptool on MacOS

Probably more ways to install it, yet on my Mac I’m using this method:

Install brew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install esptool

brew install esptool

Installing esptool on Windows

Download and install Python: https://www.python.org/downloads/. During install make sure checkbox is checked for “Add Python 3.8 to PATH”. After installation open command prompt and install esptool via:

pip install esptool

After installation you can test the version via:

esptool.py version

See also this website: https://cyberblogspot.com/how-to-install-esptool-on-windows-10/

Installing esptool on Linux

Currently I’m using only Debian-based linux, like Ubuntu. As this is also most used on Raspberry Pi’s (Raspbian), I’ll use that to explain. Most Linux users using other distro will probably know more than enough to install esptool themselves (assumption 🙂 ).

sudo apt update
sudo apt install esptool

Flashing ESPHome via esptool

For flashing an esphome firmware via esptool, use this command:

esptool.py --before default_reset --after hard_reset --baud 115200 --chip esp8266 --port <usb serial port> write_flash 0x0 <firmware>

Flashing esp-link via esptool

For flashing esp-link on the SlimmeLezer, download it from my website and extract it. Use this command to flash it:

esptool.py -p <usb serial port> --baud 230400 write_flash --flash_mode dio -fs 4MB -ff 40m 0x00000 boot_v1.7.bin 0x3FE000 blank.bin 0x3FC000 esp_init_data_default.bin 0x01000 user1.bin

Using esphome-flasher

Download esphome-flasher from GitHub (available for MacOS, Windows and Linux). Open the esphome-flasher, select the firmware and serial port and press ‘Flash ESP’.

There’s a known issue on Windows 10, probably not for everyone, but at least one customer. When getting the error message ‘Unexpected error: could not open port ‘COM4’: PermissionError(13, ‘Access is denied.’, None, 5)‘ than try v1.0 instead of v1.3

You can not use esphome-flasher to flash esp-link on the SlimmeLezer, unfortunately.

Via browser (Chrome or Edge and ESPHome)

First of al, I recommend everyone to run ESPHome and have a own SlimmeLezer configuration on it. Make sure you’re filling your own wireless credentials. That way, when updating your device, it will always reconnect to your wireless network after updating. Secondly, you can modify your own device the way you want/need it.

When ESPHome is installed and running, your config is added and valid, than click on install:

Choose for ‘Plug into this computer’ and select the right serial port:

Click on Connect or Verbinding maken and leave the browser open/focussed:

A short moment later:

41 comments

  1. john2534334

    Ik krijg de volgende error als ik wil flashen met ESPHome-Flasher. Hetzelde geldt voor de twee andere manieren die jij op je site beschrijft.
    “Unexpected error: ESP Chip Auto-Detection failed: Failed to connect to Espressif device: Timed out waiting for packet header”
    Hoe nu verder? Ik heb even een schema opgezocht van dit bord en zie wel een reset pin (D3). Kunnen we daar iets mee?

    1. Marcel

      Het kan zijn dat je een usb kabel hebt wat alleen voor opladen is (en geen data doorgeeft). Probeer het eens via de manier van esptool, en geef me de output wat je krijgt. Liefst via email (gewoon antwoorden op de order bevestiging 😉 )

  2. Fons

    hoi,

    ik heb precies het zelfde probleem, ik heb het inmiddels via 2 pc’s, 2 kabels en 2 tools geprobeerd. in alle gevallen krijg ik dezelfde error:
    esptool:
    A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

    en bij esphome-flasher:
    “Unexpected error: ESP Chip Auto-Detection failed: Failed to connect to Espressif device: Timed out waiting for packet header”

  3. Gino

    Mijn slimme lezer gisteren ontvangen. Alle waardes staan op onbekend. Firmware staat op 2021.9.0 , is dit de laatste versie? Want op de site staat enkel 2021.8.2 met de aanpassing voor Belgische slimme meter.

  4. Remco

    Goedemorgen Marcel,

    Heb gisteren mijn slimmemeter+ binnen gekregen, heb wel de dsmr 2.x bin moeten flashen
    anders waren alle waardes unknown. Maar graag zou ik de slimmelezer+ in mijn esphome willen hebben, Maar heb eigenlijk geen idee hoe?

    met Vriendelijke Groet
    Remco

    1. Marcel

      Sorry voor mijn late reactie… inmiddels is er veel veranderd qua code binnen esphome. Zo kan de crc check uitgezet worden (moet voor dsmr 2) en de baud settings aangepast worden voor de lagere seriële snelheid (9600 baud 7E1). Het zou nu moeten werken zonder extra workarounds.

  5. Rob

    Hoi Marcel,

    Ik heb hetzelfde probleem..

    Via ESPHome “A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header”

    Via Flash utility of dmv command prompt:
    A fatal error occurred: Failed to connect to ESP8266: Wrong boot mode detected (0x13)!

    Ook met twee verschillende usb kabels getest.

    Ik draai home assistant op een RPI3. Via esphome word de lezer gewoon gedetecteerd op de usb poort. maar dan krijg ik de timeout.

    Kan je me in de juiste richting sturen?

    Grt,
    Rob

  6. Teun

    Hoi Marcel,
    Sinds vandaag heb ik geen contact meer met mijn slimmelezer, voeding werkt goed, verder geen gekke dingen, is de lezer overleden of kan flashen nog helpen. Netwerk adres wordt ook niet meer gevonden.

      1. Richard Janssen

        Hallo Teun,
        Ik heb ook geen contact meer met mijn SlimmeLezer+.
        Hoe heb jij opnieuw geflashed?

        Richard

    1. Marcel

      Ik heb je bericht helemaal gemist… is al twee weken geleden (excuses daarvoor). Asl je nog problemen hebt, kan je het beste antwoorden op de bevestigingsmail. Dan kan ik je per email helpen.

  7. L_aarten

    Vrijdag een slimmemeter+ ontvangen en vandaag aangesloten eerst via een USB en later via de P1 poort van de slimme meter. Na aansluiten knippert de blauwe led 1 maal kort. Daarna niets meer, neemt maar 2mA stroom op.

    1. Marcel

      Voed je het alleen via de P1 poort? Zo ja, is het dan wel een DSMR 5 poort? Als je het niet werkend krijgt, of problemen zijn, kan je antwoorden op de order bevestiging. Dat communiceert makkelijker dan via mijn website 😉

      1. Leendert Aarten

        Dag Marcel,

        Ik ben de orderbevestiging kwijt dus toch maar even op deze manier.
        Als ik inlog op de webserver van de slimmelezer+ dan zijn maar enkele gegevens gevuld en geen enkele van de gegevens uit Poort P1 van de slimme meter, Zie wel uptime etc. Ook ‘state’en ‘Action’zijn leeg.

        Ook in Home assistant kan ik wel het verbruik etc kiezen maar er komt geen data binnen. krijg ook een fout melding: “statistics_not_defined, sensor.energy_consumed_tariff_2” en “Entiteit niet beschikbaar, De status van deze geconfigureerde entiteiten is momenteel niet beschikbaar: sensor.energy_consumed_tariff_2 (unknown)”

        Wat gaat verkeerd.

        1. Marcel

          Ik stuur je even een mailtje… ik vermoed dat je een oudere meter hebt waar andere seriele settings voor nodig zijn.

          1. Leendert Aarten

            Dag Marcel,
            Ik heb een ISKRA type ME382-D1A52-P1 uit 2013. Ik heb P1 poort gemeten en er staat geen 5V op geen enkele pin ook niet tussen 1 en 6. Ik heb standaard de USB voeding aangesloten op de SlimmeLezer+. Volgens Liander kan het tot 72 uur duren voordat de poort actief wordt maar hij is zeker al een week aangesloten. Alvast bedankt voor de ondersteuning

          2. Leendert Aarten

            Dag Marcel, Alweer een tijdje terug de slimmelezer aangeschaft en voor mijn meter de firmware DSMR 2.2 geïnstalleerd.
            Ik krijg alle Electra data door maar niet ‘Gas Consumed’. Hieronder wat data waar jij wellicht iets mee kunt.Gas Consumed nan m³
            SlimmeLezer Uptime 120418 s
            SlimmeLezer Wi-Fi Signal -87 dBm
            DSMR Identification ISk5\2ME382-1004
            DSMR Version
            Gas text field (220508190000)(00)(60)(1)(0-1:24.2.1)(m3)(11792.043)

            Mijn energie maatschappij kan hem wel uitlezen dus de data zou uit te lezen zijn.
            Wat kan er mis zijn?
            Alvast bedankt

          3. Marcel

            Klopt, dat is een issue van esphome, de format is afwijkend waardoor je alleen als text sensor kan uitlezen. Dit kan je met een omweg naar een “normale” sensor scripts, maar is een omweg. Ik raad je voor oudere meters met dsmr 2 of 3 aan om esp-link te gebruiken.

  8. Zarro

    Vergelijkbaar probleem met L_aarten. In mijn geval de slimmemeter+ wordt ook niet meer gezien via de USB. Knippert een keer de blauwe led.

      1. L_aarten

        Dag Marcel,

        Ik heb een Liander ISKRA type ME382 MT382. Ik kan met het netwerk ‘slimme meter’ verbinden maar krijg geen pagina te zien. Ook via het aanroepen van het netwerk adres 192.168.4.1 krijg ik een foutmelding ‘Je bestand kan niet worden geopend’. Ik moet hem wel via USB voeden.

        1. Marcel

          Zover ik weet is ME382 bijna zeker weten een DSMR 2.2 meter. De slimmelezer is standaard voorzien van firmware voor DSMR 4/5 (meest voorkomende). Je moet even de slimmelezer aansluiten via een usb voeding. Daarna komt het met een eigen wifi netwerk ‘slimmelezer’. Daarmee verbind je en eenmaal verbonden, komt er een splashpage waarin je je wifi credentials in kan voeren. Komt dat niet, of duurt het te lang, kan je ook naar http://192.168.4.1 gaan en alsnog deze gegevens invoeren.

          Eenmaal verbonden aan je wifi kan je naar de webgui via http://slimmelezer.local (of via ip-adres als je netwerk geen mdsn ondersteund). Als de SlimmeLezer aan je meter hangt én aan de usb voeding, moet je op de webgui meterstanden gevuld zien worden. Mijn vermoeden is dat deze leeg blijven omdat je meter vermoedelijk DSMR 2.2 is. Is dat het geval, dan moet je even deze firmware downloaden, uitpakken, en het bin-bestand uploaden op de webgui via de OTA knop onderaan. Na het updaten is helaas wel je wifi connectie weg, deze moet je na updaten even opnieuw koppelen aan je wifi netwerk.

  9. MooiWeb

    Hoi Marcel,
    Ik heb destijds de versie 1.0 bij jou gekocht en heb deze voorzien van “Firmware SlimmeLezer DSMR 2 and 3 (ESPHome 2021.12.1)”. Daarna gekoppeld aan mijn WiFi en vervolgens binnen home assistant – instellingen – integraties – toevoegen – ESPHOME de slimmelezer toegevoegd.
    Alles info komt binnen in HA en de web interface van de slimmelezer.local. So far, so good. Maar is het nu ook mogelijk om deze in de ESPHOME integratie van HA toe te voegen zodat ik de yaml van zou kunnen aanpassen?
    Groet,
    Edwin

  10. Ralph

    Beste Marcel,

    Ik probeer de slimmelezer te flashen naar de 2.x versie. Echter ik krijg de volgende melding:
    “Update Failed: ERROR[10]: Magic byte is wrong, not 0xE9”
    Ik krijg dezelfde melding via OTA als via EspHome-Flasher (windows).

    Enig idee waar het mis gaat?

    1. Marcel

      Dat durf ik zo op afstand niet te zeggen. Alle firmwares wat ik aanbied is getest op meerdere devices. Heb je wel de zip bestand uitgepakt? Je moet de bin-file uploaden, niet de zip-file.

  11. Chris

    Hi Marcel,

    My Slimmelezer went down on me and I wasn’t able to flash by choosing “Plug in to this computer”. So instead I used “Plug into the computer running ESPHome Dashboard” and there it shows the following progress on pressing Install, after compiling, linking and building:
    ======================== [SUCCESS] Took 687.15 seconds ========================
    INFO Successfully compiled program.
    esptool.py v3.3.1
    Serial port /dev/ttyUSB0
    Connecting….
    Chip is ESP8266EX
    Features: WiFi
    Crystal is 26MHz
    MAC: bla, bla
    Uploading stub…
    Running stub…
    Stub running…
    Changing baud rate to 460800
    Changed.
    Configuring flash size…
    Auto-detected Flash size: 4MB
    Flash will be erased from 0x00000000 to 0x00071fff…
    Compressed 465824 bytes to 320200…
    Wrote 465824 bytes (320200 compressed) at 0x00000000 in 7.5 seconds (effective 498.3 kbit/s)…
    Hash of data verified.

    Leaving…
    Hard resetting via RTS pin…
    INFO Successfully uploaded program.
    INFO UART logging is disabled (baud_rate=0). Not starting UART logs.

    Anything else to be done now?
    As I still don’t see the Slimmelezer appear on my network nor on 192.168.4.1.

  12. Gabriela PArdo A

    Hello Marcel
    My Slimmelezer went down, I try update it, try to flashed , it is not recognized by the USB neither. I try in a Mac , Windows, only linux is missing so … I try via wireless and this using ESPHOME and the next appears.

    INFO slimmelezer.local: Error while reading incoming messages: Connection requires encryption

    So its being a while but I give up.

    anything else I can do, otherwise I will write you via email to return the product.

    Thanks

  13. Bert

    Meter werkt perfect, maar waarom wordt er geen filter gebruikt om het aantal updates wat te beperken?

    bv.

    – platform: dsmr
    energy_delivered_tariff1:
    name: “Energy Consumed Tariff 1”
    state_class: total_increasing
    filters:
    – delta: 0.001

    ‘k heb dit momenteel zo bij mij draaien en blijkt perfect te werken?

    ook de “DSMR Version” en de “DSMR Identification” moeten die continu doorgestuurd worden?

    1. Marcel

      Hoi Bert, ik lever het met een standaard config die het meest toegankelijk is voor iedereen. Ik raad iedereen sowieso aan om eigen config te gebruiken via Home Assistant add-on ESPHome. Daarin kan je zetten wat je nodig hebt en wat niet.

Leave a Reply

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

Leave the field below empty!