Why is the remote always missing when you need it? What if you could build your own, and control it from your phone or Alexa?!
I have a Serta Adjustable bed that has a remote to control all of its functions. I've always wanted to be able to control it in other ways than the stock remote. One possibility was to hack open the remote and use an ardiuno to activate relays which would push the buttons. Unfortunately, this would render the remote kinda useless for any other purpose. The PCB for the remote is also not that friendly to solder on to.
FCC to the rescue! Did you know that the FCC ID on the back of wireless devices is your key to an enormous amount of information about how it works?! I plugged the FCC ID into the FCC 's database and found out what frequency the remote uses. Luckily for me, the remote uses a daughter board for a wireless transceiver. This makes it a bit easier to replicate the remote, and in my case the remote uses a CC2500 transceiver. Unfortunately this isn't nearly as common as some other 2.4ghz devices. Ebay to the rescue! A few bucks and a few weeks later, I had a few of the CC2500's to play around with.
The CC2500 isn't all that popular, but luckily someone has already written some libraries for the arduino. It has many possible modes.
It might be possible to just start up an arduino, setup the CC2500, and start listening to what the remote is transmitting. I took a different route, because why not!
Logic Analyzers! I hooked a logic analyzer (thanks ebay!) up to the pins on the remote that connect to the CC2500 board. Luckily, it uses SPI and wasn't too hard to see what data it was sending to the board. This allowed me to discover the packet length, channel, and all sorts of other settings it is telling the CC2500 to use. I could also see the different commands that were being transmitted.
Next up, setup my Arduino to talk to the CC2500 board, and listen. Using the configuration settings that I was able to read with the logic analyzer, i was able to setup my arduino to speak the same language and on the same frequency. I was also able to read the commands being sent by the remote and they matched what I was seeing with the logic analyzer.
Setting up the Arduino to send the same commands was next.
I was able to program the arduino to send the commands to the CC2500 module and the bed responded.
Taking this further, I setup a Particle program to create an interface and functions that can be called to send the commands to the bed. This interface allowed SmartThings to interact with the Particle Photon and send commands. Next step was to setup the smartthings device so that it acted like a switch that could be controlled by alexa.
All the code is now available on my GitHub at the Github link.
This project uses a Particle Photon and a SmartThings hub. You could also just use the code and use a normal Arduino Device. You will need a CC2500 Transmitter. These can be found for <$3 on ebay. Be sure to setup an anenna on it, or get one that has a built in antenna. I used a 2inch piece of wire as the antenna and it works fine. I'm not sure the range. I put it under my bed near the control boxes.