# Firmware Flashen

Versie 4 van de DSMR-logger hardware maakt gebruik van een ESP-12 processor. Deze processor zit op de printplaat van de DSMR-logger gesoldeerd en moet dus, op de printplaat, geflashed worden.

Om de firmware naar de **DSMR-logger Versie 4** te kunnen flashen moet deze eerst voor deze versie van de DSMR-logger geschikt worden gemaakt.

Dit doe je door in de ArduinoIDE de **`#define`**'s in het eerste tab-blad aan te passen.

```
/******************** compiler options  ********************************************/
#define USE_UPDATE_SERVER         // define if there is enough memory and updateServer to be used
//  #define HAS_NO_SLIMMEMETER        // define for testing only!
#define USE_MQTT                  // define if you want to use MQTT
#define USE_MINDERGAS             // define if you want to update mindergas (also add token down below)
//  #define USE_SYSLOGGER             // define if you want to use the sysLog library for debugging
//  #define SHOW_PASSWRDS             // well .. show the PSK key and MQTT password, what else?
/******************** don't change anything below this comment **********************/

```

Vervolgens moeten de `Boards` settings als volgt worden ingevuld:

|   | Instelling        | Waarde                                                     |
| - | ----------------- | ---------------------------------------------------------- |
|   | Board             | "Generic ESP8266 Module"                                   |
|   | Upload Speed      | "115200"                                                   |
|   | CPU Frequency     | "80MHz" (of 160MHz)                                        |
|   | Flash Frequency   | "40MHz"                                                    |
|   | Flash Mode        | "DIO" of "DOUT (compatible)"                               |
|   | Flash Size        | "4MB (**FS: 2MB** OAT:\~1019KB)" **<<== let op! 2MB**      |
|   | Crystal Frequency | "26MHz"                                                    |
|   | Reset Method      | "None"                                                     |
|   | Debug Port        | "Disabled"                                                 |
|   | Debug Level       | "None"                                                     |
|   | IwIP Variant      | "v2 Lower Memory"                                          |
|   | VTables           | "Flash"                                                    |
|   | Exeptions         | "Disabled"                                                 |
|   | Builtin Led       | "2"                                                        |
|   | Erase Flash       | <p>"Only Sketch"<br>(First Time: "All Flash Contents")</p> |
|   | Port              | Bedraad: "Serial Port"                                     |

{% hint style="success" %}
Let op!\
Als je de **Flash Mode** veranderd t.o.v. wat je gebruikt hebt voor de firmware die nu in de DSMR-logger zit en je doet een OTA update van de firmware, dan zal de Flash Mode pas veranderen na een power cycle!
{% endhint %}

#### Firmware Bedraad Flashen <a href="#firmware-bedraad-flashen" id="firmware-bedraad-flashen"></a>

{% hint style="danger" %}
Pas op!\
Koppel de DSMR-logger los van de Slimme Meter vóórdat je de DSMR-logger op de programmer aansluit!!
{% endhint %}

Sluit de [USB->ESP12 programmer](https://mrwheel.github.io/DSMRloggerWS/hardware_V4_Programmer/) aan op de `Program`-header van de *DSMR-logger v4*

1. Druk de **`FLASH`** knop in en houd deze ingedrukt
2. Druk op de **`RESET`** knop
3. Laat de **`RESET`** knop los
4. Laat de **`FLASH`** knop los

De *DSMR-logger v4* staat nu in Flash-mode en blijft in die mode tot er gegevens vanaf de programmer naar de DSMR-logger 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 USB->ESP12 programmer hebt aangesloten en druk op het *Compile and Upload* icoon.

![](https://mrwheel.github.io/DSMRloggerWS/img/CompileAndUploadIcon.png)

#### Firmware *Over The Air* Flashen <a href="#firmware-over-the-air-flashen" id="firmware-over-the-air-flashen"></a>

Bij het *Over The Air* flashen van de firmware of **`data`**-map kan (moet) de DSMR-logger v4 gewoon op de Slimme Meter aangesloten blijven.

Alle instellingen voor de DSMRloggerAPI firmware blijven gelijk aan de bedrade methode van flashen.

Vervolgens moet je niet op het   **`Compile & Upload`**-Icoon   ![](https://mrwheel.github.io/DSMRloggerWS/img/NotCompileAndUploadIcon.png) &#x20;

klikken maar in he&#x74;**`[Sketch]`**&#x64;rop-down menu de keuze **`Upload Compiled Binary`** selecteren.

![](https://mrwheel.github.io/DSMRloggerWS/img/ExportCompiledBinary.png)

De firmware wordt nu gecompileerd en in de Arduino Sketch map waar de DSMRloggerAPI firmware ook staat neergezet. Het bestand heeft de extensie **`.bin`**.

Als de firmware gecompileerd is klik je op de DSMR-logger pagina op het ![](/files/-Mbp69KHs5oJRWCGK3eE) icoontje.

![](/files/-MbkeItjeinXGpmfLN7T)

In de FSmanager klik je op de knop **`[Update Firmware]`**

Er verschijnt nu een scherm waarin je een firmware bestand (de naam eindigt op **`.bin`** met ergens in de naam ook **`.ino.`**) kunt kiezen door op de bovenste knop **`[Choose File]`** te klikken.

![](/files/-Mboz9_rZEImzS2KgPu6)

Selecteer uit het **`popUp scherm`** dat nu verschijnt het binary file dat je wilt uploaden ..

![](/files/-M2DRevueAP3y9PTSP_Q)

.. klik op **`[Choose]`** (of **`[Open]`**) en daarna op de knop **`[Flash Firmware]`**&#x20;

{% hint style="danger" %}
Let op!\
De firmware heeft áltijd "**.ino.**" in de naam en eindigt áltijd op "**.bin**"!
{% endhint %}

![](https://mrwheel.github.io/DSMRloggerWS/img/DSMR-FlashWait4Reboot.png)

Na enige tijd krijg je de melding dat de upload is geslaagd en dat de DSMR-logger opnieuw opstart.

{% hint style="info" %}
Let op!\
Het komt soms voor dat het scherm niet automatisch ge-refreshed wordt. Klik in dat geval, na ongeveer 3 minuten, op de tekst "*hier*"\
\
&#x20;     *Als het lijkt of er niets gebeurd, wacht dan ongeveer drie minuten en klik daarna **hier***.\
\
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. Klik nu op ***hier*** om de DSMRloggerAPI hoofd pagina opnieuw te laden.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mrwheel-docs.gitbook.io/dsmrloggerapi/firmware/firmware-flashen.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
