1

I'm trying to understand what's happening with the 443 MHz receiver I've plugged into a Raspberry Pi3. When I plug the data pin into GPIO 21 and I run a simple python sniffer script to plot the results, I get a flat "ON" output after collecting samples for 5 seconds:

Connected

When I disconnect the data port and I run the sniffer script again, it's clearly not receiving any input: Disconnected

Any idea of what could be causing this?

  • I don't think I have any interference in the office.
  • Other answers suggest that the 5V signal should be converted to 3.3V.
  • The ground is connected on the 3.3V side, not sure if that's also a mistake (I'm a software guy, so kinda new to the hardware...)

Here is the tutorial I followed: http://www.instructables.com/id/Super-Simple-Raspberry-Pi-433MHz-Home-Automation/step2/Sniffing-the-handset-codes/

Here is my setup:

  • Black Ground
  • White 1 - Data
  • White 2 - LED (which seems to be always on as well)
  • Red - 5V power

Setup01 Setup02 Setup03

Here is the script:

from datetime import datetime
import matplotlib.pyplot as pyplot
import RPi.GPIO as GPIO

RECEIVED_SIGNAL = [[], []]  #[[time of reading], [signal reading]]
MAX_DURATION = 5
RECEIVE_PIN = 21

if __name__ == '__main__':
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(RECEIVE_PIN, GPIO.IN)
    cumulative_time = 0
    beginning_time = datetime.now()
    print '**Started recording**'
    while cumulative_time < MAX_DURATION:
        time_delta = datetime.now() - beginning_time
        RECEIVED_SIGNAL[0].append(time_delta)
        RECEIVED_SIGNAL[1].append(GPIO.input(RECEIVE_PIN))
        cumulative_time = time_delta.seconds 
    print '**Ended recording**'
    print len(RECEIVED_SIGNAL[0]), 'samples recorded'
    print ('{} seconds recorded'.format(cumulative_time))
    GPIO.cleanup()

    print '**Processing results**'
    for i in range(len(RECEIVED_SIGNAL[0])):
        RECEIVED_SIGNAL[0][i] = RECEIVED_SIGNAL[0][i].seconds + RECEIVED_SIGNAL[0][i].microseconds/1000000.0

    print '**Plotting results**'
    pyplot.plot(RECEIVED_SIGNAL[0], RECEIVED_SIGNAL[1])
    pyplot.axis([0, MAX_DURATION, -1, 2])
    pyplot.show()
  • 1
    Are you transmitting a signal? If you aren't the receiver will be receiving random static and the auto noise thresholding means you will receive a continuous series of highs and lows. Look at the signal with piscope. – joan Dec 12 '16 at 17:16
  • I tried sending a singal with 433 MHz garage door remote also, but didn't notice any difference. I have a matching RF transmitter which came with the receiver, but I haven't plugged it in yet. I'm trying to eliminate basic errors and get a sanity check first before I try to send signals via the transmitter. – Kiril Dec 12 '16 at 17:19
  • 1
    Honestly, it doesn't look like a flat ON, it seems that it's constantly switched ON and OFF. – Dmitry Grigoryev Dec 12 '16 at 17:39
  • @DmitryGrigoryev Maybe my terminology isn't correct, not sure what's the difference between "flat ON" and "constantly switched ON". I wasn't sure how to properly describe it. – Kiril Dec 12 '16 at 17:52
  • 1
    This example automatically applies a filter. abyz.co.uk/rpi/pigpio/examples.html#pdif2__433D – joan Dec 13 '16 at 10:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.