AVR 8-bit program for controlling Intertechno radio built-in switches used e.g. in window shutters
The ITS-150 remote control, I emulated, works on the 433MHz Frequency (RC).
I sniffed the necessary commands with a logic analyzer and a RF receiver.
As you can see, the 3 Byte command will be repeated 6 times in one transaction to determine the timing.
The commands.cpp file containing those commands will not be shared for safety reasons. But take a look at the regarding headerfile if you're interested in the structure.
Because of the rich amount of pins and the serial port, I decided to use the ATmega328p with the 8MHz bootloader as the heart, which can be easily programmed with the help of a FTDI friend.
The XY-FST is a small, but powerful transmitter, which I amplified with an antenna. The formula for calculating the length of the copper wire is Lambda/4 = (speed of light/frequency)/4 = ~17cm. I connected an LED to the data line to indicate a transaction.
For enabling later switching to an even smaller chip (with less GPIOs) like ATtiny85 (ISP Programmer or Arduino Development Board needed), I decided to use analog buttons (voltage divider by resistor ladder) for interaction. Nether less I needed a separat digital pin (Pull-Up) to interrupt the CPU, which is less power consuming then polling and makes the sleep mode possible at all. You could also use the internal comparator, but it only works when the ADCs are disabled, so don't forget to turn them on again. This solution is scalable, if you wish to have more keys. For interrupting as rarely as possible, you could debounce the digital pin on the hardware side instead of using a timer.
For simplicity, I used the Arduino CLI (Toolchain for compiling and uploading with avrdude). The RCSwitch library is pretty handy and offers the opportunity to pass in decimal numbers, which will be converted to a bitstream.
Because of the low power consumption I wanted to use 1x 2600 mAh Li-Ion battery (18650), which will be charged by a TP4056-chip with USB-C port. If you like to have multiple batteries to increase the voltage, be aware to use one charging module for each, so you can put them in series. Otherwise, they can (dis-)charge one another, which would lead to different loads and ultimately batterie-damage. That’s why I used a 5V step up (boost) converter, which efficiency is still good (~95%). But it’s worth mentioning, that its coil could possibly cause radio interference if not shielded well. Also, do not forget to include a switch to cut off the load when charging the battery.
Standard: 10mAh
Optimized (Deep sleep, ADC off): <0.1 mAh