Microcontroller projects

Trying to reuse a Smarty+ dongle

last updated: 2022-09-10

Quick links

Intro

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 hardware hack

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:

smartyplus_header

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.

The software hack

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:

smartyplus_1

And try to program the dongle:

smartyplus_4

After trying different upload speeds and Flash modes I got the two following outputs in the serial monitor.

After booting:

smartyplus_2

And after provoking an error:

smartyplus_3

The END

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.