O
O
Oleg Nerwin2014-12-26 10:13:11
Arduino
Oleg Nerwin, 2014-12-26 10:13:11

How to find out the checksum calculation algorithm?

I'm trying to connect a wireless sensor from a noname weather station to a computer using arduino. I connected to the base station to the output of the 433 MHz receiver, but due to the noisiness of the range, I get a lot of extra.
The transmission packet is almost parsed, it remains to understand how crc is calculated in order to accurately find your packet. An example of a transmission packet ( the
packet is sent 2 times, the second time without the last 8 bits) : , 2 bits low battery signal, 2 bits channel number, 4 bits 1111, 16 bits random numbers (logical should be crc). How to find out how these 16 bits are counted?
tried to search for a packet by the first bits and 4 ones at the end, but still a lot of left packets.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
V
Vitaly Peretyatko, 2014-12-26
@viperet

there is an article about CRC reverse engineering, you can try it. www.cosc.canterbury.ac.nz/greg.ewing/essays/CRC-Re...
it also mentions the pycrc program, which can calculate crc using common algorithms - you can try to find

J
jik, 2014-12-28
@kearins

I would do this: I would log the data and record what readings were on the device. When a dozen or two lines accumulate, you can start analyzing. If two lines of binary data correspond to the same readings on the device, then the checksums of the binary lines must match. If they do not match, then this is either not a checksum, or it is shorter than 16 bits. Then compare the strings that differ only in temperature readings by only one digit and analyze the change in the checksum. In this way, make sure how much the checksum actually takes, if any. Perhaps there is still time.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question