Home > Arduino, Electronics, Programming > Controlling Micronova pellet stove motherboard – Stufe a pellet Aria Idro IR telecomando seriale

Controlling Micronova pellet stove motherboard – Stufe a pellet Aria Idro IR telecomando seriale

October 18th, 2015 Leave a comment Go to comments

Here is how to control a pellet stove with a Micronova controller remotely either via IR commands or using the serial line.

They installed a Laminox pellet stove in our house. It is a nice thing to have over the winter. Problem is that sometimes I am outside and I want to turn on the stove remotely so that when I arrive, it will be warm inside. So I needed a way to control it remotely. By google searching pellet stove controllers I noticed that mine looks very similarly as those made by Micronova so it was clear – the controller inside my stove is some board from Micronova (i023, i050 or who knows). It is used by various stove manufacturers like Laminox, Extraflame, Evacalor, Dalzotto, Ungaro, Arcestufe, Karmek, Tecnoflam, Termoflam, Clam, Cadel, Zibro, Sicalor, Kepo, EcoTeck and many others. I noticed a DB9 connector at the back of my stove but no! It is not an RS232, there is 20V on one of the pins and I destroyed my UART interface trying to connect it to the stove (right, I should have checked the voltage levels on each pins first, lesson learned, but the interface is not expensive and I have more pieces at home anyway).

I contacted one of Micronova employees just asking if it is possible to turn on the stove via that connector or if it would be just waste of my time trying to figure out how to do it. And he replied that if I am not from one of their partner companies they can’t tell me anything. Right, thank you. I bought this stuff and it’s now mine so I want and will do what can be done with it myself! So I decided to spend some time with this.

Fist I did some research on IR remote. Later I found some helpful information about the serial communication in Italian at stufapellet.forumcommunity.net (thanks!). It was not all in one place there and not complete. As I also recently purchased a Rigol oscilloscope and had a Salea logic analyzer available so I did more work on this subject and I am finally able to describe it in more details.

IR commands


This is the original IR controller

It’s not difficult to send IR commands for this stove using an Arduino.

Here is a table of commands I created by recording the IR LED voltage with a PC line-in sound card port, then analysing the recording with Audacity (before I had a logic analyser at hand):

== Setting the power ==
r up   11111111 00011110 01010011 10101010 01110010 11000000
       0xFF     0x1E     0x53     0xAA     0x72     0xC0

r down 11111111 00011110 01010011 11101010 01111010 11000000
       0xFF     0x1E     0x53     0xEA     0x7A     0xC0

== Setting the water and air temperature ==
l up   11111111 00011110 01010011 01101010 01101010 11000000
       0xFF     0x1E     0x53     0x6A     0x6A     0xC0	 

l down 11111111 00011110 01010011 11001010 01111100 11000000
       0xFF     0x1E     0x53     0xCA     0x7C     0xC0	 

== Power up ==	   
power  11111111 00011110 01010011 01001010 01101100 11000000
       0xFF     0x1E     0x53     0x4A     0x6C     0xC0

38 kHz modulation seems to work fine (36 kHz may work too). I created a testing Arduino code based on Infrared library. It sends the ‘power setting down’ command every four seconds. Just connect an IR LED to GND and D3 pins (ideally with a 100 Ohm resistor in series).


Serial communication

Well, first I was thinking of parsing LCD segment bits and getting textual LCD data as a form of feedback. But that is quite crazy and unnecessarily complicated. I knew there is a DB9 connector at the back of the stove and while I didn’t know the pinout I suspected that it may be connected to the SERIALE connector (CN13) on the main board. I have read some italian threads. They were mentioning there is ~20V, GND, +5V pins. Right. First – GND is not connected to stove’s metallic frame. This metallic frame is connected to protective earth but the stove has it’s own GND reference for all communication stuff. So I picked up known GND from the controller panel and measured voltages on every pin. Turned the stove off and measured resistance between GND and those pins. And here are the pinouts.

Out of curiosity, when the stove was off, I also measured resistance between IR pin on the controller panel and all pins in the DB9. And also resistance between +5 pin in the controller panel and all pins in the DB9. And guess what! There is about 500 ohm between IR pin and serial pin. Aha, so it uses almost the same path for IR as well as serial commands. Interesting. It seems that 500 ohm resistor is on the DB9 (CN13) side and there is no resistor on the IR side.

Unfortunately, as they mentioned in the forum, only one pin is used for RX and TX. UART logic levels are ~5V for logic 1 and ~0V for logic 0 (for exact ranges see 5V CMOS logic). When the stove or the PC wants to write a bit with logic value 0, it needs to pull down this serial pin (~ <1V). When it wants to send a bit 1 it can keep it at 5v (it is pulled up apparently so no need for an extra pull up resistor). In the forum they made some crazy schematics with optocuplers and transistors (here and there). :D But there was one simple schematic. I don’t have that chip nearby but it made me start experimenting. I created an arduino sketch again to just simulate me this NC7WZ07 device. You can connect TXD from CP2012 to pin 2 and on pin 3 you will get output to go on the stove’s serial line. UPDATE: you can use a diode instead of it, read on.


I created this simple schematic with just one PNP transistor and one diode. It works fine with 5V tolerant USB-to-TTL converter based on CP2102 and it doesn’t echo the sent bytes if the diode has higher forward drop, let’s say 0.7-1V. It’s a bit of trial and error but it works with SeramiNet.


It works like this: when TXD is logic 0 it’s 0V so the diode will act almost like a wire (with Vf though) so there will be Vf (around 0.8V depending on your diode on the serial line so the 5V stove logic will pick it up as a logic 0, when TXD is logic 1 it will be on 3.3V on that side, that will be reducing stove controller’s serial voltage to 3.3+Vf max (from it’s default pulled up 5V). But because the stove is pulled up with a high resistance pullup, there will be a very tiny current flowing so it’s fine. Because there will be ~0.8V on the stove’s serial line, it won’t be picked up by 3.3V logic of RXD (higher than it’s max low level voltage), thus cancelling up the echo, yay! To illustrate here are some screens from the oscilloscope at stove’s serial line and RXD of the CP2102 for the same request and response. White line is 1V, 0V is at the bottom of the screen. At the serial line of the stove there is max 3.8V.

I intend to control the stove using Espressif ESP8266, a cheap chinese SoC with wifi and IP stack. It is 3.3v and it’s not 5V tolerant. While receiving can be done using a voltage divider (two resistors), sending is problematic. UPDATE: as Gus suggested in the comment, one diode and NPN transistor is a better way to do the half-duplex trick. Also NPN transistors are probably more common. So for my ESP8266 project I used this idea and just added one zener diode on the TX side of the ESP to protect TXD from getting voltages higher then 3.6V. Here is the schematic I use and the board made in free version of Eagle:

ScreenShot 2015-12-17 at 16.59.50 ScreenShot 2015-12-17 at 17.01.43

What you see as REGULATOR is a tiny switching regulator to convert 20V from DB9 connector to the 3.3V needed for the ESP8266. Don’t use LDO (linear regulator) for that purpose as the voltage difference is high and current can be ~200 mA meaning it would produce more heat than the ESP would be consuming. :D

Serial Protocol

Their protocol is called Rwms. It’s a simple binary serial protocol which works half-duplex. You are either sending or receiving.

There are two accessible memories on board. RAM and EEPROM. RAM is volatile memory which can be rewrote many times safely. EEPROM is the memory used for storing settings which are preserved after the stove is turned off. EEPROM should not be rewrote many times as writing cycles are limited (commonly 10-100k depending on the memory technology).

Connection parameters are: baud rate 1200, 8 data bits, 2 stop bits, no parity, no flow control. There are two commands – Read and Write.


– where TYPE is 0x00 for reading from RAM and 0x20 for reading from EEPROM
– ADDR_MSB optionally the most significant byte part if the address is longer than 8 bits (you can put 0 there/ignore it)
– ADDR_LSB least significant byte of address (item index) to write to
– ADDRESS is just a memory position index, starting from 0x00 to 0xFF

response from the stove are two bytes CHECKSUM VALUE
– VALUE is the returned value (it can be 255 decimal max)

To read a temperature (looks like ambient temperature for my board) you would send 0x00 0x01. It seems that indices may be different for different board so you have to experiment. Index 0x67 was hour and 0x68 minute while for Italian forum people it was 0x65 for hours and 0x66 for minutes.


– TYPE again 0x00 for writing to RAM, 0x20 for writing to EEPROM
– ADDR_MSB optionally the most significant byte part if the address is longer than 8 bits (you can put 0 there/ignore it)
– ADDR_LSB least significant byte of address (item index) to write to
– VALUE value to write (so it can be 255 decimal max)

stove responds with two bytes: ADDR_LSB VALUE
– repeating the values sent there

Known Variables

These are variables mentioned on the Italian forums. These addresses seem to be different for different boards though so it’s more just for a reference…

== RAM ==
0x00 internal timer of the program (ranging from 0-255 continuously)
0x01 temperature multiplied by 2
0x0D pellet loading in use (formula !!)
0x21 power state (0-stove off, 1-stove start)
0x37 speed 'fan fumes using (formula !!)
0x5A smoke temperature
0x63 seconds current
0x64 DOW (day of week)
0x65 current time
0x66 minutes current
0x67 date current
0x68 current month
0x69 current year
0x73 intake air temperature
0x7D copy of the set temperature from EEPROM

== EEPROM ==
0x7D set temperature

You can turn on the stove by writing 1 to 0x21 in RAM so the bytes to send would be 0x80 0x21 0x01 0xA2. The stove responds with 0xA2 0x01.
UPADTE: Another parameter table is mentioned in this thread.

UPDATE2: Parameters for my hydro pellet stove (all RAM):

0x00 some internal timer, constantly changed over time
0x01 ambient temperature (multiplied by 2)
0x02 ??? (started around C, maxed around 95)
0x03 water temperature
0x19 stove power control? Must be set in EEPROM I guess
0x21 state (0-off, 1-starting, 2-load pellet, 3-flame light, 4-work, 5-cleaning, 6-, 7-cleaning final)
0x34 current stove power
0x3B water temperature (copy of 0x03)
0x3C water pressure (multiplied by 10)
0x5A smoke/fumi temperature (started around 24 deg C, maxed to around 126 deg C)
0x65 current second
0x66 current day of week?
0x67 current hour
0x68 current minute
0x69 current day
0x6A current month
0x6B year since 2000
0x6D stove water temp control

My first custom control board (telecontrollo)

This was the first board I made (left). I decided to power it directly from the stove’s control panel. It was hidden in the stove. Worked fine, but one night I realised it may not be ok to stress the stove’s 5V regulator so much. ESP8266 can draw ~200 mA which is not that small. So I made a new board with switching regulator and DB9 connector to be connected at the back of the stove as an accessory.

telecontrolo pins

My second control board

This is the final board I made. It looks like an accessory and has the board edge connector for programming the ESP8266. Currently I use my own firmware written in C but I am actually working on a scriptable firmware which I may opensource at some point. I didn’t want to use NodeMCU or Arduino for ESP because NodeMCU is unnecessarily big and consumes a lot of memory and both can’t be updated too easily remotely. But both are cool projects so you can definitely consider one of them if you don’t plan more projects and don’t need rapid updates over wifi.


Micronova stuff

Micronova have some “Serial interface”. It probably has an Atmel microprocessor inside which just does the half-duplex trick. And there will be some RS232 transceiver or USBtoUART chip. :)


Some crappy “serial interface” gadget I don’t own

They have a proprietary software SeramiNet. It can be used for reading RAM/EEPROM parameters. It has also a console allowing you to write values. There is also a tool for flashing firmware but I am not sure if it uses the same serial interface or the JTAG pins on the board. If you ever wanted to write a firmware though, you would have to get some .enc, .hex or .ben file from Micronova and I am almost sure they won’t give you one unless you are a partner company. :P That may be because it would be an executable Atmel code and you could potentially decrypt it and flash into your own Atmel chip. This one makes sense – not blaming them for that.

UPDATE3: Micronova developed their own remote control based on ESP8266 and Atmel and it looks quite nice. I haven’t tested it as I have my controller. It look like their board connects to their server and registers. Then you create an account at efesto.micronovasrl.com and somehow associate the device with your account. Then you control the stove through that website. This is how “cloud services” work normally nowadays.

So that’s it. As I had told the Micronova employer that I will figure it all out, I did. Hope it will help more people.

