I have ordered and received a 433 MHz transmitter and receiver. Obviously my circuit is not working as expected otherwise I wouldn't be here.
When I look at the receiver data out signal with no 433 being transmitted, I see what looks like noise, i.e. random 1s and 0s. I assume this is because with no signal input the receiver tries to decode noise.
I have also bought a 3 swiutch 433 MHz wall plate that I am trying to use as a signal source. However, when I press the buttons, the receiver output does not change as far as I can see.
Those cheap 433mhz receivers and transmitters use OOK (on-off keying - think morse code) modulation, with AGC (automatic gain correction). They adjust the gain to get a ~50% duty cycle output (and yes, this means the encoding used at the transmitter has to have approximately 50% duty cycle. They usually include either a "training burst" of 50% duty cycle before the data, and/or re-send each packet a bunch of times, to ensure that the receiver can adjust it's gain and receive the message). You pretty much can't manually interpret the output - if you have it hooked up to a 'scope, you can often see the signal flash by, but you can't really trigger off it. Writing code to process the received datastream is really tricky until you get it mostly working, because you're pretty much flying blind.
You probably want to use a library for this - RadioHead is popular, and I think there are libraries to work with the common push-button remotes (there's a popular pair of chips that encode button pushes and decode them to a high/low signal - these are used almost universally on the push-button remote modules from cheap ebay sources, as well as in wireless doorbells)
Also, is it one of those green receivers with the odd looking plasticy component in the middle? Those suck (the same topology is used in most wireless doorbell receivers, and wireless thermometers; this is why those devices often get terrible range or are unreliable). Get the RXB-12 (or RXB-14) - they're like a $1 on ebay, get >10x the range, work at 3.3v, and are smaller.
I think I have a bad wall plate. I have a 433 MHz transmitter so I will program an arduino to generate a 1 KHz signal and use that to modulate the transmiter and then see what the receiver gives.
Yes I do have one of the cheap receivers with the plastic screw adjustment. I will check out the RXB-12 or 14.
I'll report back later after I do some poking around.
Well, unless you are looking at the output of the receiver with a scope, or have it connected to an arduino running the appropriate receiving code, you can't tell if it's getting the signal from the wallplate transmitter thing.
A 1kHz squarewave should come out of the receiver if you feed the transmitter the same; assuming you have a scope to see that with, that would verify that the transmitter (though not the part of the "wall plate" that generates the signal encoding which button was pressed) and receiver both worked.
It looks like my receiver is good. I can see a square wave generated by usinjg a 433 MHz transmitter. So, I must assume the wall plate is not transmitting properly. It is supposed to be 433 MHz from China.
barryjo:
It looks like my receiver is good. I can see a square wave generated by usinjg a 433 MHz transmitter. So, I must assume the wall plate is not transmitting properly. It is supposed to be 433 MHz from China.
You cannot deduce that from what you have described, unless you know that you can tell the difference between noise and data on the scope; I dont know how good your scope is, or how good you are at differentiating between signal briefly flashing by on the screen and noise (it can be hard).
But what you have determined is that the receiver works.
Even a picture of the guts of the wallplate thing would give a clue about whether it could potentially work, or if it uses a different encoding scheme entirely and would never work with an OOK receiver. Just because it is 433MHz doesnt tell you what encoding scheme it uses (wifi, nrf24's and baby monitors all use 2.4GHz band, but that doesnt mean they can talk to eachother)
The above is a link to the project I am trying to duplicate. The project is very clear. I am using the exact same components with the exception of the wall plate. However, the wall plate is statd to be a 433 MHz device. I have researched how the project works and all seem good.
With no received signal, yes, there is a noisy output from the receiver. When I turn on my own 433 MHz transmitter modulated with a square wave, the receiver output is a clean square wave at 1 kHz.
I do know that the wall plate transmits a pulse of data and yes it will be hard to see in the noise. However if the receiver seems to be working, it must be either the wall plate or perhaps the decoding software.
At this time, I am replacing the receiver output with the output of a IR decoder to see if the software will decode the demodulated IR signal. I tend to think that the modulatopr of IR remotes and the encoder for the wall plate is similar. However, so far, I cannot decode the IR receiver output so perhaps the problem is the software in some manner.
I am using a supplied library "rc-switch-master" I am thinking this might be the problem. You are correct in that I cannot easily see the piulse of data in the noise with my scope.
If the data encoding is not via amplitude modulation, your receiver will not detect it. See reply #5. However, when the transmitter is keyed one would expect to see the effect of the receiver AGC action on the output (a short stretch of no apparent "1"s and "0"s).
So here is a tough question. When there is no 433 being transmitted, then the receiver just looks at the noise and outputs a noisy signal. This signal is applied to the Arduino for decoding. If there is only noise coming from the receiver, then the arduino software is continually being interrupted by the noisy signal. It would seem to me that this would put a large load on the Arduino as it would be continually responding to the interrupt and trying to decode the noise. Comments?
The only way to identify the signal is to continuously look for "signal-like" characteristics in the receiver output.
Once you have the signal, you need to decode it and perform error detection and/or correction. Processors are incredibly cheap, so there is no problem dedicating one to that task.
This project uses one ESP32 to respond to Alexa voice commands and also to the 433 signals. The project works responding to Alexa via the wifi. What you say above is really obvious but I then to wonder about the load on the ESP if it is always responding to interrupts from the receiver. Today, I am going to replace the receiver with a IR decoder and use that as a signal source instead of the receiver. The IR decoder output is not noisy and might provide some clues. Anyway, this "simple" project is getting more interesting and a good learning experience.
Problems solved! As it turns out the 433 MHz wall plate did not contain a battery. After opening the unit the first time, it looked like a battery was installed but it was only the battery clip/cover. After installing a CR2032 battery, everything seems to work. I have learned a lot trying to make the system work without a battery