An arduino IDE sketch meant for digispark, that allows you to open your Horman garage (only yours, keep it legal). You need a modified 868mhz rf module and a cheap RTL-SDR to decode your garage code.
Also I can't assure you that this code will work on your particular horman garage, but if it doesn't my code is very simple and should be easy enough to adjust.
This is what I ended with, the usb-c connector is just there so that my phone can power it : To test the code you really just need 3 wires and a modified RF module.
This is the kind of remote that this project is able to replace :
HARDWARE :
Required hardware :
You need this partiticular one. I have gotten it to work with the more popular FS1000A but not reliably at all.
All can be found on Aliexpress, for the module search for "433mhz ASK module" or use this link if still alive : https://fr.aliexpress.com/item/32735888738.html
For the cristal search for "868.35Mhz Cristal Oscillator Saw" (more difficult to find) or use this link : https://fr.aliexpress.com/item/1005005625251557.html
You will need to solder the new cristal in place of the old one.
The last piece of equipment needed is a rtl-sdr dongle, that's what we use to find the garage code as well as making sure that the modified module works :
As far as connection goes, this is very easy. Vcc goes to 5V, GDN goes to GND, and Data goes to P2 (you can change this pin in the sketch)
This brings the total cost of this project to 18.5€ for me, although if you already have everything and only need the 868.3Mhz module, then it costs about 3€.
SOFTWARE :
- Universal radio hacker to decode your garage code : https://github.com/jopohl/urh
- Spektrum to verify the frequency of the remote or see if it works at all : https://github.com/pavels/spektrum
In universal radio hacker record your garage keyfob signal, (inside of a project) you should obtain something that looks like this : The pulse at the start corresponds to the 73ms transmission in the code, followed by a 173ms pause. Let's focus on the code itself :
This is the start of my code sequence, as you can see it's rather easy to decode.
A sequence is 80ms long and starts with a 12ms block, that's how you can spot where a signal starts and ends. Here we use the demodulated view in order to make the decoding clearer.
Each bit 1 or 0 is composed of 3 pulse length, the pulse length that worked for me is 471us. You might have to play for a pulse length between 450 and 520us but I don't think it should be necessary. recorded the code transmitted by the module and comparing it to the original is always a good practice in case adjustments need to be made.
I repurposed some of the code from this repository in my sketch : https://github.com/mcore1976/urh-arduino-cloning-keys
Just paste your string in the sketch once you have it decoded !