Controlling Micronova pellet stove motherboard – Stufe a pellet Aria Idro IR telecomando seriale
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
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:
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.
Read
two bytes (TYPE+ADDR_MSB) ADDR_LSB
– 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
– CHECKSUM is (TYPE+ADDR_MSB+ADDR_LSB+VALUE) & 0xFF
– 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.
Write
four bytes (0x80+TYPE+ADDR_MSB) ADDR_LSB VALUE CHECKSUM
– 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)
– CHECKSUM is ((0x80+TYPE+ADDR_MSB)+ADDR_LSB+VALUE) & 0xFF
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 == 0x08 FAN SMOKE IN POWER 5 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.
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. :)
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.
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.
@Mads
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.
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!
Hello,
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.
http://www.kepo.rs/wp-content/uploads/2015/06/Kepo-MC-15-2.jpg
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)
Regards
Gus
@Gus
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.
http://nerdralph.blogspot.ca/2014/01/avr-half-duplex-software-uart.html
Good explanation for the 2 wire to 1 wire TTL no echo
Built the interface and I was able to do a Eprom backup using Seraminet and USB to 5v TTL
serial adapter
Later
@Gus
Nice! :) And thanks for the link, I like his 2wire->1wire circuit.
http://www.dx.com/p/esp-01-esp8266-serial-wi-fi-wireless-module-adapter-module-3-3v-5v-compatible-for-arduino-404644#.VkOVuLerTIU
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?
@Gus
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.
Hello,
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,
Adrien
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.
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.
@Vladimir
Vladimir
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)
Regards
Gus
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?
@Vladimir
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.
Thanks. I got some parts today:
– BC546 transistor
– 1N4148 diode
Wish me luck :)
@Vladimir
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.
k3a
Used 1N5817 get the odd error but checksums Ok
k3a
on another note I think the Amega 328 (micronova board) is 5 Volt CMOS
http://www.allaboutcircuits.com/textbook/digital/chpt-3/logic-signal-voltage-levels/
@Gus
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.
k3a
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
Regards
@Gus
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.
k3a
Shot in the dark, maybe the response time of your zener could give you the 3.7Volt overshoot
Later
Gus
PS
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#)
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.
[IMG]http://i65.tinypic.com/30adtep.jpg[/IMG]
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…
Thanks
@Vladimir
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.
@k3a
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.
http://i64.tinypic.com/2v3osoo.jpg
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
@Vladimir
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.
@Vladimir
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.
@k3a
I think we made some progress :)
http://postimg.org/image/5hyki5ik9/
Many thanks again. I will experiment tomorrow so I will send report what I’ve done.
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.
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.
http://s23.postimg.org/8dn6gopff/RWMS_error.png
I guess this isn’t good?
@Vladimir
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?
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
User
Time
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
Lui
@k3a
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. :)
http://s23.postimg.org/pjjsonbfv/Konektor.png
This is pinout which I use
http://s11.postimg.org/xrqk32d5v/Konektor2.png
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
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.
@k3a
Hello,
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. :)
Very good you guys -35C at the moment I am not playing with stove :)
@Gus
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. :)
http://weather.gc.ca/city/pages/nt-4_metric_e.html driving to Yellowknife tomorrow in the AM
http://weather.gc.ca/city/pages/nt-24_metric_e.html not much better there
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?
thanks
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.
Hi,
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.
Hi,
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.
Regards,
thank you for sharing all those informations.
@JLC
Sorry for the double Question, I did not see my previous question (thinking it had not been taken).
@JLC
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
@Vladimir
Hi,
Thank you for your help.
I’ll try those commands.
I will come back to give my return.
Hi,
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.
@JLC
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.
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.
http://s1.postimg.org/d6mfcqcdb/DSC_0382.jpg
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?
@Vladimir
Hi,
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 ?
@Vladimir
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.
@k3a
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…
@JLC
No, I’ve searched only RAM but you are right, I will check EEPROM. Thanks. :)
Hi,
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.
http://s30.postimg.org/klv41w475/Analyzer_JLC.jpg
@JLC
Wow, great. I’m interested. :)
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.
Hi,
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) :
https://msdn.microsoft.com/fr-fr/library/5a4x27ek%28v=vs.100%29.aspx
Share it :-)
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 !
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
@Vladimir
Hi Vladimir,
I posted link to C# program. You may not see it yet, it is awaiting moderation.
Hi,
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.
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.
@Vladimir
Thanks.
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
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.
http://s12.postimg.org/7407cgs3x/error.png
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.
http://s2.postimg.org/u6jze0kix/error2.png
It’s obvious that I must change something on my 1wire-2wire interface because I suspect that is the reason for these communication issues.
@Vladimir
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.
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.
That’s a good idea! :)
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.
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 ;)
00:01:21
Stove State : 0
Display : SPENTO
05:28:11
Stove State : 1
Display : ACCENDE
05:28:25
Stove State : 2
Display : ATTESA PRERISC-
05:31:6
Stove State : 2
Display : CARICA PELLET
05:33:55
Stove State : 2
Display : CARICA FIAMMA
05:33:57
Stove State : 2
Display : ATTESA FIAMMA
05:37:27
Stove State : 2
Display : ATTESA FIAMMATE
05:37:29
Stove State : 3
Display : FUOCO PRESENTE
05:41:53
Stove State : 3
Display : FAVORO
05:41:55
Stove State : 4
Display : LAVORO
[snip]
06:42:33
Stove State : 4
Display : LAVORO
06:57:14
Stove State : 4
Display : LAVORIA BRACIERE
06:57:17
Stove State : 5
Display : PULIZIA BRACIERE
06:57:35
Stove State : 5
Display : PULIRO
06:57:37
Stove State : 4
Display : LAVORO
07:3:20
Stove State : 4
Display : LAVORO NALE
07:3:22
Stove State : 6
Display : PULIZIA FINALE
07:19:22
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.
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
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
@trgdev
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
correction : message is stored from 0xD5 to 0xE0 !
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.
@JLC
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…
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.
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 ;)
@trgdev
What serial interface are you using ? I am getting the odd error with the simple one transistor interface .
Regards
Gus
@Gus
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.
@trgdev
Thank very much
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?
@Mpp
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. :)
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.
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
PS: I wanted to buy this one but unfortunately they don’t ship to Belgium.
http://www.ebay.it/itm/Nuovo-Telecomando-slim-Micronova-standard-Micronova-Extraflame-Evacalor-ecc-/261748721918
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 ?
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
Mr Veenstra,
Do you have a remote, if so which one is it?
Guys,
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,
Vvuksa
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
https://learn.adafruit.com/using-an-infrared-library/sending-ir-codes
If Moses won’t go to the mountain…
I ended up buying an Arduino UNO and the codes are working perfectly!
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?
@Mpp
Hmm, maybe, I will check that when I return home (in five days). Thanks for letting me know.
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.
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 :-)
@Mpp
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. :)
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)
https://s19.postimg.org/l5ksw89o3/image.jpg
Schema:
https://s19.postimg.org/v6pn5jmr7/image.jpg
And did the diode modificaties:
https://s19.postimg.org/6nnlo8icz/image.jpg
From this original:
https://s19.postimg.org/yeypwbyer/image.gif
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
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
Klaus
I am glad it helped you. :) Enjoy!
Hello,
I have a new pellet stove, and I can see that it has a Micronova controller, model N100.
http://www.micronovasrl.com/en/realizzazione/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!
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.
https://postimg.org/gallery/p7px12eu/
Hello
I made self a serial remote tool for extraflame !
the yellow marked column is for command there has a Return Value.
https://postimg.org/gallery/p7px12eu/
anybody needs this ?
@Klaus
Looks fine. Maybe you can put it on github.com and someone can get inspiration from it or use it.
@Klaus
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 !
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.
https://s27.postimg.org/fokztpgyr/blower.jpg
https://s30.postimg.org/juk7b0n69/conected.jpg
The setpoint address (in ROM):
Temperature: 14 (dec) 0E (hex)
Formule: dec value + 30 = setpoint in Celsius
https://s23.postimg.org/4nt0mvfvf/setpoint_blower.jpg
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
https://s27.postimg.org/njfoo2i7n/speed1_blow.jpg
Thanks for the great tip! It looks nice. Btw is the cable heat-resistant enough? It looks a bit dark :)
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!
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”
https://s27.postimg.org/n57qj8rc3/20170208_224320.jpg
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 :
1000-260=740/10=74
Write [160, 48, 74, 27] (Dec) or
[0xA0, 0x30, 0x4B, 0x1B] (Bin)
How can you buy this product
PR012 WiFiMi
Thanks, my model is a laminox primula
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.
@Mpp
I have the remote
http://www.ebay.it/itm/Nuovo-Telecomando-slim-Micronova-standard-Micronova-Extraflame-Evacalor-ecc-/261748721918
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
gracias
@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
I have the remote
http://www.ebay.it/itm/Nuovo-Telecomando-slim-Micronova-standard-Micronova-Extraflame-Evacalor-ecc-/261748721918
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
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?
@jcarlos
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.
Hello
I myself the same plant ((Alfa Plam commo 21 (kw), a micronova Hydro L023-3)), with which program you connect to it?
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
https://s7.postimg.org/d2z8v8wqz/pressure_transducer1.jpg
https://s30.postimg.org/alphaf7z5/20170409_101611.jpg
The pressure sensor can be switched on or off by technical institutions:
https://s17.postimg.org/ma3gvze4f/exclud_pressure.jpg
Next, the threshold can be set:
https://s29.postimg.org/9yrfu6f9z/threshold.jpg
You can read it from the RAM address 56 (0x38) (value/10)-1
https://s27.postimg.org/pipoyd01f/show_pressure.jpg
@CDRomke
HELLO
PLEASE HELP ME
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
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.
@CDRomke
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…
@CDRomke
Hello,
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
@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.
Nevermind I did it myself. The tricky part was to remove the top cover first. Then side panels goes away together with the front.
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.
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):
https://www.myqnapcloud.com/smartshare/60ih4520o61n827quu952454_6zWjHpJ
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?
tnx.
tnx.
@CDRomke
Thank you, I’ll prove your program.
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.
Correct?
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).
Hello,
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 .
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
@Gus
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
@peter vergoossen
I thing you need to follow instructions in comment #100
@k3a
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
its a Microsoft Visual Studio Project
thank you Klaus
I’ll try it now
@DragosStefan
Its a debug folder in there Package , you can run the exe file in that folder directly
–
Hello,
I have an insert in pellet equipped with a card(map) controller Micronova PL026 and of one telecommanded as that:
http://www.lartistico.com/pdf/pellet/istruzioni/40112_telec_radio.pdf
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):
http://www.micronovasrl.com/en/realizzazione/pr012-wifimi/
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)
@k3a
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…
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.
Hi,
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.
Heloo
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)
Hello,
First thanks’ to all for this blog and comments.
I’m also trying to control my extraflame pellet stove (with a micronova board).
@sergio
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
Hello
is there something based on arduino code that can control the stove from the web page on the phone?
thank you
hi,
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:
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemVersion&item=131740679808&view=all&tid=1402843905003
regards
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.
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.
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.
Hi,
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!
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).
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.
Solution;
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
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:
…
mySerial.begin(1200);
…
byte message[] = {0x80,0x20,0xe,0xb4};
mySerial.write(message, sizeof(message));
…
@Jo
PS: I’m from Belgium….if anyone’s near with the same problem I’m open to try and help eachother :)
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?
Hi,
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?
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.
hmm, but only plug’n play would be great….not to care about the hardware stuff, just reprogramming….
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)
Pictures:
https://ibb.co/bW5Gmw
https://ibb.co/hxLrmw
https://ibb.co/iEiBmw
https://ibb.co/b4w8Yb
I quickly created an Arduino sketch togething with Blynk and was able to control settings on the stove in a matter of minutes.
https://vimeo.com/252144131
Thanks for all the information on this page guys! It was very helpful!
Nice work! :) I am glad the article helped you to make your stove smarter.
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
@Sibianu Dragos
The code is “quick and dirty” but should give you a good idea on how to proceed:
https://jpst.it/19-ne
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
Transistor: NPN BC548C
Diode: 1N4148
Resistor: 10k
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
What about this board (Termomont toby 12b)?
Any experience?
https://imgur.com/a/DjQSr
More images:
https://imgur.com/a/40ADb
I can’t test this code at the moment. try to remove the following lines:
Serial.print(“Gelezen: “);
Serial.println(Serial.peek());
Let me know
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
Hi,
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
Ales
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. :(
@Ales
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.begin();
irsend.sendRaw(rawCodePowerToggle, 21, 38);
Thank you very much, I’ll try soon !
Hi Jo,
unfortunately powertoggle isn’t working on the contrary of other commands… What a pity !
Thank you so much in any case
@Jo
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
@remi
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 ;) )
https://justpaste.it/1iwva
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.
@Klaus
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?
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(…).
@Jo
Any new about your code. I am testing it.
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?
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?
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
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
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
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…
email me on roki199@t.mk
@alessandro
@CDRomke
Hello did you make newer ver of your program?
I,m trying on few boards but only few options work
Hello.
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.
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?
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 ;)
@Neale
Hello,
You will find all you are looking in this thread ! The Edge ressources (PCB) provided by K3A are not enough ?
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.
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
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?
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.
https://play.google.com/store/apps/details?id=net.smart247.micronovaremotecontrol
Tested on Bronpi HYDROALASKA-21 with Galaxy S6, Galaxy Tab S 8.4 and Mi9
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
Hi @k3a,
I’m trying to connect my pellet stove with a ESP8266. It has a Micronova N100 controller:
https://www.micronovasrl.com/wp-content/uploads/2016/02/N100-3.jpg
https://www.micronovasrl.com/wp-content/uploads/2016/02/N100-1.jpg
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
Regards!
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).
Thanks k3a,
The zener diode can be another 1N4148 ?
Regards
@Pilfos
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.
@Pilfos
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.
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.
Regards
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.
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?
Regaards
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.
Test
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?
@Pilfos
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).
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…
Regards
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!
@Pilfos
Please can you share the project. thank you.
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
Gerald
@Pilfos
Good Morning,
First of all, I wish everyone a Merry Christmas!
@Pilfos
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.
greetings
Gerald