Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ravelli compatibility ? #8

Closed
esavalle opened this issue Jan 2, 2024 · 11 comments
Closed

Ravelli compatibility ? #8

esavalle opened this issue Jan 2, 2024 · 11 comments

Comments

@esavalle
Copy link

esavalle commented Jan 2, 2024

Hello,

I'm trying to use your project (and @philibertc's) with a Ravelli stove which is not in the list of compatible stoves.
I'm not sure if the control board is a Micronova but using @philibertc's test codes, I'm able to turn the stove on and off. However, when I try the other commands you have in the Readme, none of them work.

Do you know if the card is necessarily a Micronova if it responds to the stove on/off command?
Do you have any idea what I need to do to find the commands that work with my stove?

@eni23
Copy link
Owner

eni23 commented Jan 4, 2024

@esavalle

Yes, when your stove reacts to ON/OFF commands, IMHO its pretty certain that this has a Micronova controller in it. A really quick Google search seens to confirm that Ravelli seems to use Micronova electronics inside but i cannot really guarantee that, since i invested like 2mins in that search.

Pretty much all locations from philibertc did not work for my stove as well, not even the turn-off. What i did is get some others from a italian forum (link should be in the README), but most of them where also incorrect. So i changed settting by setting on my stove, dumped "EEPROM" and "RAM" and compared what changed to previous dumps. When i was sure that the location of the command seems to be what it is, i wrote to it to confirm. This was a quite time consuming process.

As some locations seem to be "unsafe" to write, i would suggest you to be really careful. I had quite some weird errors on my stove which only a power cycle of the stove could solve, but i guess i was lucky not to break it. If you are required to have the stove running, i would really recommend you to do it in the summer time when you have time to replace it before winter ;)

@esavalle
Copy link
Author

esavalle commented Jan 4, 2024

Yes, when your stove reacts to ON/OFF commands, IMHO its pretty certain that this has a Micronova controller in it. A really quick Google search seens to confirm that Ravelli seems to use Micronova electronics inside but i cannot really guarantee that, since i invested like 2mins in that search.

I also have the impression that these are Micronova cards; visually, the one I have looks exactly like the PL023 card.

Pretty much all locations from philibertc did not work for my stove as well, not even the turn-off. What i did is get some others from a italian forum (link should be in the README), but most of them where also incorrect. So i changed settting by setting on my stove, dumped "EEPROM" and "RAM" and compared what changed to previous dumps. When i was sure that the location of the command seems to be what it is, i wrote to it to confirm. This was a quite time consuming process.

Would you mind telling me how to extract the information from the stove?
If I understand correctly, all you have to do is "physically" change one of the stove's parameters and watch the evolution of its "numerical" response.
How can I retrieve this response? As I know very little about electronics, I don't know how to dump EEPROM/RAM. Is the philibertc communication card enough?

I see that the italian forum is also talking about this so I'll try to translate it and get of glimpse of the work that I need to do !

As some locations seem to be "unsafe" to write, i would suggest you to be really careful. I had quite some weird errors on my stove which only a power cycle of the stove could solve, but i guess i was lucky not to break it. If you are required to have the stove running, i would really recommend you to do it in the summer time when you have time to replace it before winter ;)

You're right, that's an timely comment !

Thanks !

@eni23
Copy link
Owner

eni23 commented Jan 4, 2024

@esavalle

Would you mind telling me how to extract the information from the stove?

I once opened it but i never was able to figure out for sure the exact card. I either have a PL023_5 or a PL023_8, but this was just from matching what i saw in my stove with pictures from the internet. Please note tho that the manufactures of those stoves as it looks can programm those boards individually, so as it looks its not only the card but also the firmware that counts.

If I understand correctly, all you have to do is "physically" change one of the stove's parameters and watch the evolution of its "numerical" response.

While yes, it is pretty easy from the steps doable (get a dump, then eg. change the set temperature, get another dump and compare), be prepared to be in for a longer puzzle session. Both RAM & EEPROM have 256 locations and some of them will change wich have nothing to do with the one u need.

How can I retrieve this response? As I know very little about electronics, I don't know how to dump EEPROM/RAM. Is the philibertc communication card enough?

I would say EEPROM/RAM in this case are arbitrary words which means you have 2 locations on the stove with both 256 adressess which are all 8bit (meaning 0-256). You can either request such a addr from the stove and it wil answer you, or you can write to a certain adress. I just took over the wording from the internet, but i belive its wrongly labeled.

I am not familiar with the card/code from philibertc, since i only took his wiring circuit and found his variant too unflexible code wise and i prefer ESP32 over ESP8266 controllers.

