Introduction: IR Control of IKEA FYRTUR Shades
I finally got my hands on some IKEA FYRTUR motorized shades and wanted to control them using an IR remote. This is a niche application but I thought it might be useful for someone wanting to learn how to use the Arduino's GPIO pins as a simple low-voltage relay triggered by IR commands.
IKEA FYRTUR Motorized Shades
Arduino Leonardo Without Headers https://store.arduino.cc/usa/arduino-leonardo-wit...
2.54 mm Male Pin Header Connector https://smile.amazon.com/gp/product/B07PWZ6G9G
Vishay TSOP4838 38 kHz Infrared Receiver (Pack of 5) https://smile.amazon.com/gp/product/B00UO9VO8O
4 pin connector https://smile.amazon.com/gp/product/B074C6FV36
3ple Decker Case for Arduino (Low,smoke) https://smile.amazon.com/gp/product/B075SXLNPG
USB Wall Charger 5V 2A (Arduino Leonardo Micro USB power supply) https://smile.amazon.com/gp/product/B0117O020U
Bose Replacement Remote Control (Any IR remote can be used; I just picked this one since I don't have any Bose components in my rack) https://smile.amazon.com/gp/product/B07QKMM2PH
I've been using the original Harmony 659 IR Remote for almost twenty years and still think it's the perfect remote. I still find used ones in good condition on eBay. It does everything I want but it doesn't have bluetooth, WiFi or any other modern smart home features. IKEA's RF-controlled motorized shades can be paired with an IKEA TRADFRI or Samsung SmartThings gateway and theoretically be triggered by a more modern Harmony Hub remote but I prefer using an IR remote with tactile buttons over a touchscreen remote and didn't want to jump through all those hoops just to perform one simple task which was to lower the shades whenever the projector is turned on.
Each IKEA FYRTUR shade comes packaged with a remote so if you pair only one to control an entire set of shades (up to 4) you'll have lots of extra, unused remotes. I mounted one remote on the wall for everyday use but needed an extra working remote for this project so after much trial and error I finally figured out how to pair two remotes to one set of shades:
Steps to pair 2 remotes to one set of FYRTUR shades
1. Plug repeater in and wait a minute or more to make sure it's online.
2. Unscrew the battery cover on the remotes and click the pairing button on each 4 times to erase them. Their LEDs will blink rapidly then go off. Wait a few seconds for the LEDs to come back on before attempting to pair.
3. Hold pairing button down on just one of the remotes close to the repeater until the repeater's white LED pulses indicating it's paired to that remote.
4. Unplug repeater from the wall.
5. Hold remotes close together and hold down the pairing buttons on both at the same time for 10 seconds or more until their LEDs pulse and go off.
6. Plug repeater back in and wait a minute or more to make sure it's online.
7. Pair just one of the remotes to each shade by pressing and releasing the up and down buttons on the shade simultaneously so that the white pairing LED comes on then hold pairing button on remote until shade jogs down and up indicating it's paired. It doesn't matter which remote you use since they should now be clones. Either remote should now work to operate the shades.
Now that I had an extra working remote I took it apart by first removing the screw holding the battery cover then prying off the plastic rocker switch from the base using a small flat tip screwdriver.
Then I peeled back the silicone dust cover/rocker spring to expose the circuit board.
Then I used an ohmmeter to probe around the two momentary push buttons to determine which solder joints were ground and which were the normally open contacts.
Then I soldered 4-conductor wire to those joints. The black wire is soldered to the ground of just one of the buttons since they share a common ground, the yellow wire is soldered to the normally open contact of the S1 or up button and the white wire is soldered to the S2 or down button. At first I tried using just those 3 wires leaving in the 3V coin cell battery to power the remote but the battery drained after just a few days because of a voltage difference between it and the Arduino so I left out the battery and added a fourth (red) wire to the shade remote's positive terminal and powered it using 3.3 V from one of the Arduino's pins.
Then I soldered a 4-pin header to pins 9, 10, 11, and 12 of a headerless Arduino Leonardo and plugged in the 4-wire connector. Then I soldered a Vishay TSOP4838 38 kHz IR receiver to pins 5, 6, and 7 and bent the leads so it faced upward to receive IR signals through the Arduinos's translucent case.
Before I could go any further I needed to find out the hex values of the IR commands I wanted to use for up and down. I ran the attached code with the serial monitor open so I could view and copy the hex values for each button I pressed on the Bose IR remote. I've attached the code with a .c extension so rename it with the .ino extension to open in Arduino or with a .txt extension if you just want to take a look at it.
And here's the code for the shades. Basically what I'm doing is using the Arduino's GPIO pins as a low-voltage relay. If you're trying to switch something with higher voltage or amperage then you need to use an external relay. When the code starts it turns pin 11 on the Arduino to LOW or off so it becomes another ground (negative voltage). It also turns pin 9 and 10 HIGH or on (positive voltage) so there is no continuity between pins 9 and 11 or 10 and 11 so both of those "relays" or buttons are off. When the Arduino's IR receiver receives the down or lower command from the Harmony remote, it switches pin 10 to LOW (negative voltage) for just 250 milliseconds so for one fourth of a second pin 10 has continuity with pin 11 thereby completing the circuit inside the shade remote as if someone had physically pushed the down button.
Finally, I taught my Harmony remote the IR commands from the Bose remote and added them as custom ShadeUp and ShadeDown IR commands for my projector in the Harmony's settings then programmed it to send the ShadeDown command whenever the projector is turned on. Hope someone finds this useful! Thanks for looking!
Participated in the
Arduino Contest 2020