I'm trying to decode the serial wireless transmission from a 433MHz power monitor. This unit sends a short data burst about every 32 seconds. I can see data coming in, and using the Parallax 433 MHz RF Transceiver, I can filter out noise and have a fairly good idea when the data's coming in.
Unfortunately, I have no idea of the bitrate, or whether the bits are inverted, or what's being transmitted. Is there any way that, by looking at a bit stream, for me to know if I'm using the right bitrate?
I don't think to wrap antenna or ever ground it will change situation.
Unit will continue transmitting data, whatever noise it can pickup,
let say it's own input circuitry.
Protocol analyzer, sniffers and other technological "breaking enigma" option is
good, but only for federals with unlimited budgets.
I'd suggest, it'd be easier to decode message that is not a noise, but
something repeatable over and over again.
if it's power monitor, get one more same kind device, that will transmit in close proximity to your monitor, stable power signal over the time.
1). Turn on transmitter, set power that definitely will suppress any environmental garbage.
2). Make a dump of the stream from receiver, or watch it on you serial monitor attentively.
3). Change a power of your own RF source.
4). Take a second dump, (or don't look around if it stream on serial monitor -):
5). Compare results.
a) If no difference, most likely, bit-rate settings mismatch (receiver and analyzer).
Change serial settings of the analyzer, go to step 1.
b) if you notice the difference at least in one byte, it could be data-byte RSSI.
Go to step 3, play around with Tx signal several times, to gather more information.
O'K than, so it's not RF power, this all about AC electrical power.
In my previous post I give universal algorithm.
If you deal with AC,, so change AC power level (current or load).
The idea to solve the puzzle, "black box - device" is:
change input (RF, AC, water, gaz etc) and look at the output.
You have to find a pattern.
No pattern, looks mess before and after - bit-rate is wrong.
It is probably easiest to start out assuming certain data formats (async, 1200bps, 8databits 1 startbit one stopbit) and see if it fits. Then try inverted async. Don't forget that this is a cheap consumer product that probably contains a standard microprocessor of some kind, and it probably uses a data format supported by that micro, which is probably an async uart (I2C and SPI being fundamentally more-than-one-wire protocols.)
Can you take apart the existing receiver (or transmitter, except that would be more dangerous) and see what's there? It may have a little 433MHz module just like we use, in which case you can look at where it's being fed from/to.
You can use your arduino as a sort of one-wire logic analyzer for things like this. Sample the incoming bitstream from the receiver module every 10 microseconds or so for the entire duration of the transmission, store the results in RAM and dump to a PC for display and interpretation. Or measure intervals between changes and send those...