With my code, there is a interactive serial terminal where there are the commands dump-eeprom and dump-ram, but i do not made PCB's so you would have to solder one on your own. But should be doable fairliy easy to port a dump functionality to the board from philibert, depending on your coding skills.

@esavalle
Copy link
Author

esavalle commented Jan 4, 2024

@esavalle

Would you mind telling me how to extract the information from the stove?

I once opened it but i never was able to figure out for sure the exact card. I either have a PL023_5 or a PL023_8, but this was just from matching what i saw in my stove with pictures from the internet. Please note tho that the manufactures of those stoves as it looks can programm those boards individually, so as it looks its not only the card but also the firmware that counts.

If I understand correctly, all you have to do is "physically" change one of the stove's parameters and watch the evolution of its "numerical" response.

While yes, it is pretty easy from the steps doable (get a dump, then eg. change the set temperature, get another dump and compare), be prepared to be in for a longer puzzle session. Both RAM & EEPROM have 256 locations and some of them will change wich have nothing to do with the one u need.

How can I retrieve this response? As I know very little about electronics, I don't know how to dump EEPROM/RAM. Is the philibertc communication card enough?

I would say EEPROM/RAM in this case are arbitrary words which means you have 2 locations on the stove with both 256 adressess which are all 8bit (meaning 0-256). You can either request such a addr from the stove and it wil answer you, or you can write to a certain adress. I just took over the wording from the internet, but i belive its wrongly labeled.

Thanks for this explanation.

I am not familiar with the card/code from philibertc, since i only took his wiring circuit and found his variant too unflexible code wise and i prefer ESP32 over ESP8266 controllers.

With my code, there is a interactive serial terminal where there are the commands dump-eeprom and dump-ram, but i do not made PCB's so you would have to solder one on your own. But should be doable fairliy easy to port a dump functionality to the board from philibert, depending on your coding skills.

I have an ESP32 lying around and actually followed your drawing to integrate a buck converter. So I guess that I can already port your code with the current PCB (after arranging for the new pinout)

Or I can have a go at a simple code that would loop all addresses as you did in your console.cpp.

I will report back if I do any progress, thanks again for your time 👍

@eni23
Copy link
Owner

eni23 commented Jan 4, 2024

I have an ESP32 lying around and actually followed your drawing to integrate a buck converter. So I guess that I can already port your code with the current PCB (after arranging for the new pinout)

Oh, if you already built the circuit, then you can easily flash just my code, it will not do anything until you tell it do do something and should be safe to run. Just install platformio locally, then run make upload and afterwards make monitor which will open the interactive terminal. Then either use dump-eeprom/ram or for single adresses read-ram and read-eeprom. You can change pin settings in src/config.h

@esavalle
Copy link
Author

esavalle commented Jan 4, 2024

Oh, if you already built the circuit, then you can easily flash just my code, it will not do anything until you tell it do do something and should be safe to run. Just install platformio locally, then run make upload and afterwards make monitor which will open the interactive terminal.

Is there anything specific to work with the monitor ? The 'make monitor' command is not doing anything on Ubuntu 22.04 and a MH ET LIVE ESP32DevKIT ESP32 board.

@eni23
Copy link
Owner

eni23 commented Jan 4, 2024

@esavalle yes, it should open up a interactive terminal. Since the Makefile uses the --quiet switch, you could try

pio device monitor --baud 115200

and check for the output what seems wrong, or screen but there you have to figure out the device yourself ( sudo dmesg):

screen /dev/ttyUSB1 115200

@esavalle
Copy link
Author

esavalle commented Jan 4, 2024

It seems to be working :

--- Terminal on /dev/ttyUSB0 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H

I'll have a look tomorrow once connected to the stove !

@esavalle
Copy link
Author

esavalle commented Jan 5, 2024

This is working, thanks a lot.

Would you mind telling me what is the format of the output ?
printf("0x%02x|0x%02x|%d|%c\n",i,stove.last_read_value,stove.last_read_value,stove.last_read_value);

The first three are correctly displayed (0x%02x|0x%02x|%d) in my terminal but the last one (%c) seems to be non ASCII.
The first one is the address in hexadecimal, the second is the stove response in hexadecimal, the third is the stove response in integer ?

@esavalle
Copy link
Author

esavalle commented Jan 5, 2024

Thanks a lot, I managed to find some settings (power, room temperature, another room temperature...) in the EEPROM and the RAM section !

@esavalle esavalle closed this as completed Jan 5, 2024
@eni23
Copy link
Owner

eni23 commented Jan 6, 2024

@esavalle Super nice to hear that this repo where i invested way too much time is actually useful to someone else. Enjoy your remote controllable stove :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants