-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Trying to decode signal from Marlec Solar Iboost+ #1739
Comments
Please update your rtl_433, |
Thanks for the quick response. Have updated and attached a full output of -A |
The three packets are: Noise or a preamble, then two FSK transmissions.
That means it's likely FSK PCM with a bit width of 80 µs. |
No joy with the FSK PCM commands above, I did notice in the output from rtl_433 it suggested
Have tried with that, which gives me some output, but nothing that makes sense to me.
|
From the timings it looks like FSK_PCM should work. All pulse/gap widths are multiples of 80 µs. The first block (which is seen as OOK) is warm-up / preamble or garbage. The analyzer can't handle PCM because there is no obvious "rhythm" to it -- thus no pdv link or suggestion of a -X. Grab a sample then ( |
This seems to be the closest to your link above. It was transmitted just after I pressed the boost button on the unit and the remote display showed "Boosting for 15 mins". I realise this could either be transmitted as characters, or could just be a reference to a stored phrase on the display unit though. |
That would be a good file to investigate. The zip link is broken. Upload didn't work for some reason? |
Have just updated the link. Must have navigated away before it finished the upload. |
I guess the Grab a good number of codes and put them in a https://triq.net/bitbench then find the data in there, or just post a link. |
Yes, the -A output was from file and not live. I'll grab a few and have a play. Thank you for your guidance. Quick question, do you include the {186} when pasting in to bitbench |
Someday rtl_433 should recognize the |
When collecting codes in BitBench note that you can add comments, e.g. |
I have uploaded some codes to bitbench - here |
Set a preamble align of
Those leading bytes look like a device ID of sync word, also like ASCII, use a format string of It's generally too much data with no reference to the values (kWh etc.?) to take a guess. You'd need to collect codes in stable conditions, like very slowly changing kW reading, correlate with the head unit output and then try to find where those values are located in the bytes. |
i'll drain some water from the tank so it starts heating, that should give me a consistent output of different phrases and take another capture |
Have added a new bitbench here - I drained water off from the tank to force it to start heating via solar again. The text shown on the display was "Heating by Solar 1.21kW Htr1" where the kW value was constantly changing. Just thinking, but there are two transmitting devices here, the Solar iboost itself, but also the CT clamp down by the meter that measures how much energy is going back to grid....We are most interested in the transmissions from the Iboost device itself. Bitbench link - here |
Format the BitBench like this. (i.e. comments in [..], preamble aaab, format "8h") If you can, capture 20-50 messages while the kW is slowly changing. That way all codes should look mostly the same and the differing bits show where the kW value is hiding. |
I have captured over a 5min period. During this time, the system was heating using solar and the kW output was fluctuating between 0.9kW and about 1.4kW. |
Good work. Sorry I didn't spot this earlier, but the codes aren't actually that long. It's multiple packets. PCM can't reliably transmit more than say two 00's, i.e. 16 bit without losing the timing. And we can actually see the gaps in amplitude: I'll try to recover the shorter codes from your rows. Otherwise use this to capture from now on: The codes in your uploaded sample are now much better to view: BitBench. |
That’s excellent. I’ll take some more traces tomorrow as the sun has almost gone here today now (unless I can trick it in to thinking I’m exporting solar by flipping the polarity on the CT clamp. This is much lower level than I am used to working at but really interesting. I appreciate your time. |
I've picked just the pristine looking codes from the one sample and the picture is looking much better now: BitBench. There is a value visibly counting and then some checksum-like fields at the end. The preamble is |
There is now a "decoder" for this device class in current rtl_433. Get a fresh copy (or
These messages are properly aligned and CRC checked. But the content might be whitened or encrypted perhaps. |
Maybe @duc996 can help with further decoding. He added the Archos-TBH in #1199. |
That's great. I grabbed some more signals this morning using the decoder.
|
The CC110X family of chips has no built in encryption but they have an optional whitening step and FEC step. Neither seem to be used here. https://www.ti.com/lit/ds/symlink/cc1101.pdf page 38.
The marked region is clearly counting down something. |
This seems to be a specific block. |
And this block is counting up for some reason. |
The next step is now to match observed states from the panel to actually transmitted codes. The manual has some info about that possible states. At least the kW value should be easy to find. |
You are right of course, whitening only. I was confused by the encryption example from the Archos-TBH. |
The layout hints to two single byte values, then 2-byte values, and the 2-byte groups look like little endian, i.e. format |
Did that happen trying to connect to the port that looks very much like UART? |
Yes I will publish what I have. I have figured out the boost protocol and will add it to HomeAssistant when I get a chance. |
No. I wanted to check the fan voltage and signal. The bang happened when I connected the scope ground lead to the black wire on the fan. It was a big spark. I am so used to messing around with microelectronics I didn't think about this scenario. Silly mistake really. Could easily have been my fingers! I haven't seen a UART type port and don't intend to open the iBoost again. All I want is to know the import/export/heating status in a different application. I am hoping I can configure a CC1100 with the same settings as the PIC in the buddy and listen to traffic then use it in my home automation dashboard. Does anyone know of any sample code out there where we can connect a Cc1100 and Arduino to listen to the traffic on the air? |
You will need a receiver like this "CC1101 868MHZ M115 Wireless Module Long Distance Transmission Antenna Module" https://www.ebay.co.uk/itm/253096814443 |
Any luck? I'm holding my breath :) |
https://github.com/JNSwanson/ESP-Home-iBoost Let me know how you get on. |
This is working perfectly for me. Thank you! |
My apologies for not testing sooner. Thank you for your hard work! As you mention in your instructions, I got the compile error, but copied the .CPP file to the build folder and that solved that issue. I've done no frequency tuning, got the cc1101 from eBay (not changed the crystal), and am getting full data. I've not looked at the LQI. I will have a look. Any thoughts on a nice project box, at the moment I'm at breadboard stage, but working nicely so far. Just used 2.54mm wires to 2.00mm to connect the breadboard to the cc1101. Lovely Integration, great work I'll keep testing, but this is likely to replace my iBoost Buddy (with added boost relay). |
Here 's my approach to an enclosure. |
@JimboJ without a printer (or the patience) plastic electrical distribution boxes work well enough for very cheap |
@JNSwanson thanks so much for your contribution! I've just finished soldering the ESP8266 and C1101, flashed it, it boots fine, but I don't see any sign of activity on 868Mhz in the debug output. Can it be because I already have iBoost+ Buddy paired? Does ESP8266+C1101 need to be paired with iBoost+? Thank you! |
No you don’t need to pair it, it uses the strongest signal it finds. What do you see in the debug? As mentioned, the Xtals on the receivers are sometimes off in frequency. Try getting as close to the iBoost or buddy as possible and maybe try different frequencies from the table. If you can solder ok, the Farnell Xtal is much better (10ppm) |
Understood, thanks! I see that radio was set up fine:
but later, there is no output from it at all. Here are the last lines in the log:
And the LED isn't blinking at all, after the setup blink (looking at the code, I believe it should blink regularly). I'm wondering whether my C1101 is botched. I have a few more, so I'll try another one. |
Looks like the connection th the radio module is ok. I think it is a similar problem to this: JNSwanson/ESP-Home-iBoost#1 Are you close to the Buddy? |
Thanks a lot, @JNSwanson. Yes, I put the unit right next to Buddy, and there is still absolutely nothing, not even a blip. I also ordered the recommended crystals - I can handle SMD soldering. |
@JNSwanson Just to confirm, I've just finished resoldering the crystal - and voila, all is working right away! Thanks for your amazing work! |
Thanks for the tips, I've moved on from the bread board stage, i used a 8pin Adapter Board Converter Plate For Wireless Mod, https://www.ebay.co.uk/itm/115717550843 and a project box from cpc. My coding skills are a little rusty but I'll try to whip up a PR Potential enhancements
|
What's the status of this issue and next steps? |
Which particular issue? |
Issue #1739 of course; that's where I asked. This is an open bug report, and it is not clear that it makes sense to remain open. |
As quoted previously, there is a solution posted here https://github.com/JNSwanson/ESP-Home-iBoost. This isn't my thread. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This is fascinating stuff to read....but I am struggling as a novice with no electronics or radio wave knowledge. Would it be possible to buy a radio receiver device such as this one https://www.youtube.com/watch?v=da1CLA82jw8 and read the frequencies on a PC or phone...thereby bypassing electronics and soldering skills? |
rtl_433 supports Marlec Solar iBoost+ sensors but there is no decoding of the raw data -- somebody would need finish figuring out what the received values mean. |
Some basic known fields have been added with eb1a696 now.
|
A detailed protocol analysis is in https://miscsolutions.wordpress.com/2022/10/02/home-energy-management-system-part-2-hacking-the-iboost-protocol/ |
@JNSwanson I wanted to say thankyou for your hard work on this project, for over a year, this has controlled my iboost (as my only source of hot water). It replaced an ESPHome and a relay soldered into an IBoost Buddy (old Style). I did change the crystal on the 2nd controller I made (for the one you recommended), that was even better as you said. |
I have a Marlec Solar Iboost+ solar diverter which communicates to it's display unit on 868.3mhz. From a few threads online it appears to use a TI CC1100 tranceiver.
I have some sample cu8 files recorded and would love to understand how you determine the encoding/modulation etc. Running -a on a recording gives me output like below:
The text was updated successfully, but these errors were encountered: