last updated: 2022-09-10
Friends had bought a Smarty+ dongle from CREOS a Luxembourgish electricity Distribution System Operator (DSO). They are not happy with it because it doesn't have the ability to send direct data to your house automation system like the SmartyReader® does.
So I thought, perhaps it is possible to reprogram it with the SmartyReader® software, and so reuse the hardware.
Spoiler alert: It is not easily possible.
The housing is easy to open with 2 screws :). Inside we find only a bunch of components. The controller is an ESP32-PICO_V3. It has an internal oscillator with 40 MHz.
The most important thing is a programming header. With a multimeter and the ESP32 data sheet, it was easy to find the meaning of the pins:
We also have 2 voltage regulators, 2 optocoupler, connected to 2 GPIO of the ESP (22 and 24?). The RGB LED is connected to the GPIOs 25-27 and a transistor and the serial pin 5 from the smartmeter P1 port is connected to GPIO22.
But first let's try to program the dongle.
First we need our ESP32 programmer and connect it to the header (! we need 5V instead of 3V).
Next we choose the right chip in the Arduino IDE:
And try to program the dongle:
After trying different upload speeds and Flash modes I got the two following outputs in the serial monitor.
And after provoking an error:
In the last screenshot we see that NextLab has done a good job. Secure boot v2 is enabled and so it is not easily possible to re-flash the ESP32 with another firmware.