Roller blind remote with rolling code

Hi,
I am trying to automate a roller blind with Arduino.

The roller blind has a 433 Hz remote that allows me to operate it.
It is a https://alphamotors.com.au/wsre301-navigator-1ch with rolling codes.

It's possible to sync a new remote to the blind, so I imagine it would be possible to clone it with Arduino.

I cannot find any information on how to start.

Would you have any idea?

Kind regards
Eduardo

These systems rely on a secure crypto chip built into both the remote and the receiver. Each time you press a button, the remote generates a new code based on an internal counter and a secret seed known only to the remote and receiver. This code is then possibly encrypted using a specific algorithm, often proprietary (or something like KeeLoq).

The receiver keeps track of the expected code and will only accept a signal if it matches the next value in the sequence ➜ so even if you capture multiple transmissions with a radio receiver, the codes will appear different each time and can’t be predicted or replayed without access to the original encryption seed and algorithm.

That means that without physically extracting the seed from the remote’s chip or reverse-engineering the firmware, it’s effectively impossible (within reasonable limits) to reproduce a valid rolling code sequence with an Arduino or something else.

Rolling code systems are specifically designed to resist cloning for this reason, and there’s no practical or reliable method to bypass this security without the original crypto material.

What many of us did was to hack a remote to replace the physical button by an optocoupler (or whatever is suitable for your remote) and the.n drive the optocoupler with an Arduino (I’ve used ESP32 and HomeSpan to integrate that into an HomeKit environment).

No, but if you have spare working remote and arduino with lot of memory, you can copy the signals one by one and use them in same order. But it's much easier to just wire arduino to remote buttons like @J-M-L suggested.

I don’t see how you want this to work as once a signal is used it is not working anymore (and if you mean try to copy the infinite sequence - that’s hard as there is a handshake in some systems or ack to help keep various remotes in sync - not to mention of course the fact that it’s infinite :slight_smile: )

So the easiest option is to actually simulate pressing on the button.

It works but not anyhow practical especially because you can't use the remote if you are using those copied signals.

There is quite a good summary description here on rolling code implementation. https://electronics.stackexchange.com/questions/85657/rolling-code-explanation

How would you deal with handshake and ack ?

You can proceed with a 433 MHz Transmitter and Receiver pair and an Arduino. You can use the RC switch library. GitHub - sui77/rc-switch: Arduino lib to operate 433/315Mhz devices like power outlet sockets.

No how. I expected roller blinds don't use, but totally possible.
And now that I think about them, even if it works, it might be complicated because of different buttons up/down.

Possibly indeed

Hi I have the same remote and also have interest to reverse it. I teared it down it has only 1 IC on it, no text on it so hard to tell what's it, but the same company has another product recorded in FCC so it's likely PIC16F636. It also has a high level encoding diagram, but not sure if it applies to this unit too.

I captured the signal using rtlsdr but I have no clue how to interpret it, seems neither NRZ nor Manchester. I am not hardware engineer so not sure if it's a known pattern, do you have any idea?

Btw how do you know this uses rolling code?

I would imagine if it weren't using rolling codes, I would get the same code every time.

That is not the case.

I recorded the code and played it back, but it didn't work.

That is why I assume it is rolling codes.

If you recorded it away from the roller blind receiver coverage, it actually should work. But there can be other things beyond rolling code to be considered.

Are you following those exact steps to test your Arduino version?

Makes sense. Do you have idea of how can these signals convert into bits?