Versie 5 van de DSMR-logger32 hardware maakt gebruik van een ESP32-WROVER processor. Deze processor zit op de printplaat van de DSMR-logger32 gesoldeerd en moet dus, op de printplaat, geflashed worden.
Overtuig je ervan dat alle tabbladen aanwezig zijn!
Om de firmware naar de DSMR-logger32 te kunnen flashen moet deze eerst voor deze versie van de DSMR-logger32 geschikt worden gemaakt.
Dit doe je door in de DSMRlogger32.ino
(het eerste tabblad) de #define
's aan te passen.
Door de twee slashes (//
) voor de #define
weg te halen maak je een optie actief. Alleen tijdens het testen is het zinvol één of beide opties actief te maken. Voor een "productie" versie moeten de #defines
uitgeschakeld blijven.
Vervolgens moeten de Boards
settings als volgt worden ingesteld:
Klik nu op het Verify
icon.
Onderin de Arduino IDE verschijnen meldingen met betrekking tot de voorgang van het compileren. Als het compileren succesvol is (en er dus geen compilatie fouten zijn opgetreden) zie je de volgende meldingen:
De waarden van "Sketch uses
" en "Global variables use
" kunnen anders zijn dan wat in bovenstaand plaatje staat. Dat is geen reden voor ongerustheid.
De volgende stap is het daadwerkelijk uploaden (flashen) van de firmware naar de DSMR-logger32.
Pas op! Koppel de DSMR-logger32 los van de Slimme Meter vóórdat je de DSMR-logger32 op de programmer aansluit!!
Sluit de FTDI-programmer aan op de Program
-header van de DSMR-logger32
Als de FTDI programmer niet zelf de DSMR-logger32 in flash-mode kan zetten, voer dan de volgende vier handelingen uit:
Druk de FLASH
knop in en houd deze ingedrukt
Druk op de RESET
knop
Laat de RESET
knop los
Laat de FLASH
knop los
De DSMR-logger32 staat nu in Flash-mode en blijft in die mode tot er gegevens vanaf de programmer naar de DSMR-logger32 zijn overgebracht óf tot je nog een keer op de RESET
knop drukt.
Vergeet niet in de Arduino IDE de Port
te selecteren waarop je de FTDI programmer hebt aangesloten en druk op het Compile and Upload icoon.
Bij het Over The Air flashen van de firmware of data
-map kan (moet) de DSMR-logger32 gewoon op de Slimme Meter aangesloten blijven.
Alle instellingen voor de DSMRlogger32 firmware blijven gelijk aan de bedrade methode van flashen.
klikken maar in het[Sketch]drop-down menu de keuze Upload Compiled Binary
selecteren.
De firmware wordt nu gecompileerd en in de Arduino Sketch map waar de DSMRlogger32 firmware ook staat neergezet. Het bestand heet DSMRlogger32.ino.bin
.
In de FSmanager klik je op de knop [Update Firmware]
Er verschijnt nu een scherm waarin je een firmware bestand (de naam eindigt op .ino.bin
) kunt kiezen door op de bovenste knop [Choose File]
te klikken.
Selecteer uit het popUp scherm
dat nu verschijnt het binary file dat je wilt uploaden ..
.. klik op [Choose]
(of [Open]
) en daarna op de knop [Flash Firmware]
Let op! De firmware heeft áltijd ".ino." in de naam en eindigt áltijd op ".bin"!
Na enige tijd krijg je de melding dat de upload is geslaagd en dat de DSMR-logger32 opnieuw opstart.
Let op! Het komt soms voor dat het scherm niet automatisch ge-refreshed wordt. Refresh de browser. Als de verbinding met de server vóór die tijd verbroken wordt klik dan op de [back] knop van de browser waarna de tekst alsnog (weer) verschijnt.
Instelling | Waarde |
---|---|
Vervolgens moet je niet op het Compile & Upload
-Icoon
Als de firmware gecompileerd is klik je op de DSMR-logger32 pagina op het icoontje.
Board
"ESP32 WROVER Module"
Upload Speed
"230400" of "460800" (use lower speed if needed)
Flash Frequency
"40MHz" (sometimes 80MHz is to fast)
Flash Mode
"QIO" (sometimes "QIO" is too fast, use "DIO" in stead)
Partition Scheme
"Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)"
Debug Level
"None"
Erase Flash
"Disabled" (First Time only: "Enabled")
Port
Bedraad: "Serial Port"
Om de firmware op de DSMR-logger32 te krijgen moeten een aantal stappen worden ondernomen. Hieronder staat welke stappen dat zijn.
Dit hoofdstuk is alleen van belang als je zelf de firmware wilt compileren. In de meeste gevallen kun je volstaan met het flashen van de pré compiled binaries en het standaard spiffs.bin bestand. Zie "Pré Compiled Binaries Uploaden".
Voor de DSMRlogger32 firmware zijn de volgende bibliotheken nodig:
Deze library is een uitbreiding op de arduino-dsmr van Matthijs Kooijman. Je kunt de dsmr2Lib library hier downloaden.
Deze is door Rop Gonggrijp ontwikkeld. Installatie via de Library Manager. Je kunt hier meer informatie over deze bibliotheek vinden.
Installatie via de Library Manager.
Je kunt meer over deze door Tzapu ontwikkelde, bibliotheek hier vinden.
De DSMRlogger32 firmware is getest met version 0.15.0
van deze bibliotheek maar nieuwere versies zullen waarschijnlijk ook werken.
Deze bibliotheek is door Juraj Andrassy ontwikkeld. Installatie via de Library Manager.
Je kunt hier meer informatie over deze bibliotheek vinden.
De firmware is getest met version 1.2.2
maar nieuwere versies zullen waarschijnlijk ook werken.
Let op:
De installatie van deze bibliotheek gaat net als de andere bibliotheken. Een update kan echter pas geïnstalleerd worden als éérst de map TelnetStream-master
uit de map Libraries
wordt verwijderd!
William Greiman heeft deze bibliotheek ontwikkeld met in het achterhoofd minimaal gebruik van resources (dus: een bibliotheek die weinig geheugen gebruikt).
Installatie via de Library Manager.
Meer informatie over deze bibliotheek kun je hier vinden.
De DSMR-logger Firmware is getest met Version
1.3.0
maar nieuwere versies zullen waarschijnlijk ook werken.
Onderdeel van SSD1306Ascii.
Door Adafruit ontwikkelde bibliotheek om NeoPixels aan te sturen. Installatie via de Library Manager.
Nick O'Leary (knolleary) heeft deze bibliotheek ontwikkeld.
Installatie via de Library Manager. Getest met versie 2.7.0
Je kunt hier meer informatie over deze bibliotheek vinden.
Ontwikkeld door Benoit Blanchon.
Installatie via de Library Manager. Getest met versie 16.19.3
.
Hier vind je meer informatie over deze library.
Je kunt de bibliotheek hier downloaden. Pas op! voor gebruik van het LittleFS moet je deze versie gebruiken!
Onderstaande libraries zijn onderdeel van de ESP8266 Core
en moeten dus niet handmatig geïnstalleerd worden!
FS
SPIFFS
WiFi
WebServer
HTTPUpdateServer
ESPmDNS
WiFiUpd
esp_heap_caps
HardwareSerial
De DSMRlogger32 firmware staat hier https://github.com/mrWheel/DSMRlogger32. Er zijn twee manieren om de firmware te clonen.
download de repository als een .zip
file
gebruik git
Als je niet handig bent met git
raad ik je aan de repository als een .zip
file te downloaden.
Ga naar de DSMRlogger32 repository.
Klik op de groene knop [<> Code] ..
.. en selecteer [Download ZIP]
Er volgt een scherm als dit:
Bewaar het .zip
bestand op een plek op je computer waar je hem terug kunt vinden.
Unzip het DSMRlogger32-main.zip
bestand in de ArduinoIDE Sketchbook Location
.
Rename de map DSMRlogger32-main
naar DSMRlogger32
(dus zonder -main
)
Ga verder naar DSMRlogger32 Sketch openen.
Om de repository met git
te kunnen clonen moet je er éérst voor zorgen dat je git
op je systeem hebt staan. Hoe je dat moet doen valt buiten de scope van deze documentatie maar hier kun je alles vinden over hoe je dit, voor jouw systeem, moet doen.
Voor nu ga ik ervan uit dat je git
op je systeem hebt staan en dat je weet hoe je ermee moet werken.
Ga naar de Arduino Sketchbook location
(de map waar al je Sketches in staan, kijk hier) en toets het volgende commando in:
That's it!
In Sketchbook location
staat hierna een nieuwe map met de naam DSMRlogger32
.
Start de ArduinoIDE opnieuw op en klik op het open
icoon.
Selecteer in het drop-down
menu "Open" ..
In het pop-up window dat nu verschijnt navigeer je naar de map "DSMRlogger32
" ..
.. en selecteer je de sketch DSMRlogger32.ino
.
Er verschijnt een nieuw editor window met de firmware van de DSMRlogger32!
Nieuwe DSMRlogger32 firmware kan via de web-interface van de DSMR-logger "Over the Air" geflashed worden maar mocht dat, om de één of andere reden niet lukken dan kunnen de pré compiled binaries ook bedraad geflashed worden.
Op github staan van de major releases binaries van zowel de firmware als van het SPIFFS bestand systeem.
Klik op "releases" en download het meest recente of door jou gewenste DSMRlogger32.ino.bin
bestand (deze staan onder iedere release beschrijving bij "Assets").
Bij een gewone firmware update is het meestal niet nodig ook het bestand system opnieuw te downloaden en te flashen.
Onder iedere release beschrijving staan de bijbehorende "Assets".
Klik nu op de bovenste [Choose File]
knop
Selecteer in het popup-window het zojuist gedownloade DSMRlogger32.ino.bin
file:
Klik op [Open]
of [Select]
en klik vervolgens op de knop [Flash Firmware]
.
Na enige tijd verschijnt het volgende scherm:
.. waarna, na enige tijd, het hoofdscherm van de DSMR-logger32 weer verschijnt.
Alleen als in de beschrijving van een release staat dat ook het bestand system opnieuw geflashed moet worden moet u dit doen. In veel gevallen zal volstaan om eventueel een bepaald bestand naar de DSMR-logger32 te uploaden. Ook dit zal dan expliciet in de release beschrijving staan.
Espressif heeft voor zijn ESP-boards een (helaas alleen Windows) tool ontwikkeld dat het bedraad flashen erg eenvoudig maakt.
De tool kun je hier downloaden.
Pak het .zip file uit (unzip) en start het door op het mapje te klikken:
Klik nu op "flash_download_tools.exe" en selecteer [esp32 DownloadTool]
in het volgende scherm:
Selecteer de vier bin bestanden.
DSMRlogger32.ino.bootloader.bin
moet op adres
0x1000
starten
DSMRlogger32.ino.partitions
moet op adres
0x8000
starten
DSMRlogger32.ino.bin
bestand moet op adres 0x10000 starten
DSMRlogger32.spiffs.bin
op adres 0x22500 starten
Selecteer de COM poort waar de DSMR-logger32 op is aangesloten, zet de DSMR-logger32 in flash mode en klik op [START]
.
Na enige tijd krijg je de melding dat alles goed is gegaan.
Bij het updaten van de DSMRlogger32 firmware (dus op een reeds werkende DSMR-logger32) volstaat het om alleen een vinkje bij de 3e regel te zetten (de regel met als bestand "DSMRlogger32.ino.bin
") en de vinkjes bij de 1e, 2e en 4e regel weg te halen).
Ga nu op de DSMR-logger naar de FSmanager (door op het icoon te klikken) en klik vervolgens op de knop [Update Firmware]
.