0
\$\begingroup\$

I'm looking to create a microcontroller that would allow me to drive my ceiling lamp that is controlled by 2.4GHz remote. The end goal is to integrate it with home automation tools, and forget about extra remote.

I used SDR radio (hackrf one) to get a better understanding on the communication. Given that the lamp was pretty cheap I didn't expect it to be a complex protocol. I found following things:

  • The remote always uses the same frequency for communication (2.449 GHz)
  • The remote codes doesn't change over time (I can drive the lamp from my SDR using my records with no problem)
  • The remote codes/waves seems to be fairly simple (see images later).

And now I come to a problem how do I replicate this signal? Something that will work best for me is what type of modules (ideally playing well with esp/arduino) should I be looking for?

Having no experience with wireless communication I wrongly assumed that I'll be able to hook up e.g. nRF24L01+ module to esp32 and just do something like delay(16); rf.high(); delay( 16 ); rf.low();. However, after reading about this particular radio module it turned out it has a fixed communication protocol which won't fit this purpose.

For a reference I'll put sniffed code visualization taken with GNU Radio and imported to Audacity for visualization:

  • the entire signal sequence: the entire signal sequence
  • First batch of codes: First batch of codes
  • Maximal zoom on "1bit" signal wave: Maximal zoom on "1bit" signal wave
  • Maximal zoom on "1bit" with less gain as requested in comments: enter image description here
\$\endgroup\$
9
  • \$\begingroup\$ Also I know that one suggestion might be to sacrifice the remote that I have and use a microctonroller to drive it's buttons - but I have discarded this approach as it is space ineffective and I also like to have the remote in the closet as a "backup" plan 🙂 \$\endgroup\$ Commented Apr 14, 2020 at 18:10
  • \$\begingroup\$ I also wanted to check what microcontroller is used on the remote itself, but unfortunately it's unmarked and looks like a all-in-one chip as there's not much on the board except this chip imgur.com/Ou6JFMd (it's a single side board) \$\endgroup\$ Commented Apr 14, 2020 at 18:13
  • 2
    \$\begingroup\$ Stop commenting on your own question! Add the extra information in the question. There's an Edit button to update the question. \$\endgroup\$ Commented Apr 14, 2020 at 18:50
  • \$\begingroup\$ You must know what standard / protocol that "2.4 GHz remote + lamp" are using. If it is for example using Zigbee you will need a Zigbee transmitter to control it. A MCU and a "generic 2.4 GHz transmitter" will not work. Without sophisticated equipment (i.e. An RF signal analyzer, something like this: rohde-schwarz.com/us/products/test-and-measurement/… there is no way you can be sure what signal is used. BTW, those analyzers cost more than a car. Cheaper option: open the remote and lamp and see what ICs are used. \$\endgroup\$ Commented Apr 14, 2020 at 18:55
  • \$\begingroup\$ @Bimpelrekkie are you're saying that I won't be able to understand the signal sequence with hackrf one, even though I can reliably trigger the lamp from recorded signal? \$\endgroup\$ Commented Apr 14, 2020 at 19:09

1 Answer 1

1
\$\begingroup\$

There are RF protocols that are OOK (on-off keying) versions of IR ones - that's probably what this is. You may find this Arduino discussion useful: https://forum.arduino.cc/index.php?topic=532534.0

\$\endgroup\$
2
  • \$\begingroup\$ Thanks for the suggestion! Though my use case is a little simpler - there are no rolling codes. \$\endgroup\$ Commented Apr 14, 2020 at 19:15
  • \$\begingroup\$ also, your zoomed in version does suggest something happens to the phase, but it's not clear – as said, your recording is distorted by being clipped. \$\endgroup\$ Commented Apr 14, 2020 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.