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:
- esptool
- esphome-flasher
- 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:
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?
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 😉 )
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”
Marcel
Laten we verder contact houden via de email, communiceert wat makkelijker 🙂
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.
Marcel
Heb al op je vorige vraag gereplied 🙂
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
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.
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
Marcel
Maak je gebruik van esptool? Mail me even (kan door te antwoorden op je bevestigingsorder).
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.
Teun
Werkt inmiddels weer, opnieuw geflashed
Marcel
Super 👍🏼
Richard Janssen
Hallo Teun,
Ik heb ook geen contact meer met mijn SlimmeLezer+.
Hoe heb jij opnieuw geflashed?
Richard
Marcel
Niet de laatste versie, maar via de webinterface moet het o.a. lukken: https://www.zuidwijk.com/esphome/
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.
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.
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 😉
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.
Marcel
Ik stuur je even een mailtje… ik vermoed dat je een oudere meter hebt waar andere seriele settings voor nodig zijn.
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
Marcel
Ik gok dat deze meter een DSMR 2.2 is. Deze heeft namelijk alleen pinnen 2 t/m 5 aangesloten (pinnen 1 en 2 zijn voor de voeding). Je moet de firmware voor dsmr 2.2 erop zetten, of je eigen code daarvoor aanpassen.
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
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.
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.
Marcel
Klopt, de led knippert maar 1x, daarna niet meer. Heb je DSMR 5?
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.
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.
Zarro
Waar kan ik de DSMR versie zien?
Marcel
Meestal in het menu, soms staat het op de meter. Anders moet je even zoeken op je model/merk 🙂
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
Marcel
Jazeker Edwin, kijk eens naar deze config: https://github.com/zuidwijk/dsmr/blob/main/Examples/dutch-dsmr-2.2.yaml
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?
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.
Richard Janssen
Driver install failure! op de CH340 driver op Windows 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.
Marcel
I missed your question, can you mail me about this issue?
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
Marcel
Have you already emailed me?
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?
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.