Categories: Arduino, Electronics, Programming Tags:
  1. Mads
    October 2nd, 2015 at 10:46 | #1

    Hi, I found this very interesting. I have a EcoTeck pellet stove with a MicroNova board, and I am stuck on their protocol as well. I have been trying to get info from the DB9 connector without any luck. I have tried to scope on the signal going to the display. It is a 2 wire display and I have asked on a forum about the signal I am recieving and it should be a “amplitude modulation” signal which I know nothing about.

    I will continue to see if I can come up with some kind of solution to this.

  2. k3a
    October 3rd, 2015 at 19:53 | #2

    I’ve just made an update with all the details. Enjoy! Note: will also add some oscilloscope images and list of paramaters mentioned on their forum. Those parameters may be different for your stove but it’s good to have them here for reference.

  3. Mads
    October 6th, 2015 at 11:21 | #3

    Wow thank you, this is a lot for me to understand, but i am very impressed with the work you are putting in to it!

    Thank you, I will see what I can do with your finding!

  4. Vladimir
    October 7th, 2015 at 17:06 | #4


    I must say that I’m impressed. I also have pellet stove with micronova electronics and I was looking for solution for remotte controlling, and as I don’t have experience with arduino I will continue to read future updates, and if I can help somehow, for testing and so on, I’m available. My stove is from Kepo, serbian manufacturer.


  5. Gus
    November 6th, 2015 at 22:11 | #5

    In your opinion would the serial interface with the diode work with the Seraminet and a USB to 5V TTL or do I need something else (looking for a easy to build set up)


  6. k3a
    November 6th, 2015 at 22:24 | #6

    You need to try play with it. Problem is for Seraminet to work you need to cancel out the echo of sent commands. In my schematic it was cancelled by voltage drop of the diode, maybe it will be enough. There is like 40k pull up in the stove to 5V on the signal line. Idle state is high (5v). It’s really more about trial and error. If you manage to it simpler, let me know. Also more pople will like it. Later I will share my schematic for ESP8266 integration. It is a 3.3v device not 5v tolerant so it was a little bit more complicated.

  7. Gus
    November 7th, 2015 at 04:48 | #7


    Good explanation for the 2 wire to 1 wire TTL no echo

  8. Gus
    November 11th, 2015 at 20:49 | #8

    Built the interface and I was able to do a Eprom backup using Seraminet and USB to 5v TTL
    serial adapter


  9. k3a
    November 11th, 2015 at 20:54 | #9

    Nice! :) And thanks for the link, I like his 2wire->1wire circuit.

  10. Gus
    November 11th, 2015 at 23:54 | #10


    With this set up and the 2 wire 1 wire interface you think I should be able to run the Seraminet via wireless to the 5Volt TTL Micronova board?

  11. k3a
    November 12th, 2015 at 21:06 | #11

    Yes, this board seem to have the 5V->3.3V logic shifter and even 5V regulator, it should work. It looks similar to what I made (the last photo on this page). Soon I will also release my Eagle schematic and board design too.

  12. Adrien
    November 18th, 2015 at 12:38 | #12


    I have a Superior Monia stove (Micronova board), and I want to connect it to my homeautomation system (OpenRemote hosted on a QNAP NAS).

    First of all, many thanks for this thread with very usefull informations, and for the description of all the step you achieve !

    For the moment, I’m thinking about the way to connect the Micronova and Openremote, and I think that Raspberry pi could be a solution. It has an 3.3V UART port (RX,TX seperated), so with the explained circuit, I should be able to communicate with the stove. I will then have to expose the serial commands to a TCP/IP protocol to access-it from OpenRemote.

    I’m not an Ardino Expert, but does the component given by Gus be able to replace Raspberry ? How do you configure the Wifi configuration of the board ? How do you communicate with the board from the remote computer ?

    Thanks for your answer,


    • k3a
      November 22nd, 2015 at 21:21 | #13

      RaspberryPi would work but GPIO pins of it are NOT 5V tolerant. You should only apply 3.3V max on them. I use ESP8266 board which is also not 5V tolerant and I’ve made a circuit which does 5V<->3.3V logic level shifting. Before I share it though, I plan to include the echo-cancellation suggestion from Gus. I have no more time today but I will update it soon and let you know by mail.

  13. Vladimir
    December 8th, 2015 at 20:50 | #14

    These days I’m planning to take some time and try to figure out how to communicate with my stove. First problem I have is that I don’t have DB9 connector at the back of my stove.

    1. I didn’t understand so well, is CN13 on main board serial connector, can I grab pins from there or I must take it from the controller/LCD board?

    2. If I understand correctly, there are no separate pins for Rx and Tx, so I must find some way to “translate” UART /RXD levels… and later HC42, USB-to-TTL based on CP2012… and then I lost focus because I have very poor knowledge about electronics.

    After reading comments here, and comments from italian forum, I have no idea which solution to try, because for each step there are several different solutions and both have pros and cons (echo) so I have no idea what to do.

    Can you please, post more photos of your projects but with more details: how do you connect stove to computer (cables, adapters, level shifters, dc-dc converters…), which software did you use for sending commands (some special or standard Hyper Terminal)… and so on.

    I hope that some of you will find some time to answer to these questions. Thanks in advance.

  14. Gus
    December 11th, 2015 at 05:16 | #15


    1) I have the IO 23 board CN13 should have Ground , I/O (5Volt) , and power ,not sure what the power lead is used for maybe to power the Micronova serial interface and or the Bootloader

    2) They use a 1 wire data transfer, you will need a 2 Wire to 1 Wire interface ,here is a simple and easy to build http://nerdralph.blogspot.ca/2014/01/avr-half-duplex-software-uart.html
    A USB to 5V TTL works

    This should get you started ,with this set up I am able to communicate using Seraminet
    (Micronova software)


  15. Vladimir
    December 13th, 2015 at 01:24 | #16

    Thanks Gus,

    That’s exactly what I was planning to try. I ordered USB to RS232 adapter based on CP2102, bread-board for easy experimenting with transistors and diodes, jumper wires…

    You said that you are able to use Seraminet with this setup. That means that you dont have echo effect? What specific transistor and diode did you use?

  16. k3a
    December 13th, 2015 at 19:14 | #17

    Hey Vladimir. It doesn’t really matter, any general-purpose NPN transistor should work. I used S9014 SMD transistor. Same goes to diode, any generic diode should work.

  17. Vladimir
    December 14th, 2015 at 12:14 | #18

    Thanks. I got some parts today:
    – BC546 transistor
    – 1N4148 diode

    Wish me luck :)

  18. k3a
    December 14th, 2015 at 12:30 | #19

    It’s always a bit of trial and error. Transistor should be fin, I am not sure about the diode though. Datasheet for your diode says Vf=1V. If it will be 1V difference in this schematic too it would mean when the CP2102 sets the TX line to 0V, it will be 1V after the diode on the stove’s side. And it may not be low enough to be registered as logic 1 by the stove (see https://cdn.sparkfun.com/assets/6/d/7/7/4/515385fdce395f0905000000.png) especially as there is 500ohm resistor between Atmega in the stove and data pin. I hoped you would get a diode ~0.6 or 0.8V Vf max. You can try it with this diode too. But in the board I made 2 days ago I used a higer voltage zener with Vf=0.9V as I don’t have a normal smd diode and I am suspecting that this is why it doesn’t work (measured around 0.9V on stove data line when TX is on 0V). Will solder a different diode today and let you know if that helped.

  19. Gus
    December 14th, 2015 at 23:08 | #20


    Used 1N5817 get the odd error but checksums Ok

  20. Gus
    December 17th, 2015 at 00:38 | #21


    on another note I think the Amega 328 (micronova board) is 5 Volt CMOS


  21. k3a
    December 17th, 2015 at 15:17 | #22

    Yes, you’re right. Atmega is CMOS. In that case 1V forward drop diode should be fine too. My problem was in the software, not the diode. I managed to connect 3.3v (no 5v tolerant) ESP8266 by just adding one zener diode on TX side. I see some short, higher-voltage (~3.7V) spike on RX line after rising edge, this is probably related to the transistor, but does it mean it conducts in reverse (so current going from E to C for a short period)? http://postimg.org/image/jetcp11u5/ It works and it’s roughly in the voltage limit of this chip so I won’t probably try another transistor… I will update the blogpost soon and split it into two posts, so this one will be communication only, the other will be that LCD stuff as it’s not that useful generally.

  22. Gus
    December 17th, 2015 at 19:49 | #23


    Excellent ,I have the esp8266 as well with the 5Volt interface trying to use it as a transparent
    bridge but no luck yet . So you are able to communicate with the Micronova board at 3.3V ?
    Which 2Wire/1Wire interface are you using?
    Not sure 100% but if I remember correctly the TXD and RXD pins on the AT328 are connected
    together on the circuit board ,would be possible to cut the trace and bring out the TX and RX on a 2 Wire and avoid all this 1Wire problem


  23. k3a
    December 17th, 2015 at 20:10 | #24

    Yes, I am using esp8266 to communicate with the stove. I’ve updated the blogpost with my latest schematic. See the image at 1/4th of the page. It’s the schematic you mentioned with just one zener on txd. I used 3.3v zener but 3.6 or so would be ok too. It works fine, no echo. I don’t know how they did it on the atmega side, never disassembled the stove to access the majn board, maybe they just used one gpio of that atmega, switching between output and input pin mode.

  24. Gus
    December 17th, 2015 at 20:57 | #25


    Shot in the dark, maybe the response time of your zener could give you the 3.7Volt overshoot


    When you update the blog fell free to delete streamline all the non relevant info from my posts ,so the next guy does not need to read the B.S. (Bullshi#)

  25. Vladimir
    December 19th, 2015 at 08:13 | #26

    Sorry for asking stupid questions but I’m trying to figure it out :)

    1. What is voltage of TxRx wire that coming from the stove in idle state? I grab 4 wires from main board serial connector (CN13), and I have GND, +15V, and two +5V wires. Don’t know which one is correct one.


    2. If I use regular multimeter (not scope) can I see changing levels when pressing something on keyboard (when keyboard communicates with main board). I guess that these changes are with high frequency so multimer can’t display it but just asking.

    3. I’ve got new diode, some schottky BAT43 and tried to build 1 wire-2 wire circuit without success. Using Serial Port Monitor for monitoring all traffic across serial port and it looks like I’m sending something but I don’t get anything from the stove. That’s the reason why I’m thinking that I don’t use correct wires…


  26. k3a
    December 19th, 2015 at 14:23 | #27

    None are stupid, that’s the way to learn. ;) I am also still learning.
    1) It’s basically 5V. It’s pulled to 5V via a ~35k ohm resistor internally. This is the state of the line when idle or logic 1. On logic 0 it brings down the line near GND to make it lower then lowset voltage level for 5V CMOS. For more info on this topic https://learn.sparkfun.com/tutorials/logic-levels. Your problem may be in the GND. Voltages are always relative, you compare potential between one level and the other. Don’t use stove’s metallic enclosure as GND, while it is grounded to safety, it is not connected with logic GND and there is a few voltage difference. Try to take GND from the mainboard somewhere. If you figure out the CN13 pinout, please let us know, it may help others.
    2) Yes, you are right. Multimeter updates only few times in a second, depending on the type, but usually something like 5 updates per second. Baud rate here is 1200 meaning 1200 changes can happen per second. One change is approximately one bit of data. Approximately because there are two stop bits after every byte. To debug these things you either use a scope or a logic analyser. There are some cheap chinese Saleae clones for $12 which work ok. The difference between this and the scope is that logic analyser often gives you logic values only (1 or 0) and can do the protocol analysis while the scope measures the actual voltages over time so you can see the exact voltage levels.
    3) It’s difficult to say without seeing the traffic. But it’s quite possible your problem is wrong wires. Also ensure that you are setting 1200 baud rate with 2 stop bits, 8 data bits and no parity.

  27. Vladimir
    December 19th, 2015 at 17:33 | #28


    1. Yes, you already wrote about difference between GND (logic reference) and safety earth so I used your photo (LCD/controller back) which shows which pins you used. I turned off the stove, and checked if some of my 4 wires (from serial connector) is short conected to some of yours pins on LCD/controller board.


    Marked pin on photo is direct connected to one of 4 pins on serial connector. I assumed that it is ground. A connected black contact of multimeter to that wire, and measure reamining 3 wires, and all voltages are positive, so I’m pretty sure that it is GND. I must figure out which of these remaining wires are power supply for Micronova “Serial interface” and which is TxRx. :)

    3. Yes, at the beginning I configured COM port with that settings. Also, I tried to communicate with stove using SeramiNet, but although I installed english version of application, plenty of options are still in itallian so I don’t know what I can to click but to avoid making some problem. I selected com port, configure baud rate and everything else and at the bottom of the application seems like it’s connected but I don’t know how to test :)

    Back to the laborotory :)
    Thanks for help

  28. k3a
    December 19th, 2015 at 21:46 | #29

    1. That gnd should be ok, yes. You can also measure the voltage on the lcd back to verify. I commented that back for you here http://postimg.org/image/a8jeval71/
    3. You can use RealTerm for windows http://sourceforge.net/projects/realterm/ and set Display as Hex, configure the port and send two bytes 0x00 0x01, stove should respond with 2 bytes if it works. For SeramiNet, you select the port and click Open or something like that. Then the best way of testing it is opening EEPROM or RAM memory page. It will scan various addresses and read values. If it is reading 0xFF it doesn’t work. If it works you will see some numbers there.

    Hope it helped.

  29. k3a
    December 19th, 2015 at 21:57 | #30

    Oh and also if your multimeter can measure resistance you can turn the stove off and measure resistance between what is marked as IR pin and all the CN13 pins. There is ~500 ohm resistance between IR and RxTx, it’s almodt the same line. Higer resistance (kohms) means it’s not the pin you want.

  30. Vladimir
    December 19th, 2015 at 22:44 | #31


    I think we made some progress :)

    Many thanks again. I will experiment tomorrow so I will send report what I’ve done.

    • k3a
      December 20th, 2015 at 13:51 | #32

      Looks like it works for you. This is what I meant by viewing memories. It automatically refreshes all parameters 0x00 – 0x7F. http://postimg.org/image/rekq4au8h/ I’ve been recording this screen on video and then watching parameters change during all common stove phases to get the params I needed. I found all params I need this way but of course someone can plot these variables in chart to better understand all of them. Maybe even seraminet can plot them somehow but I don’t know how. It seems they have some file with mapping which you would load into seraminet and it would define which parameter is located on which address. This doesn’t seem to be public so we have to find the addresses ourselves. You can use addresses I mentioned in the post, they may be the same for you, or at least some of them.

  31. Vladimir
    December 20th, 2015 at 23:19 | #33

    Yes, I opened that table, and you are right, it refreshes values every 2-3 seconds and I already recognized some values thanks to your instructions but, as you can see on screenshot, at the bottom of the application some communication error appears.


    I guess this isn’t good?

  32. k3a
    December 21st, 2015 at 00:38 | #34

    Hmm, it isn’t good. It sent 00 14 trying to read value at address 14 and received 15 02. It should have been 15 01 or 16 02. So maybe one bit was missed or added somewhere. Maybe a different transistor would work better, who knows, hard to say without a scope. :( Overall it appears to work though. So in reality it may be no big deal if sometimes some commamd fails. You can repeat. Depenig om your requirements.

    What is the CN13 pinout btw please?

  33. December 21st, 2015 at 16:22 | #35

    Hello, i find you have Great ideas..
    My pelletstove is a extraflame bella
    With a micronova motherboard..
    The controlpanel is an Old LED and
    If possibel i wana change it to the
    Same like you use…
    If i Start my stove, its showing
    Programm 40
    I want to make an update, is it
    Possibel over the DB9 ???
    And dies it give an direkt adapter
    From the stove DB9 to the PC rs232
    To buy???
    Best regards

  34. Vladimir
    December 21st, 2015 at 23:20 | #36


    I will try with different transistor, who knows what is the problem. I was watching and analyzing and this error appears once in a 2-3 minutes. I hope it’s not big deal as you said. :)

    Guy from italian forum who post “crazy schematics with optocaplers…” was right with his pinout of serial connector. :)

    This is pinout which I use

    On second screenshot I marked two pins which are required for communication. Other two are probably for powering “official micronova serial interface”.

    I tried to communicate with stove using third party applications (RealTerm, SerialPortMonitor, Putty…) but I don’t get any response from stove. I configured serial port (1200,N,8,2) and send commands as strings. Am I doing something wrong?

    Can you send a few more examples of commands and what should be response from stove? Thanks

    • k3a
      December 23rd, 2015 at 08:44 | #37

      Make sure not use the port in another app. Then RealTerm requires reopening the port after changing connection params, make sure to press some button (don’t know the button name by heart). Then send commands as hex numbers (or other numbers but you are sending binary bytes not a string). So something like 0x00 0x01 would instruct the stove to read value at addresss 1 and will report something like 0x23 0x22. Checksum will be +1 because there is only 1 in the sum of the request bytes. You can configure RealTerm to display hexnumbers, maybe even decimal. This command is the simplest and you can change the second byte to read different addresses e.g. 0x00 0x0A to read byte at address 10 (0x0A in hex). In the blogpost there is also command to power on the stove by writing some value. I will also add command to change stove power setting. It works the same way just writes into a different memory. Is it working? If not I will make some screenshots but I am away from my house for a week.

  35. Vladimir
    December 25th, 2015 at 07:36 | #38



    I have to commend that with your help I managed to communicate with my stove. The point was sending HEX command while I’m obviously out of experience, kept sending commands in ASCII format that stove ignored.

    I was successfully read some of the “mapped” values, and I was able to light the stove with command which is extra. What I planned is to try to figure out in which addresses are defined time of switching on and off in the chrono mode, as well as the parameters of the snail and fan. After that, I will try to write software for microcontroller (arduino) which would send the commands, and as a frontend would presumably used Blynk platform for Android, because I would say that it seems a lot easier for creating a functional interface rather than a web server and a responsive page …

    I’m happy. Thanks so much for helping :) I will inform about my progress. :)

  36. Gus
    December 26th, 2015 at 15:37 | #39

    Very good you guys -35C at the moment I am not playing with stove :)

  37. Vladimir
    December 26th, 2015 at 22:26 | #40


    Where are you from Gus? In Serbia is pretty hot for this time of year, average daily temperature is around +5C. Last year in december was a lot colder. Global warming I guess. :)

  38. Gus
    December 27th, 2015 at 01:16 | #41
  39. doppiaemme
    December 27th, 2015 at 12:44 | #42

    Hi, I’ve been following this thread for a while but the board I have seems a different model then all the ones I’ve seen mentioned.
    Mine is a pellet boiler (not a stove), model is MCZ Logika and the board inside says N050.
    It all seems it’s a Micronova one (the components used, the labels etc) but I’m not 100% sure.
    The only reference which lead me to think it’s a Micronova is the wiring diagram of the boiler, where the serial connector is marked as “SERAMI”.
    My need is quite basic indeed, I want to check whether the boiler is not in error status mainly. It happened a few times the pellet wasn’t loading properly from the external tank and the boiler went into protection mode. Of course it happened during the night and I realized that only when it was already freezing my ears off.
    Well it would be great to control/set the temperature etc.
    Do you think it would be just a matter of different EEPROM addresses/values?

    • k3a
      December 31st, 2015 at 13:12 | #43

      It’s hard to say. You can see how Micronova boards look like in google images (https://www.google.cz/search?q=micronova+stufe+scheda&tbm=isch). If you see a 4 pin CN13 connector it may be it. You can use a multimeter and measure voltages on these pins relative to a GND on the board. If it is a Micronova board with a serial connector, it almost surely will be possible to control it the described way.

  40. JLC
    January 7th, 2016 at 22:33 | #44

    i’ve got a stove which trademark is Superior.
    It has got a DB9 connector backside.
    I plugged in DB9 and communicated with it.
    Code to start is okay, but I met problems to stop it.

    When I send 0 to 0x21 (state), stove stops but without cleaning. It may be dangerous.
    When I send 5 to 0x21 (state), stove may start cleaning indefinitely without stopping.

    Does anyone know what procedure to apply to stop correctly the stove please ?

    Thank you for your site and all your information.

  41. JLC
    January 8th, 2016 at 08:59 | #45

    My pelletstove is a Superior.
    I use its DB9 to send commands as described here.
    I can switch on and off my stove ! :-)
    But I met problems with stopping the stove.
    Writing 0 to 0x21 stops the stove without cleaning.
    Writing 5 to 0x21 starts cleaning but without stopping the stove… don’t know why…

    Have you met such a problem ?

    Could you please tell me the command sequence to write to 0x21 to stop correctly the stove ? Or explain why it is not as simple to stop it (do I have to launch cleaning during a while, then have to send the stop command by myself ?).

    Thank you for your help.

    thank you for sharing all those informations.

  42. JLC
    January 8th, 2016 at 09:00 | #46

    Sorry for the double Question, I did not see my previous question (thinking it had not been taken).

  43. Vladimir
    January 9th, 2016 at 09:00 | #47


    In my case, when I write 0 to 0x21, my stove automatically switch to “cleaning final” mode (not instantly OFF). At first test I thought I have identical problem because after 10 minutes stove was still in “cleaning mode” but it turned out that it takes a little longer for stove to turn off when use command relative to using power button on LCD/controller.

    Same as you, if I write 5 to 0x21, stove stay in cleaning mode permanently.

    Commands I use for turning on and off:
    Turning ON 80 21 01 A2
    Turning OFF 80 21 00 A1

  44. JLC
    January 12th, 2016 at 07:34 | #48

    Thank you for your help.
    I’ll try those commands.
    I will come back to give my return.

  45. JLC
    January 12th, 2016 at 23:12 | #49

    I’ve made some tests :
    I switched on the stove by my self pushing its on button. Stove has worked for 3 hours.
    I tried to stop it using some commands :
    – First : I sent OFF command : 80 21 00 A1. Stove stopped, pellets stopped falling, but pellets that were in the brasero continued to burn. Cleaning procedure did not start.
    – Then I sent cleaning command : 80 21 05 A6. Cleaning procedure started, and reading stove state returned 5 code. BUT, pellets restarted to fall and stove as well. Reading stove state returned then 4 code : stove is working… !
    – Then I sent this cleaning command : 80 21 06 A7 (code 06). Cleaning procedure started without stopping itself. I’v been waiting for 30 minutes… then I stopped by my self sending OFF command.

    I’ll try new tests.

  46. k3a
    January 13th, 2016 at 01:57 | #50

    Maybe you are sending cleaning firepot instead of cleaning final? Can you watch states during a standard manual power off? Maybe your stove uses different codes.

  47. Vladimir
    January 13th, 2016 at 03:51 | #51

    I can’t figure out how to read error codes. That’s last thing I want to be able to read, before I start writing my arduino code.


    In my instruction manual I have list of alarms so I assumed that last character (1-9, A, B) is reference of error code but after days of testing and simulating, I didn’t manage to find out on which memory locations is stored information about alarm. Maybe it’s not just value, maybe there is some math… Here is the list:

    AL1 – Blackout
    AL2 – Smoke probe
    AL3 – Hot fumes
    AL4 – Smoke ventilator broken
    AL5 – No fire
    AL6 – No pellet
    AL7 – Thermostat 100 C
    AL8 – Pressostat
    AL9 – Water probe
    ALA – Hot water
    ALB – Water pression

    What do you suggest?

  48. JLC
    January 13th, 2016 at 08:32 | #52


    have you searched both in RAM and EEPROM (EEPROM addresses are in 0x20) ?
    Alarms need to be stored also in EEPROM to be displayed (at least known) when stove is restarted. May be your stove stores only alarm flags in EEPROM ?

  49. JLC
    January 13th, 2016 at 08:37 | #53

    Maybe alarm flags are bit coded, for example :
    – AL1 is bit 0 of BYTE X
    – AL2 is bit 1 of BYTE X
    – AL3 is bit 2 of BYTE X
    – AL4 is bit 3 of BYTE X
    – …

    – AL9 is bit 0 of BYTE Y
    – ALA is bit 1 of BYTE Y
    – ALB is bit 2 of BYTE Y

    In this case, only a few bytes would store alarm states.

  50. JLC
    January 13th, 2016 at 10:02 | #54

    This morning I ran my stove by its ON OFF button, and let it work for a while.
    Then I launched stop procedure by its ON OFF button. I read stove state : 6.

    When stove had totally stopped, I started it again using ON Frame.
    I read states till stove code was 4 (work).

    Then I tried to stop it sending code 6 : 80 21 06 A7
    Pellets stopped falling, cleaning procedure began…
    But it is still running permanently… (I stopped procedure after 20 minutes).

    Except 3 first states (0, 1, 2), it seems next states don’t relay each other by themselves…

  51. Vladimir
    January 13th, 2016 at 21:17 | #55

    No, I’ve searched only RAM but you are right, I will check EEPROM. Thanks. :)

  52. JLC
    January 16th, 2016 at 23:41 | #56

    I wrote a C# program to view memory data from stove RAM and EEPROM memory.
    It changes color data on screen when data is new, to detect easier where are searched informations.

    If any interested, I can share it.

  53. Vladimir
    January 17th, 2016 at 03:14 | #57

    Wow, great. I’m interested. :)

  54. Mpp
    January 17th, 2016 at 16:22 | #58

    Can anyone provider me the lirc config for the infrared remote above? I don’t know how to convert the audacity config to lircd data.

  55. JLC
    January 17th, 2016 at 22:57 | #59

    here’s the program : http://dl.free.fr/w85ruHVHM

    Data is stored in list view too for each byte in order to see how data is changing.

    You may need .Net Framework 4.0 (usually already installed on windows machine) :

    Share it :-)

  56. JLC
    January 18th, 2016 at 23:08 | #60

    Hi every body,
    I’ve just discovered my CLEO SUPERIOR stove may have a planned obsolescence !!!
    And maybe yours too…?

    I was searching for setup data hidden in eeprom…
    Scanning all 256 bytes in eeprom, I found out a byte that changed every minutes !
    In fact, date is stored in EEPROM from $F9 to $FD…

    Well, an EEPROM memory can be written 1 000 000 times, so 1 000 000 minutes…
    1 000 000 / 60 / 24 / 365 = 1.9 year !
    So if data is really stored in EEPROM, in less than 2 years, the EEPROM circuit will lose its memory !!!

    I hope I’m wrong !

  57. JLC
    January 18th, 2016 at 23:25 | #61

    Here are some CLEO SUPERIOR EEPROM addresses :
    Addresses (hexa)

    Program 1 :
    50 – ON(1)/OFF(0)
    51 – Hour:Minute switch on
    52 – Hour:Minute switch off
    53 – Power
    54 – Programmed Temperature

    Program 2 :
    55 – ON(1)/OFF(0)
    56 – Hour:Minute switch on
    57 – Hour:Minute switch off
    58 – Power
    59 – Programmed Temperature

    WARNING : Hour:Minute is coded on 1 byte using this formula : Byte = 6xHour + Minute/10
    Example : 7h30 => Byte = 6×7 + 30/10 = 42 + 3 = 45 (2D in hexa)

    Time in EEPROM Map (BCD coding) :
    F9 – Hour
    FA – Minute
    FB – Day
    FC – Month
    FD – Year

  58. JLC
    January 18th, 2016 at 23:28 | #62

    Hi Vladimir,
    I posted link to C# program. You may not see it yet, it is awaiting moderation.

  59. JLC
    January 19th, 2016 at 11:00 | #63


    I finished exploring my CLEO SUPERIOR (Micronova CS 03 03 10), I got enough information to develop my interface (microchip + ESP8266).

    What I discovered those last days makes me think memory map we access through serial port is not as simple as one side RAM and one side EEPROM.

    In fact, there’s a microcontroller on my stove PCB (ATMEGA644) and only one timekeeper (HT1381) : there is no more eeprom/flash CI. So microcontroller program does whatever it wants when serial requests come to it : it makes its own memory map. That ‘s what I discovered when I looked at EEPROM side : I found out too many values changing for an EEPROM.

    Bottom EEPROM memory is in reality a direct access to timekeeper, that is the reason why values changed…
    And that is only one example, other values changed too but I did not understand their meaning.

    Futhermore, memory EEPROM goes from $00 to $1FF. Second page ($100 to $1FF) is made of FF values, except last bytes which are again timekeeper mapping (it is accessed through $F8 to $FD, and $1F8 to $1FD too). So it confirmed what I thought : microntroller has its own “serial” memory map which it mades of a mixed RAM and EEPROM.

    When you have a look at ATMEGA644 datasheet, flash and eeprom memory are 10K and 100K erase/write cycles. What I wrote in previous Comment is now obviously wrong : data from EEPROM are not modified every seconds or minutes, otherwise SUPERIOR CLEO would be known as a problem stove !!!

    Main problem I faced to in my exploring experience was to stop “safely” my stove.
    Writing 6 to 0x21 (RAM) was hazardous for me : my stove may have stopped once or twice by itself but after an anormal long fan period. Obviously, that way to stop it was not the same as the safe manufacturer procedure (which fan procedure is really shorter).

    So I decided to write stop time in “EEPROM” instead of writing 6 to 0x21.
    For this, I need to read timekeeper, calculate hour:minute byte (=6xHour+Minute/10) and write it to Program 1 ou 2 in eeprom (0x52 or 0x57. This way, the stove will stop using a better way). That’s what will do my microchip interfacing ESP8266 with stove serial DB9.

    Thanks a lot for your site and your answers that I helped me a lot to dive into my stove.
    I hope my (too many ;-) ) comments and my stove serial tool will help you too.

    Have a good day.

  60. Vladimir
    January 20th, 2016 at 23:52 | #64

    JLC :
    Hi Vladimir,
    I posted link to C# program. You may not see it yet, it is awaiting moderation.

    Thanks man. Great job.

    You’ve done great research about EEPROM memory locations with chrono values and I hope we will together figure out how to “decode” Factory settings in EEPROM. Factory settings are protected with password on my stove, so I guess it’s not easy to read values.

  61. JLC
    January 22nd, 2016 at 13:19 | #65


    The C# program may be useful to found out the EEPROM value meanings.

    I recognized OnOff chrono (P1 and P2) setup values this way :
    1/ I read once all EEPROM memory
    2/ I changed stove setup manually
    3/ I read once again (without erasing previous values) all EEPROM memory : data changing to red means values had changed from previous read.
    4/ I read once again : red data changing to green means value is the same that previous read, so it may be the memory address of the stove setup you changed at point 2.

    Have a good day

  62. Vladimir
    January 24th, 2016 at 11:59 | #66

    Today I finally get some time to test your application. I believe that app is OK but seems like I have communication problems so I’m not able to read all memory locations. Sometimes program read only few positions, sometimes 2 or 3 complete rows, when Times Stove error appears, and application stop responding.


    As I said in some of previous posts, I was able to read plenty of values using Seraminet software, but at the bottom of the screen it shows some RWMS error.


    It’s obvious that I must change something on my 1wire-2wire interface because I suspect that is the reason for these communication issues.

  63. JLC
    January 24th, 2016 at 21:11 | #67

    TimeOut stove appears when a request (a frame) is sent to the stove and the stove does not answer. You have to click ok to let it keep on.
    I met those problems while testing when I tried to access addresses the stove did not use.

    So it may mean the stove does not know this address, or this address is write only.

  64. trgdev
    January 24th, 2016 at 22:46 | #68

    JLC and Vladimir, regarding your stove off problems, maybe you could try something else.

    After reading what k3a found out (that the IR and serial path are shared) I tried to decode the IR codes as a 1200 8N2 uart transmission and got the following commands :

    80 58 54 2c : P+
    80 58 50 28 : P-
    80 58 52 2A : T+
    80 58 58 30 : T-
    80 58 5a 32 : PWR TURN ON/OFF ?

    When sending this commands via uart you are basically emulating the IR remote (actually, it’s the IR remote that is sending IR codes that emulate the serial protocol, but you get the meaning).
    I quickly tried the power increase/decrease commands and it seems to work. I didn’t have the chance to test the TURN ON sequence, hopefully I’ll be able to in the next few days.

    By sending a repeated sequence of 80 58 5a 32 it should be possible to emulate a long press of the power button on the IR remote to turn the stove off (4 bytes at 1200/8N2 is roughly 36.6 ms, so send the commands 54 times to simulate pressing the button for ~2 seconds).

    Hope this helps.

    • k3a
      January 24th, 2016 at 22:50 | #69

      That’s a good idea! :)

  65. JLC
    January 25th, 2016 at 07:46 | #70

    Brillant idea !

    I’ve just tried codes you wrote : it works fine !

    Sending one frame (through 1 file) changed values, and Receving IR LED lit on the stove display.

    With my stove, P+ and P- codes are reversed :
    80 58 50 28 : P+
    80 58 54 2c : P-

    Temperature’s codes are ok :
    80 58 52 2A : T+
    80 58 58 30 : T-

    Power : sending one frame once does not start the stove. But Receiving IR LED on display lights !

    So I used RealTerm to send the binary file composed of PWR TURN ON/OFF codes (80 58 5a 32) many times. First it did not work. So I inserted 100ms pause time bewteen each frame, and it works great !!!

    So on my stove, I sent 8 PWR frames with 100ms pause time between each of them for simulating LONG POWER BUTTON PRESS.

    THANKS A LOT !!!
    I had never thought to read IR part before… Shame on me !!!

    Have a good day.

  66. trgdev
    January 25th, 2016 at 08:25 | #71

    That’s cool, glad it works! ;)

    I was still playing with the stove yesterday night (I have connected a TL-WR703N router to it so that I can ssh and talk to the stove in remote) and I found out that in my Micronova IO23 the display text is also present in ram (0x10 bytes at address 0x85).

    This is useful both to differentiate among the different phases that the stove goes thru when turning on (preheating, loading pellet, etc.) but could also be used to detect an ALARM condition.

    This is a log of this morning activity when my girlfriend was getting ready to go to work and the stove turned on. Sorry for the long (and italian) text ;)

    Stove State : 0
    Display : SPENTO

    Stove State : 1
    Display : ACCENDE

    Stove State : 2
    Display : ATTESA PRERISC-

    Stove State : 2
    Display : CARICA PELLET

    Stove State : 2
    Display : CARICA FIAMMA

    Stove State : 2
    Display : ATTESA FIAMMA

    Stove State : 2

    Stove State : 3
    Display : FUOCO PRESENTE

    Stove State : 3
    Display : FAVORO

    Stove State : 4
    Display : LAVORO


    Stove State : 4
    Display : LAVORO

    Stove State : 4

    Stove State : 5

    Stove State : 5
    Display : PULIRO

    Stove State : 4
    Display : LAVORO

    Stove State : 4
    Display : LAVORO NALE

    Stove State : 6
    Display : PULIZIA FINALE

    Stove State : 0
    Display : SPENTO

    As you can see the text changes in ram seem to take some time to update (and strangely are updated in reverse order) so when reading the text it’s probably better to read it twice and make sure that both readings are the same.
    If someone has an idea on how to simulate an alarm condition easily, I could probably make some tests on the field this afternoon.

  67. Vladimir
    January 25th, 2016 at 10:20 | #72

    Step 1. I think it’s the easiest way to simulate alarm condition to wait to burn all pellet from stoves storage. When the flame goes out and when the exhaust temperature drops below 40 (I think) alarm “No pellet” will display. Try to locate value in memory. I’ve searched only RAM without success but later JLC advice me that alarms need to be stored also in EEPROM to be displayed when stove is restarted, but I didn’t have time to experiment.

    Step 2. Without adding pellet to stove, start cleaning final. When stove turn off completely, start it again. Because there is no pellet in stove, after initial loading and lighting up, after few minutes, exhaust temperature will not rise, photo element will not detect the flame so “No lightining/fire” will display. Try to locate this value and to compare it with value of previous alarm…

    Step 3. If you turn off the stove unplugging it (simulating power loss) after 30 minutes (default value on my stove) “Blackout alarm” will display. Try to locate this value and to compare it with value of previous alarm…

    I think that simulating other alarms is not so simple.

    Again, this is list of alarms from my instructions:

    AL1 – Blackout
    AL2 – Smoke probe
    AL3 – Hot fumes
    AL4 – Smoke ventilator broken
    AL5 – No fire
    AL6 – No pellet
    AL7 – Thermostat 100 C
    AL8 – Pressostat
    AL9 – Water probe
    ALA – Hot water
    ALB – Water pression

  68. Vladimir
    January 25th, 2016 at 10:52 | #73

    Also I analyze EEPROM values last night, and locate some of factory settings which are, as I said password protected.

    0x05 Coclea power 1 (hex -> decimal value, divide with 10 to get time in seconds with 1 decimal)
    0x06 Coclea power 2
    0x07 Coclea power 3
    0x08 Coclea power 4
    0x09 Coclea power 5

    0x11 Exhaust engine on power 1 (hex -> decimal value, add 25, result multiply with 10 to get rpm of exhaust engine)
    0x12 Exhaust engine on power 2
    0x13 Exhaust engine on power 3
    0x14 Exhaust engine on power 4
    0x15 Exhaust engine on power 5

  69. JLC
    January 25th, 2016 at 22:29 | #74

    On superior stove, display message is stored from 0xD5 to 0xF0 in RAM. Displayed numerical values are stored in binary, other values in ascii.
    Example : message 19° ENS P1
    0xD5 : 0x01
    0xD6 : 0x09
    0xD7 : 0xDE
    0xD8 : 0x20 space
    0xD9 : ‘E’
    0xDA : ‘N’
    0xDB : ‘S’
    0xDC : 0x20 space
    0xDD : ‘P’
    0xDE : 0x01
    0xDF : 0x20 space
    0xE0 : 0x20 space

  70. JLC
    January 25th, 2016 at 22:31 | #75

    correction : message is stored from 0xD5 to 0xE0 !

  71. trgdev
    January 25th, 2016 at 23:04 | #76

    I finally was able to convince the rightful owner to make me do some tests on the stove and waited for it to burn all the pellets while logging state and display, ready to examine ram and eeprom.

    In my model (Palladio Scozia with Micronova IO23) the “no pellet” error sends the stove to state 8 while the display cycles between the two messages “ALLARME ATTIVO” and “MANCANO PELLET” (meaning “ALARM IS ON” and “NO PELLET”).
    I don’t know if other alarms put the stove in a different state, but in my case this can always be detected by reading the display text.
    Sending 16 PWR frames / 100ms delay starts the final cleaning cycle and the stove then turns off.

    Vladimir : what is the model of your Micronova control board? I assume you should be able to find some kind of ascii text in ram to detect the error state.

  72. trgdev
    January 25th, 2016 at 23:09 | #77


    That’s the most stupid way of storing text that I have ever seen :D
    Can’t think of a reason why they decided to do it that way…

  73. Vladimir
    January 26th, 2016 at 05:43 | #78

    trgdev :
    Vladimir : what is the model of your Micronova control board? I assume you should be able to find some kind of ascii text in ram to detect the error state.

    I also have board Micronova I023, and as yours, my stove also go to state 8 when “No pellet” error appears. I didn’t check whether the stove always go to state 8 no matter what alarm is triggered but it’s great that you explained how to read text from display so I tried and I’ve successfully read text as ascii… Thanks.

  74. trgdev
    January 27th, 2016 at 00:28 | #79

    I decided to simulate a pressostat error today by temporarly blocking the fumes exhaust pipe.
    The stove shut down immediatly with an alarm code AL8 while the stove state changed to 8 (same as the no pellet error).
    I think it’s safe to assume that state 8 is an error state and if needed it’s still possible to differentiate among the different error codes by reading the display text.

    For the moment being I have all the info that I need and I finally was able to set up an email alert on my phone to detect any error conditions if no one is home.

    Big thanks to everyone for their input and a special mention to our host k3a for the uart/IR reverse engineering and for this space where we can share our discoveries ;)

  75. Gus
    January 31st, 2016 at 00:56 | #80


    What serial interface are you using ? I am getting the odd error with the simple one transistor interface .


  76. trgdev
    February 5th, 2016 at 13:42 | #81

    I made a quick level translator with a couple of npn transistors that I had available (2n3904, but any npn should work).

    It was something like this : http://imgur.com/VUz3Q3F

    Stove : 5v, GND and DATA
    Microcontroller / PC with USB-TTL uart adapter : TXD, RXD, GND

    R4/R5 were initially chosen to interface to a 2.5V uart, that’s why they form a 1:2 divider. To use it with a 3.3v uart you should probably change R5 to 18k (even though I am currently using this interface with a 3.3v uart and it works fine as it is).

    Note : it does not cancel echos of transmitted bytes, so I don’t think it will work with the official software.

  77. Gus
    February 8th, 2016 at 01:20 | #82

    Thank very much

  78. Mpp
    February 14th, 2016 at 22:33 | #83

    Can anyone translate the infrared codes so I can use them on a Raspberry Pi?
    Or record the signal using lirc or a logitech harmony?

  79. k3a
    February 15th, 2016 at 04:16 | #84

    Something like this may work. Let me know if it works https://paste.k3a.me/view/1c8d6771 I can’t test as I am on vacation. :)

  80. Tok-Ra
    February 22nd, 2016 at 00:15 | #85

    Hello k3a !
    I have test the Lirc code and it not working.
    I want to simulate the the ir controller with my smartphone (using irplus (lirc library)) but i got an error (non-positive ir slice). I want also control my micronova board with an arduino and ir emitter because i think connect the serial is to complicated for me. Thanks.

  81. Mpp
    February 27th, 2016 at 07:41 | #86

    Thanks a million!

    It’s not yet working but I got the ir receiver led on the stove to lit up :-)

    I had to add gap, ptrail and repeat to do so but I don’t know the values.

    See https://github.com/MPParsley/lirc/blob/master/micronova.conf

  82. Mpp
    February 27th, 2016 at 07:59 | #87

    PS: I wanted to buy this one but unfortunately they don’t ship to Belgium.

  83. Mpp
  84. Jocelyne
    March 4th, 2016 at 13:38 | #89

    Could someone help me please? After leaving my stove superior cleo run for too long without having it cleaned out, it started asking for a service: message « service ». The service has been done but I do not know how to clear this service message. As long as it is not cleared, the stove is in a « security mode » and doesn’t burn the pellets properly. I have tried taking the battery out of the card but it still keeps in memory the security mode. Those someone either have the code to « reset alarm » or know how to clear the memory directly on the card ?

  85. b.g veenstra
    March 5th, 2016 at 14:30 | #90

    hello i have a pelletstove davinci 14 kw aqua with a micro nova i050 controlboard i want to swith te palletstove on/off with a room termostate over IR i have a arduino UNO and a IR LED
    ho wants to write a scketch for me i am not so handy with programing the arduino

    sorry for my bad engels

  86. Mpp
    March 11th, 2016 at 12:33 | #91

    Mr Veenstra,

    Do you have a remote, if so which one is it?

  87. Vvuksa
    May 18th, 2016 at 16:25 | #92


    First of all thanks for all great work. I really appreciate it.

    I think that state 8 is ALARM state in internal state machine. Single alarms should be coded in RAM on 0x33 (eight of them, per bit) and 0x34 (lower 3 bits for remaining 3 alarms).

    Good luck,

  88. June 22nd, 2016 at 10:17 | #93

    Still looking for a solution for recording a lirc file.

    Instead of using the Raspberry Pi I’ll be using the Arduino Uno rev 3 with the following setup

  89. August 6th, 2016 at 15:25 | #94

    If Moses won’t go to the mountain…

    I ended up buying an Arduino UNO and the codes are working perfectly!

  90. August 6th, 2016 at 16:46 | #95

    All codes work except for the water temperature up:
    l up 11111111 00011110 01010011 01101010 01101010 11000000
    0xFF 0x1E 0x53 0x6A 0x7A 0xC0

    Could it be that the reading is a bit off?

  91. k3a
    August 6th, 2016 at 16:50 | #96

    Hmm, maybe, I will check that when I return home (in five days). Thanks for letting me know.

  92. August 6th, 2016 at 18:38 | #97

    Thanks! Only took me half a year to get it working, I can wait some more days :-)

    That said, it only took me an hour or so on the Arduino, should have bought one sooner.. If I have some more time I’ll try connecting it through the serial port.

    For reference, the Lirc config can be found here (note that the power up won’t work – yet): https://github.com/MPParsley/lirc/blob/master/micronova.conf

    PS: If the IR commands are the same as the serial commands, wouldn’t it be possible to send an IR command that emulates the “Menu” button on the display?

    Kind regards.

  93. August 6th, 2016 at 18:50 | #98

    Ah, I found it: your conversion from binary to hex is wrong:

    01101010 01101010 would be 0x6A 0x6A, not 0x6A 0x7A

    I’ll update the lirc config

    Couldn’t wait, sorry :-)

  94. k3a
    August 6th, 2016 at 19:40 | #99

    Good spot, you’re right. As for serial comm – it is primarily used for getting and setting memory data, not interacting with the UI. There may be more UI commands like those used by the remote but the only reference we have is the remote. Eventually you can try sending remote-like IR codes with these two data bytes random. But the serial comm will allow you set power level directly for example or read current temperatures and fan speed. Truth is serial comm amd IR uses the same path. So you probably can even send serial commands via IR but you won’t be able to read response via IR. :)

  95. CDromke
    August 23rd, 2016 at 22:41 | #100

    K3 tnx 1k!!

    I’ve a Alfa Plam Commo (micronova l023 / i023)

    I spend many hours to let Seraminet work (read eeprom failures), but it doesn’t while RealTerm works fine!!

    I’ve used a yl-7 TTL – serial MAX (3)232 break out (a few dollars)




    And did the diode modificaties:


    From this original:


    I write a program in Python to:

    – Transfer DEC to BCD
    – sync time from PC to the stove automaticly (summer -> wintertime and vica versa)
    – set values for temperature, water, power, clock, power on/of etc.
    – read values from Eeprom an Ram and show differences

  96. Klaus
    October 20th, 2016 at 21:12 | #101

    Hi all

    Thanks for all Informations here !!! :-)
    my pelletheater is the extraflame melinda steel air .
    since today, i have it for my hobby office.
    my way this serial solution to realsize is(add to my Homeautomation):
    esp8266(mqtt,openhab) – max3232/diode- Melinda

    My house pelletheater is a haas+sohn catania , i’added with esp8266 to openhab(with mqtt) , too.
    There was easy , esp8266 make a gsm emulation in the firmware for the pelletheater and emulate a sms , the pelletheater read it, thats all.

    best regards

    • k3a
      October 20th, 2016 at 22:45 | #102

      I am glad it helped you. :) Enjoy!

  97. Plfos
    October 23rd, 2016 at 17:58 | #103


    I have a new pellet stove, and I can see that it has a Micronova controller, model N100.


    I can’t see any DB9 connector at the back of the stove so, which possibilities I have to control remotelly the stove with an arduino?

    Using the connectors from the controller?
    Simulating that I send IR commands with an IR led on front of the LCD panel where the IR receiver is located?
    And finally, how can I power this arduino?

    Thanks a lot!

    • k3a
      October 29th, 2016 at 19:23 | #104

      You will have to use the connector marked DB9 on the board (next to the DISPLAY). There should be all the required pins. Unfortunately I don’t know the pinout of that connector so you will have to figure it out yourself, but it is not that difficult – first try to find ground (it should be possible to follow traces and see where they ends). Once you have ground, use a multimeter to measure voltage between the ground and each pin. Signal pin will be around 5V but be careful, there is one pin with 20V. And that answers your second question – you can use that 20V for powering your Arduino (that was designed to power external accessories) but of course you will need some voltage regulator. Because Arduino is 5V, 20-5=15V difference is quite a big difference so I would use a buck converter (instead of LDO) like this one https://www.aliexpress.com/item/Mini-3A-Adjustable-DC-DC-Buck-Converter-Step-Down-Module-Better-Than-LM2596/32323220570.html (I use exactly that for my interface btw). If you find out the pinout, please let me know, it may help others.

  98. Klaus
    November 22nd, 2016 at 18:20 | #105
  99. Klaus
    November 22nd, 2016 at 18:22 | #106


    I made self a serial remote tool for extraflame !
    the yellow marked column is for command there has a Return Value.


    anybody needs this ?

  100. k3a
    November 22nd, 2016 at 18:53 | #107

    Looks fine. Maybe you can put it on github.com and someone can get inspiration from it or use it.

  101. Laurent T.
    January 15th, 2017 at 16:21 | #108

    Hi Klaus,
    I’m really interesting to see your work on the Extraflame.
    I own a comfort plus, there is a 4 pins connector that seems to be connected to the serial port on the mother board.
    How can I identify this 4 pins against the DB9 connector ?
    Thanks for your awesome work guys !

  102. CDRomke
    February 7th, 2017 at 11:10 | #109

    In my case (Alfa plam commo 21 (kw) with a micronova L023-3 Hydro) the blower is missing (an option?).

    You can order one by Conrad (570184) and connect it to V2/PO on the Micronova board.



    The setpoint address (in ROM):

    Temperature: 14 (dec) 0E (hex)

    Formule: dec value + 30 = setpoint in Celsius


    Speed 1 t/m 5: 30 t/m 34 (dec) 1E t/m 22 (hex)

    formule: calculate hex value to dec value * 5 = Voltage

    Example: ROM adres 30 (blower setpoint for power 1), value is 23 -> dec 35. 35 x 5 = 175 Volt


    • k3a
      February 7th, 2017 at 11:21 | #110

      Thanks for the great tip! It looks nice. Btw is the cable heat-resistant enough? It looks a bit dark :)

  103. CDRomke
    February 7th, 2017 at 12:42 | #111

    This was the test situation, I ‘ve changed it by a heat resistance silicone wire and I did use copper wire to get it away from the heat exchanger. It works great, no problem for get the room 20 degrees!

  104. CDRomke
    February 8th, 2017 at 23:08 | #112

    Hello Jocelyne #89

    What to do by a “service” Message on Your micronova stove?

    Go to technical settings
    Choice the right key access code for “settings technic” (in my case “a9”)
    Go to “settings general”
    Then “time service”
    Push up de service hours or set it to “OFF”


    Or do it by a serial command:

    ROM address for time service = 48 (DEC) 0x30 (HEX)

    Formule: service hours = value * 10 + 260

    Example for change the servicetime to 1000 hours :


    Write [160, 48, 74, 27] (Dec) or

    [0xA0, 0x30, 0x4B, 0x1B] (Bin)

  105. jcarlos
    February 20th, 2017 at 13:24 | #113

    How can you buy this product

    PR012 WiFiMi

    Thanks, my model is a laminox primula

    • k3a
      February 21st, 2017 at 10:57 | #114

      I asked them about the price and they won’t tell me. :/ They sell to redistributors/partners only. In other words they don’t care about end users. Maybe try asking manufacturer/distributor of your stove.

  106. jcarlos
    February 20th, 2017 at 13:41 | #115

    I have the remote

    he clonado las pulsaciones con un broadlink rm2.
    pero tengo un problema la tecla de encendido , tiene que estar pulsada 4 segundos
    y no lo he conseguido

  107. jcarlos
    February 20th, 2017 at 13:42 | #116

    I have cloned the beats with a rm2 broadlink.
    But I have a problem the power key, it has to be pressed 4 seconds
    And i have not got it
    Thank you

  108. jcarlos
    February 20th, 2017 at 13:44 | #117

    jcarlos :
    I have cloned the beats with a rm2 broadlink.
    But I have a problem the power key, it has to be pressed 4 seconds
    And i have not got it
    Thank you

    Mpp :
    Mr Veenstra,
    Do you have a remote, if so which one is it?

    I have the remote
    I have cloned the beats with a rm2 broadlink.
    But I have a problem the power key, it has to be pressed 4 seconds
    And i have not got it
    Thank you

  109. Kris
    February 21st, 2017 at 19:39 | #118

    http://www.micronovasrl.com/en/realizzazione/po069/ This is a ready solution with an app in the stores. Anyone experience with it yet? Where to buy?

  110. Anton
    March 7th, 2017 at 06:51 | #119

    You must use the script. Write one command to enable through rm2. Then create a script: one command – 0.1 second delay. Only 8 commands and 7 delays.

  111. Drgos Stefan
    March 13th, 2017 at 14:40 | #120


    I myself the same plant ((Alfa Plam commo 21 (kw), a micronova Hydro L023-3)), with which program you connect to it?

  112. CDRomke
    April 10th, 2017 at 09:21 | #121

    On the Alpa Palm Commo the water pressure sensor is missing. Wy? I think, they must by a little bit crazy.

    Device may begin to boil, it can be a bomb by the pressure if there is too little water!

    You buy it on e-bay: Pressure transducer 60 PSI 5 Volt ebay (US $12) (0 – 4 bar)

    See this schedule: https://s27.postimg.org/mjouacvo3/schema.jpg


    The pressure sensor can be switched on or off by technical institutions:


    Next, the threshold can be set:


    You can read it from the RAM address 56 (0x38) (value/10)-1


  113. DragosStefan
    April 11th, 2017 at 12:35 | #122




    I tried to connect to Alpa Palm Commo of Seram and it worked.

    Can you help me WIFI can connect to it over the phone?
    They have another program to view the status of the plant?

    Thank you

  114. CDRomke
    April 13th, 2017 at 08:00 | #123

    Hello @Dragos Stefan,

    I connected the Alpa Palm Micronova on this (serial) way:

    https://s27.postimg.org/nnb7nwgkz/Schema.png (Is that like your way for reading Seram?)

    Connect the stove with an ESP 8266 (Wifi) is the next step.

    I’ve written a program in Python for:

    – read RAM/ROM and show differences
    – program the chrono/clock/language/etc on a simple way
    – sync time and date automaticly
    – gives a state update every hour by sending mail
    – gives a state change like start, lighting, work, (finish-) cleaning, (display and by sending a mail)
    – run a autoprogram mode depending on weather conditions (read from openweathermap.org), room temp etc. and run different programs based on totaly points: set power up/down, chrono on/of, start stove early or late etc. automaticly
    – run different program modes manualy
    – send a mail if state condition is on error (out of pellets, black-out, water pressure to low, etc.)
    – for set or test stove settings (power up/down, setpoint ambient up/down, setpoint watertemp up/down, etc)
    – set blower conditions depending on room temperature (set blower of > 18 degr. ) see #109

    It is tested on Raspberry and Windows.

    Status mail Example:

    Stove Time: 08:59:56 13-04-2017
    Stove time in sync: Yes
    Stove time difference with PC time: 0:00:24
    Stove Status: Off

    Power Level: 0 Power Level Setpoint: 5
    Cleaning time: 25
    Ambient Temp: 17.0 Setpoint Ambient: 20.0
    Water Temp: 42 Setpoint Water Temp: 60

    city: Amsterdam,NL last update time: 13-04-2017 08:25:00

    temp: press(mBar): hum(%): windspd(bfr): wind(deg): clouds(%):
    8 1012 87 4.1 300 75

    points: 11.0 program: 2

    Chrono Day Enable: ON

    Start – End Program 1: 05:30 07:30
    Start – End Program 2: 24:00 24:00

    Chrono Week Enable: OFF

    Chrono Week-End Enable: OFF

    K3a can send my E-mail address or I can publish it on Github.

  115. k3a
    April 13th, 2017 at 22:27 | #124

    Ideally publish on github and give here a link please. It may help others. I would publish my code but it’s not very nice – it’s just an iterface to set and get RAM/EEPROM data with a very simple html page with status and a few buttons…

  116. DragosStefan
    April 17th, 2017 at 16:59 | #125

    Thank menstrual REPLIES
    Yes so I connected myself and communicate with serami, but only command that I know are those on (0x80 0x21 0x01 0xA2) and off (0x80, 0x21, 0x06, 0xA7) do not know to send other commands though I searched ( The temperature of ‘+’ and ‘-‘,. power ‘+’ and ” ” – ” I do not know)
    To see the Alpa Palm Commo can only date, time and minutul.

    For the remaining controls and readings I have not found anything that fits, although seeking more than 7 MONTHS ON THE INTERNET.

      You can help you with other commands please?

    I would be very happy to try this program in Python ADAC you and you agree to share it?

    @k3a :A great idea if you want to share it CDRomke

    thank you @CDRomke ,@k3a

  117. PeteW
    April 27th, 2017 at 13:41 | #126

    @CDRomke @DragosStefan
    I own Alfa Plam Commo 21 too but I’m having trouble removing side panel to physically access the controller. Can you please help me with some images/instructions how to disassemble it without causing some damage.

  118. PeteW
    April 30th, 2017 at 08:39 | #127

    Nevermind I did it myself. The tricky part was to remove the top cover first. Then side panels goes away together with the front.

  119. CDRomke
    May 1st, 2017 at 21:19 | #128

    Hello Dragos,

    Please give me a while for get the Python program ready for use it by others.

    To control the Mironova (l023) display by serial commands, send the folowing values:

    1): [128, 88, 82, 42] 1: -> left up

    2): [128, 88, 88, 48] 2: -> left down

    3): [128, 88, 92, 52] 3: -> set menu

    4): [128, 88, 90, 50] 4: -> power on/off, back in menu

    5): [128, 88, 84, 44], 5: -> right down

    6): [128, 88, 80, 40], 6: -> right up

    I think it is universal for all Micronova L023(3) boards.

  120. CDRomke
    May 19th, 2017 at 08:37 | #129

    I’m not a proff. and my program is nog good enough for publish on Github now. I’ve publish it by my own cloud (python 2.7 code):


    I do think parts of the code are usable for many others…..

    It is a test version, can somebody test it an give som comment?



  121. jcarlos
    May 19th, 2017 at 12:42 | #130

    Thank you, I’ll prove your program.

  122. DragosStefan
    May 19th, 2017 at 21:07 | #131

    Thank you @CDRomke

    To try it, I have to do it:

    1. Write the program python to ESP 8266 (Wi-Fi)

    2. Connect ESP 8266 (Wi-Fi) to the serial with control stove via” https: //s27.postimg.org/nnb7nwgkz/Schema.png”

    3. Connect to ESP 8266 via WI-FI.


  123. CDRomke
    May 19th, 2017 at 22:12 | #132

    Hello Dragos,

    I did not try it with the ESP,. only connect it serial directly:

    PC/Raspberry USB port -> USB to RS232 serial convertor (FTDI) -> yl-7 TTL serial MAX (3)232 break out convertor (with extra diode modification) -> Micranova Board serial conneciion (as explain at #100 and #123).

    I think it is not posible to write it in the ESP direcly. (You do need a microPyton Image or use the ESP as a serial to wifi bridge).

  124. DragosStefan
    May 20th, 2017 at 07:04 | #133


    So to try the program I also need a Raspberry board to load the program into it, right?

    Sorry for questions but I’m a beginner.

    I’m curious how the graphical interface that controls the control stove , can you help me with a picture,plase?

    Orders to the stove as they are given?

    Thack You .

  125. DragosStefan
    May 27th, 2017 at 16:58 | #134

    Hello CDRomke

    Thank you very much!!

    I bought rasberry, it was a whole thing with the use, but I succeeded.

    The program Python runs in the terminal very well.Failed to send email, although configured correctly, have ideas?

    Is it possible to run from ” Python idle”? The idea is to be a simple graphical interface, some commands (on, of, etc), is it difficult to achieve? I’m still looking for how to link a command in ” Hex Data; And a button with an interface

    Thank you CDRomke

  126. peter vergoossen
    September 7th, 2017 at 09:23 | #135

    i have an I023_4 board from micronova with an 4 pin header on it for interfacing to PC,
    it works with SeramiNet.
    who has the schematics to connect this header to my pc

  127. Ruslanas
    September 8th, 2017 at 11:15 | #136

    @peter vergoossen
    I thing you need to follow instructions in comment #100

  128. Klaus
    September 16th, 2017 at 23:04 | #137


    Sorry for my late answere , i have not time in the moment but i create now a gibhub account and add my “testtool” Here is the GIT Url : https://github.com/KlausLi/ExtraflameRemoter

    best regards Klaus

  129. Klaus
    September 16th, 2017 at 23:06 | #138

    its a Microsoft Visual Studio Project

  130. DragosStefan
    September 17th, 2017 at 07:32 | #139

    thank you Klaus

    I’ll try it now

  131. Klaus
    September 17th, 2017 at 19:56 | #140

    Its a debug folder in there Package , you can run the exe file in that folder directly

  132. Alex
    September 21st, 2017 at 13:04 | #141

    I have an insert in pellet equipped with a card(map) controller Micronova PL026 and of one telecommanded as that:
    Exist t he(it) a card(map) modulates allowing to check(control) this insert in ditance via WiFi, GSM (via a card(map) sim).?! As this kind(genre) of card(map):

    • k3a
      September 21st, 2017 at 16:22 | #142

      Their WiFiMi module should work with all Micronova boards but it connects to a serial connector on the stove motherboard. It communicates via Wifi with their service and then you use the service to control the stove from the itnernet.

      Problems are:
      1. Micronova won’t sell those modules to individuals, they sell to resellers/partners only. :/
      2. If you don’t have DB9 connector in your stove, you will have to make the individual pin connections manually (no big deal)

  133. Alextaz
    September 22nd, 2017 at 07:08 | #143

    Thans to reply K3a
    Ok, is there a solution to connect the stove to wifi without their service…without pass their website ?!
    I have jeedom and many zwave modules, so it could be nice to add the stove to the domotic system…
    I have broke the original remote control, so i can’t modify any programs i save in the past, do you think i could do this with a logitech harmony in learning mode ?!? Do you think a zwave or wifi IR module could help ?
    Excuse me for my bad english…

    • k3a
      September 23rd, 2017 at 00:28 | #144

      I don’t know of any ready-made wifi solution without any cloud. It would be possible to make such product but demand is probably not high enough for it to be profitable (CE certification may be required which costs money etc). Sending IR commands is possible (emulating original IR remote) – see the section about IR bytes. But I don’t have any experience with logitech harmony – you can give it a try but no guarantee.

  134. sergio
    October 12th, 2017 at 00:19 | #145

    Congratulations on the project.

    I also have a micronova controller on my stove(I023_5) and I want to connect it to my domotics controller(fibaro home center 2).
    I’m a software developer but I don’t know really that much about electronics. I want to do the same thing you did, using and z-uno board, with is basically an arduino nano with zwave capabilities.
    I read that any common transistor or diode should work and that we should try if it worked. I want to skip the “trial and error” step… can you help me? can you give me the list of materials? the specific diodes and transistor?

    thank you.

  135. Sibianu Dragos
    October 18th, 2017 at 14:31 | #146


    I used it 1N4007 diode
    Tranzistor Bc 170

    Or PC -> USB to RS232 serial convertor (FTDI) -> yl-7 TTL serial MAX (3)232 break out convertor (with extra diode modification)

  136. Math63
    October 22nd, 2017 at 12:57 | #147


    First thanks’ to all for this blog and comments.
    I’m also trying to control my extraflame pellet stove (with a micronova board).

    Actually, you can communicate with your stove without more hardware than your arduino board.
    As micronova board is base on atmega (atmega32A for me) I though that I would be able to communicate with it with an other atmega. I was write, using AV274 notes and code.

    You can find my modified code (and dirty coding) for use on atmega328p 3.3V 8Mhz , pin PD3 , TIMER2 and compatible with MySensors libs in my github : https://github.com/math63/Extraflame-Pellet-Stove-Automation

  137. Sibianu Dragos
    October 22nd, 2017 at 18:05 | #148


    is there something based on arduino code that can control the stove from the web page on the phone?

    thank you

  138. sergio
    October 29th, 2017 at 22:02 | #149


    thank you.
    I was able to communicate with the stove using seraminet, using 1N4148 diode and 2N3404 transistor and with a CH340G usb to ttl using at 5v. I also tried at 3v, and it worked.
    My Z-Uno is not 5v tolerant and i do not want to burn 50 eur. should i use logic level converter?
    like this one:


    • k3a
      November 2nd, 2017 at 22:26 | #150

      Hi. Look at my schematic http://k3a.me/wp-content/uploads/2015/10/ScreenShot-2015-12-17-at-16.59.50.png
      I am using it with 3.3v MCU which is also not 5V tolerant.
      The line going to RXD from the transistor is fine because it sucks the current from the MCU only when DATA goes to 0V (to bring RXD to 0V).
      The other line going to TXD is protected by a zener diode (3.3V zener or similar voltage). The zener connected this way works like a voltage protection – when the voltage is higher than the threshold, the diode acts like a resistor, some current will go through it, reducing the voltage until it matches the threshold.

  139. Gio
    November 12th, 2017 at 09:38 | #151

    Hi dear,

    I’m really interested to interface a esp8266 running blynk to control my stove.

    Can you point me into the right directions to do this?

    Please reply.

  140. David
    December 4th, 2017 at 19:41 | #152

    Hi to all,
    I have recently acquired a Laminox Elite 15kW pellet hidro-stove.
    As many of you, I would like to obtain information from my stove, which is driven by a micronova controller.
    I have successfully connected Seraminet to the stove by using a USB-TTL converter, but I have to build a new map for the values (the addresses do not match the values I have seen to the moment).
    Would it be possible for someone to reupload the C# program build by @JLC ? @Vladimir ?
    Thank you very much for your help.

  141. Engjell
    December 12th, 2017 at 19:32 | #153

    I have started to go through of my micronova stove and I saw that there is an application of micronova http://micronova-seraminet.software.informer.com that allows you to communicate with the controller of the stove and your computer using a device and I wanted to ask, if there is any place where I could find all the bytes that are send to controller as commands or any tool that I can read these bytes from micronova controller. Thanks!

    • k3a
      December 12th, 2017 at 22:58 | #154

      You can use SeramiNET with the USB-TTL converter described here to do variable reads and writes. The problem is, that software is not that much helpful by itself because each stove stores variables in slightly different addresses and Micronova doesn’t provide description files. Therefore we have to guess which address stores which variable (its meaning or purpose).

  142. torpe
    December 24th, 2017 at 13:54 | #155

    If you only want to turn on and off. I think there is a simple solution, emulate the remote control by broadlink rm.
    The problem is that the ir transmission must be greater than 4 sec.
    the remote to add must be defined by the user
    The transmission time is set in the pairing and is not recorded until the button is released, so you must press (ir remote control button) at least 5 sec. You can check it by a camera.
    This solution works with tieemme board that uses rf and encoder ht12e

  143. Jo
    January 6th, 2018 at 15:20 | #156

    Hi all,

    I am trying to control the next type of stove:
    Extraflame Ecologica Hidro
    Using Arduino RX/TX pins

    Sadly I can’t seem to figure out how to talk to the stove. I am using the “2 to 1 wire” technique discussed earlier.

    Is there anyone who can give me some example code for Arduino?

    This is what I have:


    byte message[] = {0x80,0x20,0xe,0xb4};
    mySerial.write(message, sizeof(message));

  144. Jo
    January 6th, 2018 at 15:23 | #157

    PS: I’m from Belgium….if anyone’s near with the same problem I’m open to try and help eachother :)

  145. Jo
    January 13th, 2018 at 21:51 | #158

    Hi all,

    I was able to connect using SeramiNet and also to update values on the stove…. HOWEVER: when I change a value (sending hex over TTL) the value in the stove itself is changed correctly but the display on the stove still displays the old value. Is there any way to update the display aswel?

  146. Crocuto
    January 15th, 2018 at 09:03 | #159

    question regarding PR012 WiFiMi: as it’s based on ESP8266 – is their a possibility for reprogramming it, so it can use in a homenetwork only and without any cloud service?

    • k3a
      January 16th, 2018 at 18:37 | #160

      Hi. Every ESP8266 can be reprogrammed, there is no write protection or firmware signature verification. But you would have to write the firmware from scratch and there aren’t too many electronic components around that chip so it doesn’t make much sense to use their board unless you plan to use their cloud service.

  147. Crocuto
    January 18th, 2018 at 11:31 | #161

    hmm, but only plug’n play would be great….not to care about the hardware stuff, just reprogramming….

  148. Jo
    January 22nd, 2018 at 12:22 | #162

    Hi all,
    Thanks to this webpage I was able to make my pelletsove “Smart”! :D I am happy to share my findings with all of you. My Pelletstove is a Extraflame Ecologica Idro, it has the DB9 connector at the back. I started out first with creating something to connect the stove to a laptop over USB: the 2-to-1-wire. This way I was able to connect using SERAMINET and SERIAL PORT MONITOR which both gave me a good view of what was going on when changing settings etc.

    *1 I noticed I had to change values in EPPROM and RAM sometimes (1 for display, 1 for the actual setting in the stove?)
    I started creating a new PCB which included all the components I need to wireless control my stove:
    -ESP8266 breakout board by Adafruit (Adafruit Huzzah)
    -STEP DOWN DC-DC regelbare
    -components for the “2-to-1-wire” technique described above
    -a DB9 connector (male)
    -some LEDS (I figured I had plenty of unused I/O ports on the board, so I might aswel use some leds for some kind of notifications)
    I quickly created an Arduino sketch togething with Blynk and was able to control settings on the stove in a matter of minutes.

    Thanks for all the information on this page guys! It was very helpful!

    • k3a
      January 22nd, 2018 at 13:59 | #163

      Nice work! :) I am glad the article helped you to make your stove smarter.

  149. Sibianu Dragos
    January 22nd, 2018 at 12:38 | #164

    Hello Jo,

    Can you share the Arduino sketch?

    I would also need all the components used: how many of you saw a voltage regulator (for ESP) and ESP. Can you please detach the components?

    The DB9 connector connects to the power plant, right?

    Thank you very much

  150. Jo
    January 22nd, 2018 at 13:54 | #165

    @Sibianu Dragos
    The code is “quick and dirty” but should give you a good idea on how to proceed:


  151. Sibianu Dragos
    January 22nd, 2018 at 14:53 | #166

    Thank you Jo,

    I can not wait to get home to try it.

    What idea?

    What electronic components did you use,diode, resistor and transistor?

    Thank you

  152. Jo
    January 23rd, 2018 at 06:55 | #167

    Transistor: NPN BC548C
    Diode: 1N4148
    Resistor: 10k

  153. DragosStefan
    January 23rd, 2018 at 20:14 | #168

    Hi Jo,

    Not working,I loaded the program into a mcu node.

    In App Blynk,
    I created buttons where I assigned virtual pins :V1,V2,V3,V4,V30 and V31 and still does not work.
    you know why?

    Thank you

  154. Aleksandar
    January 23rd, 2018 at 21:30 | #169

    What about this board (Termomont toby 12b)?
    Any experience?

  155. Aleksandar
    January 30th, 2018 at 19:37 | #170
  156. Jo
    January 31st, 2018 at 12:29 | #171

    DragosStefan :
    Hi Jo,
    Not working,I loaded the program into a mcu node.
    In App Blynk,
    I created buttons where I assigned virtual pins :V1,V2,V3,V4,V30 and V31 and still does not work.
    you know why?
    Thank you

    I can’t test this code at the moment. try to remove the following lines:
    Serial.print(“Gelezen: “);

    Let me know

  157. Jo
    January 31st, 2018 at 12:32 | #172

    A word of warning would be advicable here: accidentaly the 5v pin of the DB9 connector touched the case (which is also ground)…this resulted in a broken component. At the end my complete motherboard needed a replacement (225euro).

    I’m continue my work AFTER the winter :p :p

  158. Ales
    February 9th, 2018 at 14:28 | #173

    I’m really interesting to control my stove (boarded with micronova controller) with IR commands since I’m implementing an ESP8266-based controller. BUT I can’t get working IR commands you wrote since I can’t compile for esp8266 platform. Could you kindly use IRlibrary for ESP? (sorry but i’m not an expert on arduino framework). In return I can get available my project…
    Thank you very much

    • k3a
      February 10th, 2018 at 22:58 | #174

      You can use Arduino with ESP8266 board support to compile “arduino-like” code to native ESP8266 firmware. There are several IR library ports, see Google https://encrypted.google.com/search?q=esp8266+ir+library . Unfortunately I don’t have capacity at the moment to help you concretely, sorry. :(

  159. Jo
    February 20th, 2018 at 13:43 | #175

    This is a snipped out of my code and should help you (I’m using Blynk atm to control everything)

    int irPin = 15;
    IRsend irsend(irPin); // An IR LED is controlled by GPIO pin 4 (D2)

    uint16_t rawCodePowerDown[21] = {6750, 2600, 3350, 1700, 850, 850, 850, 1750, 2500, 850, 850, 850, 850, 850, 850, 1700, 2500, 1750, 850, 850, 1650};
    uint16_t rawCodePowerUp[19] = {6750, 2600, 3350, 1700, 850, 850, 850, 1750, 4200, 850, 850, 850, 850, 1700, 3350, 900, 800, 900, 1650};
    uint16_t rawCodeTempUp[23] = {6700, 2600, 3300, 1800, 750, 950, 750, 1800, 1600, 950, 1600, 950, 750, 950, 750, 1800, 1600, 950, 750, 950, 750, 950, 1600};
    uint16_t rawCodeTempDown[17] = {6700, 2650, 3300, 1800, 750, 950, 750, 1800, 3300, 1750, 800, 900, 800, 1750, 4200, 1750, 1650};
    uint16_t rawCodePowerToggle[21] = {6644, 2461, 3339, 1623, 839, 813, 869, 1605, 1706, 784, 867, 1626, 843, 814, 843, 1651, 1654, 814, 1682, 1623, 1685};


    irsend.sendRaw(rawCodePowerToggle, 21, 38);

  160. Ales
    February 21st, 2018 at 17:56 | #176

    Thank you very much, I’ll try soon !

  161. Ales
    February 25th, 2018 at 10:55 | #177

    Hi Jo,
    unfortunately powertoggle isn’t working on the contrary of other commands… What a pity !
    Thank you so much in any case

  162. remi
    March 24th, 2018 at 09:46 | #178

    hello Jo
    I’m french guy but in english for the others

    Can you give me your arduino code ? the link is dead…

    thank you

  163. Jo
    March 29th, 2018 at 07:31 | #179

    Hi Remi,

    I havn’t tested this for a while but it should give you a good idea on how to proceed. (be carefull though, all on your own risk ;) )

  164. Jakob
    October 2nd, 2018 at 15:36 | #180

    Hi there, i would like to control my stove remotely, but i’m not very good at programming (not good at all, i’m a beginner). I have a”superior cleo”: does have someone (like JLC) a program that fit or something that i can work on? It will be very appreciated.

    Anyway thanks to everyone who contribute to this blog.

  165. Martin
    November 1st, 2018 at 22:33 | #181

    I would be interested in purchasing an ESP8266 board with MQTT functionality for the Laminox N100 board – anyone willing to sell me their tinker board?

  166. Leroy
    December 5th, 2018 at 12:00 | #182

    Hi there, could someone post some sample C# code for reading and writing values to the stove? My stove is connected via USB-TTL adapter and i can control it using the Serami.NET software. I used the same settings for creating a System.IO.Ports.SerialPort (Baurate = 1200, Databits = 8, Stopbits = 2) than in Serami.NET, but my stove does not respond to a SerialPort.Write nor to SerialPort.Read(…).

  167. Miguel Ingles
    December 6th, 2018 at 21:57 | #183

    Any new about your code. I am testing it.

  168. Gagi
    December 30th, 2018 at 23:54 | #184

    I have MBS stove with Micronova controller, how to learn power on/off (long press) ir code to Broadlink RM? I try Antons solutions:
    “You must use the script. Write one command to enable through rm2. Then create a script: one command – 0.1 second delay. Only 8 commands and 7 delays.”
    but dont work for me!
    Any solutions?

  169. Aleksandar
    January 12th, 2019 at 16:07 | #185

    Aleksandar :
    What about this board (Termomont toby 12b)?
    Any experience?

    Aleksandar :
    More images:

    Left usb is for board-to-display and right for service connection.
    Someone willing to help reading serial output with usb cable, ftdi and win 10?

  170. Mike Brett
    April 2nd, 2019 at 23:46 | #186

    I have a Piazetta P963. I have purchased a bootloader so I can do some extra programming. The bootloader only came with a ttl to ttl cable and my stove like most has a db9 serial port. I bought a usb cable to connect it to my computer and have the bootloader software installed and recognized. I cant find a ttl to db9 cable, could I use the bootloader via the usb side with a usb db9 cable or would I have to make a ttl db9? I know this is abit off topic but any help would be appreciated

  171. roberto
    October 26th, 2019 at 19:55 | #187

    bootloader can be used only for programing board directly wit interface.To do this you must have special ENC files ,up to 8 diferent configurations can be stored in bootloader interface with deepswitch you select which you will program

  172. alessandro
    November 13th, 2019 at 20:38 | #188

    Good morning guys , i have the necessity of datalogger the stove variables, so i buyed the serial control from micronova. i thinked that the software ( seraminet) was inside the package, but i wrong….so i downloaded the sw….naturally , the serial control works, infat the program recognized the usb and the port , but when i try to load the variables inside seraminet , the software asks me a password….anyone could help me. the control was very expensive , so i don’t want lose all the money….thanks a lot

  173. Dario
    November 15th, 2019 at 13:16 | #189

    Hi guys, I got pellet stove with Micronova I023_6 mainboard, so the problem is this, something happened with the board and burned few smd resistors, does anyone have schematics or something like that so I can fix this, or can anyone send high quality pictures of smd resistors of whole board ? Thx…

  174. Roberto
    November 16th, 2019 at 22:01 | #190
  175. Roberto
    November 22nd, 2019 at 21:11 | #191

    Hello did you make newer ver of your program?
    I,m trying on few boards but only few options work

  176. Neale
    November 25th, 2019 at 11:29 | #192


    I would like to print some circuit boards to make some tests to control my MicroNova equipped pellet stove.

    Can anyone share complete details a PCB design that I can get printed, list of components used please.
    My intention is to send serial commands over MQTT using HomeAssistant, and receive data from the stove reading serial values, and publishing them via MQTT.
    I would like to get some PCBs printed quickly and order the electronic components to surface mount.
    If anyone can share that would be appreciated. I will share details of my whole project once I have finished.

  177. Neale
    November 25th, 2019 at 14:11 | #193

    For further information: My ultimate goal is to send serial commands via MQTT to integrate this with my Home Automation system. If anyone has any ideas as to how to set up a configurable MQTT to Serial Bridge on ESP8266 to allow this integration?

  178. AcE Krystal
    November 26th, 2019 at 16:06 | #194

    Just to throw it in here, I found this technical document what seems to have micronova parameters described : https://www.arcestufe.com/download/cat/manuali_tecnici/MAN_I023_GEN_02_ITA_10.pdf

    I’m trying to see if I can control our EdilKamin Aris Up Plus what seems to use a HOTTOH (ASTREL) controller (most likely the HOTTOH – HB06 HYDRA EK, with example part nr. PFHPCP92004 R. 1.011, not 100% sure). Might be HB07 these day’s : https://www.astrelgroup.com/en/products/hb07-electronic-controller-for-stoves-and-burners/

    It seems they also have a TTL serial communication port (WiFire, H-Test, system testing). If someone might know/find more info please share ;)

  179. ck32
    November 28th, 2019 at 14:11 | #195

    You will find all you are looking in this thread ! The Edge ressources (PCB) provided by K3A are not enough ?

  180. Sardo
    January 7th, 2020 at 19:11 | #196

    Hi guys, I purchased used a hydro pellet stove with the Micronova I023_6 motherboard, so the problem is this, the board does not work the display is flashing light green; I tried to power it with 12volt battery: the display lights up but atmel rises a lot of temperature and on the ic 7805 there are 12volt on the first foot and 3 5volt while if I remove the battery on the first foot we have 3volt and on the third 5 volt it means that there is an excessive absorption of some component if you have the electrical diagram is appreciated the help.
    thanks and sorry for the translation.

  181. StuffaHollanda
    January 26th, 2020 at 08:51 | #197

    Anybody has the technical manual for a Italiana Camini Layma Idro 22 I would like to program via RS232 port. Also maybe program an app if all works out.

    Qualcuno ha il manuale tecnico per una Italiana Camini Layma Idro 22 che vorrei programmare tramite la porta RS232. Forse anche programmare un’app se tutto funziona

  182. tthomas
    March 16th, 2020 at 00:15 | #198

    Hello I shortcut the serial pins on my extraflame divina plus, and now , I have no display, all motor are runing, (fum, pllet, …)
    need help?

  183. Sergej
    March 26th, 2020 at 09:00 | #199

    Hi, everyone!

    Thank you for useful resources available on your website!

    I have created android app for micronova pellet stove in order to control it with phone IR blaster. Please check it out and let me know if the app works with your pellet stove as well. Will be great-full for any feedback.


    Tested on Bronpi HYDROALASKA-21 with Galaxy S6, Galaxy Tab S 8.4 and Mi9

  184. April 28th, 2020 at 00:01 | #200

    Helo I made a sketch to control my pellet stove( divina plus extraflame).
    I use an esp8266.
    Power fan, the adresse in the ram is 0X37 (D5 for speed 5, D4 for speed 4…)
    the temperature needed, in ram is 0x36 (you must divede par 2 to have the real value)
    The value give by JLC on post #70 are working exept for P+ and P-
    I need now tho find the adress to know if the stove is in default mode, and how to switch on or off the second fan on my stove.

    if somebody is interesting for the skectch send me a mail

  185. Pilfos
    September 6th, 2020 at 16:42 | #201

    Hi @k3a,

    I’m trying to connect my pellet stove with a ESP8266. It has a Micronova N100 controller:



    I’ve checked the pinouts of the SERIAL connector, just over the button cell, and from left to right

    * GND
    * 14.5V
    * ?
    * 5V

    So, in order to connect it to a ESP8266 should I use the 14.5V to power it? And the 5V will be the TX/RX pin as decribed in the blog?

    I’ll try to do what @Jo did in the post #162


    • k3a
      September 6th, 2020 at 16:59 | #202

      Yes, that looks right. Just convert these 14.5V to 3.3V using a switching regulator like in that post #162. And my PNP transistor and diode or Ralph’s NPN transistor with a resistor and diode to implement the half-duplex. In any case, make sure to put a 3.3V zener diode at TXD side of ESP8266 (pin where the diode is connected to the ESP). That is important to prevent 5V reaching ESP internals as ESP is 3.3V device, not 5V tolerant. Excess voltage will be reduced by conduction through the zener. The polarity of a zener for that purpose can be seen here (in the image it works as a regulator from 12V to 5V, resistor there reduces the amount of current going through – in your case you don’t need that resistor or put ~250 ohm (5V/0.02A) and it is enough to have just a small 3.3V zener; 1W as in the image would be unnecessary big there is very little current, lot less then 20mA).

  186. Pilfos
    September 6th, 2020 at 21:36 | #203

    Thanks k3a,

    The zener diode can be another 1N4148 ?


  187. k3a
    September 7th, 2020 at 13:48 | #204

    No, 1N4148 is just a common diode. According to the datasheet it has forward voltage of 1V which is a bit high even for the half-duplex part. I suggest using a diode with forward voltage <= 0.8V for half duplex part. Zener diodes are special category of diodes. For voltage regualtion, you need one with zener voltage lower or equal 3.3V and higher than 2.5V. You can get 3.3V zener diode easily https://eu.mouser.com/ProductDetail/Microchip-Microsemi/1N5988B?qs=TXMzd3F6Eyn1iU5TwaDjLA%3D%3D it is 1N5988B but no problem to use 3V zener or 2.5V zener but it needs to be a zener and connected correctly. Zener diodes are commonly connected in reverse to how normal diodes are (as in the image I sent). They won't conduct in reverse unless the voltage is higher than the specified zener voltage, then it starts conducting, allowing up to the "zener current" of current to go through and lowering, "regulating" the voltage across it to the zener voltage. For 1N5988B, the current can be up to 152 mA (far more than needed here). In contrast, ordinary diode is used to direct the current flow. It is often connected in "forward" way. Current (in ordinary sense from + to -) flows from anode to cathode as long as voltage across the diode is > about 0.7 V. You could connect ordinary diode in reverse (like zener) and it would eventually behave similarly but the breakdown (reverse) voltage where it would start conducting is normally much higher than zener’s and current around breakdown voltage starts increasing more smoothly with voltage. Your diode 1N4148 has reverse voltage 75V which won’t help you to regulate to 3.3V. So such ordinary diode is used to direct current under voltages lower than 75V. If forward voltage > 1V (forward voltage), it would conduct that way. In reverse, it wouldn’t conduct unless the reverse voltage would be >= 75V (well it always conducts a tiny little bit in reverse way too but that is insignificant for this explanation and many uses). Zeners are specially designed to work in this reverse flow and their current around zener voltage steeply increases as it starts conducting so they are used for voltage regulation or voltage protection (for relatively lower currents like here because if it conducts and “regulates”, it temporarily acts like a resistor and excess voltage is converted to heat).

    You can see comparisons of common PN diode (left) and zener diode (right) here (X axis is voltage, positive for forward connection, negative for reverse and Y is the current flowing through the diode): https://www.globalspec.com/RefArticleImages/EC37F9299171572362E77C38033C0B25_16.jpg actual forward voltage, reverse voltage and zener voltages are specified in datasheets for every component part.

    Hope it helped.

  188. k3a
    September 7th, 2020 at 14:18 | #205

    For connection, you can use my schematics as a reference https://k3a.me/wp-content/uploads/2015/10/ScreenShot-2015-12-17-at-16.59.50.png it uses Ralph’s NPN + resistor + diode and zener. It is the actual schematic I used for my interface to ESP8266. I used surface-mount parts but you can use though-hole just fine.

    The exact component values are not strictly limited:
    – you can use almost any common NPN transistor as long as it withstands 5V (almost anyone would)
    – you can use any common (rectifier) diode but better try one with <= 0.8V forward voltage to be under Vil. 0.7V is quite common forward voltage among diodes. It may work with 1V FV diode but that would be outside of official 3.3vlogic level of LOW so it may not be 100% stable.
    – you can use zener with zener voltages between 2.5V and 3.3V (as you want to regulate to 3.3V max and 2.5V is a bit more than starting voltage for HIGH logic level of 3.3v logic)
    – resistor is used to just limit base current to the transistor, effectively also limiting the Collector-Emitter current but there are very small currents flowing so almost any resistor should do; even without resistor it would probably work but I suggest 1-10 kOhm, it is a common practice to limit base current via a resistor “just in case” if voltage spikes/ripples occur to protect the transistor. I used 10k myself.

    That’s all there is to it. Just be careful about polarity of diodes and transistor pins.

  189. Pilfos
    September 7th, 2020 at 21:41 | #206

    Thanks a lot k3a!

    I’ll try to get a zener before implementing it.

    In the other hand I see something strange in the @Jo’s circuit implementation. In the PCB design ( https://imgbb.com/2dRmNwF ) the RX pin is connected to the transistor, but in the real PCB ( https://ibb.co/SV5FY15 ) the TX pin is connected to the transistor. In your schematics, you have the RX connected to the transistor.


    • k3a
      September 10th, 2020 at 17:35 | #207

      It looks the same at the first sight. The real PCB is probably just a mirrored image of the PCB design. It is common practice, depending on how PCB is manufactured. One of the ways is to mirror it, place the toner side to the PCB and use heat to transfer the toner to the PCB. But if using UV light and photosensitive PCB, a mirrored image is used as well and printed on a translucent foil so that the printed part is also placed on the PCB side, as close as possible to the PCB surface, to avoid UV light leaking around the printed traces making, them blurry.

  190. Pilfos
    September 10th, 2020 at 12:13 | #208

    Hi k3a,

    I realized that the 5V for the TX/RX pin in the SERIAL connector are negative. Could be this a problem? Or can it be used safely for the TX/RX?


    • k3a
      September 10th, 2020 at 17:38 | #209

      It must be positive relatively to GND for the circuit to work. Are you sure you don’t have GND and DATA pins reversed? GND pin is often connected to the wide area of PCB, connecting many components together simultaneously as they share the common ground.

  191. Pilfos
    September 11th, 2020 at 22:44 | #210


  192. Pilfos
    September 14th, 2020 at 20:39 | #211

    Sorry to publish the “Test” but I don’t know why I couldn’t send details on how finally connected the serial and comminicate with the stove.

    Now, I’m checking the commands to “write” to the stove, but for example, to set the temp, should I use the 0x01 register in RAM or the 0x7D in the EPROM? How do you know that 0x7D is used for setting the temp? And what about the “power level”, do you know the register?

  193. k3a
    September 15th, 2020 at 22:22 | #212

    The mentioned addresses came from various sources and are only the ones I used and which worked for me. Some of them may be the same on multiple boards. You may need to experiment yourself or google search more. You can read all addresses safely and try to guess what that address holds. RAM contains “status” variables (about the current state) whereas EEPROM holds non-volatile data which are supposed to persist and remain the same after turning off and on the stove. Temperature is set there. But keep in mind that EEPROMs have limited number of writes (about 1 000 000 rewrites).

  194. Pilfos
    September 20th, 2020 at 23:39 | #213

    Hi @k3a

    I can’t communicate with the stove using the ESP8266. I tried an ESP01 and a Lolin V3, and I’m using the same “ralph 2to1 half-duplex” circuit that works fine for me with Seraminet or Realterm.

    I’m using 1200+SERIAL_8N2, trying a simple Serial.write({0x00, 0x01},2) but neither Serial.read nor Serial.readbytes are returning anything.

    I swapped the TX/RX but the same, nothing is read.

    What else can I test or how to debug?

    I was able to write a full code to publish fake temps, status, to Home Assistant through MQTT and I feel that I’m close to achieve it…


  195. Pilfos
    September 23rd, 2020 at 10:37 | #214

    Hi @k3a,

    Finally I was able to communicate with the stove from the ESP8266!

    The problem was not to think about that “Serial.write” and “Serial.print” were using the same UART… I had lots of Serial.print, Serial.println that were interfering with the Serial.write. Also, sometimes the connections in the breadboard were also “joking” me… :)

    After “refining” the code, changing those Serial.print to be macros that are defined only if a “DEBUG” has been defined previously, everything was smooth. Now I can “play” with the stove from Home Assistant!

    Once I can have a final circuit with everything soldered, I hope to upload the code to github or similar.

    Thanks a lot @k3a for your help and other people in this blog post!

  196. Carlo
    October 17th, 2020 at 10:26 | #215


    Please can you share the project. thank you.

  197. Cristian
    December 6th, 2020 at 11:27 | #216

    Hi guys,
    thanks for all shared! Great forum, great minds. Very helpfully. I’m trying to do an interface to my I050_3 with esp8266 like @Pilfos but I should like to use esp-link project. I tested it with simple pl2303 and I’m be able to r/w data “socket to serial”. Unfortunately, with “ralph 2to1 half-duplex” I burned out my esp RX pin :(
    On post #27 I readed that data signal is pulled up by a 35k resistor: so if I move 3v3 zener from TX-GND to DATA-GND can I protect both TX and RX? Or I’ll burn my stove board? O_O

  198. Gerald
    December 24th, 2020 at 11:08 | #217

    Hi there,

    I have read the page but somehow I lack the necessary expertise.
    I hope you can help me a little so that I can understand it better and possibly apply it.

    I have a pellet stove that has a Micronova control model 0047, the goal is that I switch the stove on and off with a command from my home control (home assistant), it would be ideal if the actual status could be tapped.

    – What should the hardware look like?
    – How can I call up the external control (software-based, http-get / post, mqtt or?)

    best regards


  199. Gerald Musch
    December 25th, 2020 at 09:25 | #218


    Good Morning,
    First of all, I wish everyone a Merry Christmas!

    What you are describing would be exactly what I am looking for in the final stage!
    Until when do you give the information price where you can use further information and the project itself?
    I would be happy if it would work out soon.


  200. Sorlok
    February 4th, 2021 at 09:34 | #219


    Need a bit of help please.

    I have a Ecotech Amalfi pellet burner, I have made the serial IF and it reacts to {0x80, 0x21, 0x01, 0xA2} but as others have noted before, it bypasses cleaning and correct startup.
    I have also tried sending multible {0x80, 0x58, 0x5A, 0x32} with or without 100ms delay, and with this one there is no reaction at all. Any suggestions would be great, thanks, Soeren

  201. Pieter
    February 16th, 2021 at 22:11 | #220

    Do you maybe know where the DB9 connector goes on the mainboard of the stove? I got the same board (L023) but i do not have a db9 connector connected to it. I suppose it should be CN13 or CN17, right? Pictures above are unfortunately not working anymore.

  202. k3a
    February 23rd, 2021 at 22:23 | #221

    It’s hard to say. DIfferent boards can have different connector numbering. You can see how Micronova boards look like in google images (https://www.google.cz/search?q=micronova+stufe+scheda&tbm=isch). There is “seriale” marked on some diagrams https://larel.com/b2b/728-thickbox_default/14710010.jpg. If you see a 4 pin connector it may be it. You can use a multimeter to measure voltages on these pins relative to a GND on the board. Data pin should be ~5V, then there will be GND itself and power 12V. Of course the best way is to measure via an oscilloscope.

  203. Horacio
    March 14th, 2021 at 14:15 | #222


    Unfortunately, some time passed since the messages were published and now most of the links are dead.

    It would be great if there was a complete tutorial explaining how to reverse engineer and exploit the system. That way, there would be no doubts whether this or that is wrong, or at least there would be an easy way to debug.

    I read the whole thread and plan to make my stove smart with an ESP8266 which connects to my Home Assistant smart home.

    I have also read this page: https://ridiculouslab.altervista.org/en/micronova-protocol-converter/?doing_wp_cron=1615730370.3716309070587158203125

    There they suggested using RS485 to communicate with the board. An easy way into this would be to buy the finished component from the Chinese: https://de.aliexpress.com/item/32777508190.html

    I am looking for people to help make this into a very simple and user friendly project. Please do feel free to send my email to other participants in this thread if that would help us gather around the common goal.

    Best regards

  204. Robert
    March 21st, 2021 at 15:03 | #223


    thanks for this great blog and all comments. I started to write a custom component for EspHome (https://esphome.io) so everyone can easy add the oven into Home Assistant.
    The component is at the very beginning and at the moment it is only possible to read data from the two memories. I plan to add the write command hopefully next week.
    The code can be found under https://github.com/edenhaus/esphome-extraflame.
    Please feel free to give me feedback or maybe also submit a PR

    Does someone know, where the (power/pellets) level is stored?

  205. Antonio
    April 10th, 2021 at 13:39 | #224

    932 / 5000
    Risultati della traduzione
    Hi everyone, I have a Ravelli hydro 120 stove, with d9 sub connector and a wemos d1 or a nodemcu 8266 that I would like to interface to turn the stove on and off and to adjust the min / max power to the maximum, currently I use the wemos and an ir diode but many times it does not work, I have to visually check if it turns on, I have read the whole blog and I have seen that you can have the feedback by connecting on the d9 with the circuit of http://nerdralph.blogspot.ca/2014/01/avr- half-duplex-software-uart.html.
    I am an electronic by profession but I have difficulty in programming, on arduino I have recently started as a hobby, I have found some little program that works with telegram but I have problems with the connection or connects and sends a message to the wifi to the telegram bot and disconnects returning to the captive portal, where I have to reconfigure ssid and pwd
    can someone give me a tip or pass me a simple program for esp8266 thanks

  206. Pedro
    May 24th, 2021 at 16:53 | #225


    Hello. I also want to put it in my HA. How do you have ESP connected to the micronova board?

  207. Philibert
    July 25th, 2021 at 15:18 | #226

    When I write:
    0x00 0x5A
    I receive:
    0x5A 0x00
    while the fumes temperature sensor reports 25°C. Is this because my stove is turned off? I have not tried turning it on because it is summer.

  208. Tof
    September 28th, 2021 at 21:38 | #227


    Very intersted in your esphome project
    I can help you if you want!

  209. Pieter
    November 19th, 2021 at 10:48 | #228

    I managed to get the readings working. Im looking for a list of known addresses according to anyones knowledge. I will try to check if i can sniff data from seraminet as well but not completely sure if i will find what i need this way. A good start would be helpfull there.

  210. k3a
    November 19th, 2021 at 10:58 | #229

    If you have the console (LCD) connected, you can monitor parameters and watch numbers on the LCD to find out which parameter is which. Unfortunatelly Micronova is not providing the list of parameters and there are some differences between boards.

  211. finchh46
    February 28th, 2022 at 16:27 | #230

    Hello everyone, I have alfa plam commo 21. I am getting the message ” Keys Frozen” on the display and I am not being able to even start the stove. I tried using the the controller but no luck. Has anyone here experienced the same problem ?

  212. ziolelle
    June 22nd, 2022 at 14:00 | #231

    Hi, I want to thank you for your work, really great!!!
    I’,m using a ESP8266 with ESPHome to control and send the code to the stove.
    All the codes you found work correctly (I rearranged the sequences in order to get the correct sequences with ESPHome).
    Power Up, Power down, Temp Up, Temp down work correctly.
    the Power (start the stove) do not work.
    Do you think a Micronova board inside a Palladio Olanda could have a differente Remote control to be used (only for the Power command ?!?!?!) ?

  213. ziolelle
    June 22nd, 2022 at 14:51 | #232

    Sorry, just found the solution also for the switch on.
    Just repeat sending the codes for at least 2 seconds

  1. No trackbacks yet.

deadly laser