Link to this comparison view

fpga_fan_controller [2016/08/25 19:32]
joel [GNU Radio]
fpga_fan_controller [2017/12/06 11:18]
Line 1: Line 1:
-====== FPGA Fan Controller ====== 
-My Ceiling fan is controlled by a [[https://www.amazon.com/Hunter-27185-Light-Remote-Control/dp/B00002NC0D|Hunter Fan Co 27185]] remote control, which transmits control messages over RF at 350MHz. 
  
-{{:hunter_fan:20160612-ceiling-fan.jpg?0x250|}} 
-{{:hunter_fan:20160612-controller-front.jpg?0x250|}} 
-{{:hunter_fan:20160612-controller-back.jpg?0x250|}} 
- 
-Internally the device uses a [[http://www.futurlec.com/Datasheet/Others/HT12E.pdf|HT12E]] encoder chip driving a 350MHz LC oscillator. 
- 
-===== Capture ===== 
-==== Gqrx ==== 
-{{:hunter_fan:20160618-gqrx-capture.jpg?0x500|}} 
- 
-I used my RTLSDR and [[http://gqrx.dk/|Gqrx]] to capture transmissions from the remote, which revealed the following things... 
- 
-  * When buttons are pressed, bunches of packets are transmitted in [[https://en.wikipedia.org/wiki/On-off_keying|OOK]] (On-off keying). 
-  * The carrier frequency is not at all accurately tuned to 350MHz, and drifts significantly based on the transmitter's relative to other objects, and to temperature. This is to be expected with an LC oscillator with no accurate frequency reference. 
- 
- 
-==== Inspectrum ==== 
-{{:hunter_fan:20160612-inspectrum.jpg?500x|}} 
- 
-[[https://github.com/miek/inspectrum|Inspectrum]] is a promising open source project that enables very quick and easy analysis of narrow-band signals contained in IQ-data captures. 
- 
-Analysis of the transmissions captured by Gqrx revealed that the packets are sent in a PWM (pulse-width modulation) scheme over OOK. 
-==== GNU Radio ==== 
-{{:hunter_fan:20160612-envelope-detector.png?750x|}} 
- 
-{{:hunter_fan:20160612-threshold.png?0x350|}} 
- 
-With the modulation of the packets now known, I used GNU radio to construct a real-time version of the Inspectrum demodulator. 
- 
-===== iCE40 FPGA Implementation ===== 
-{{:hunter_fan:20160612-ice40hx8k-board.jpg?0x250}} 
-{{:hunter_fan:fpga-structure.png?0x250|}} 
-{{:hunter_fan:20160612-transmit-signal.png?0x250|}} 
-{{:hunter_fan:20160618-completed-unit.jpg?0x250|}} 
fpga_fan_controller.txt ยท Last modified: 2017/12/06 11:18 (external edit)