Forum: GNU Radio gr_crc16

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
B8e644018d61c5dbd80cc8a00d2e5935?d=identicon&s=25 Luis Simoes (Guest)
on 2006-03-31 14:47
(Received via mailing list)
Hi all,

I need to check payload data with only 2 crc bytes. Unfortunately my
transmitter sends only data with 2 crc bytes. There is only the gr_crc32
module in gnuradio core with an algorithm that uses a table array with
elements. I want to ask if there is someone out there who has had a
problem and implemented a gr_crc16 module? Please give me some help
because I
don't know how was created this table and which algorithm was used?

Thanks in advance,
59fc5ee50876aac96c5d040101232736?d=identicon&s=25 Pete Soper (Guest)
on 2006-03-31 16:04
(Received via mailing list)
Hi Luis,
             There have been two flavors of 16 bit CRCs in use for a
long time and you probably need to determine which of these your
transmitter uses.
    The clue is that the "CCITT" algorithm calls for the computed CRC to
be initialized to all ones, while for the "other" one (called "CRC16" in
the 70s when I was implementing HDLC  the hard way)  a zero initial
value is used.  A quick set of Googles suggests both polynomials are
still in use.
     The other discriminator is that CCITT is called "polynomial 0x1021"
while CRC16 is "0x8005". In other notation CCITT  is X^16 + X^12 + X^5 +
       If you don't get a solution within a week, remind me by direct
mail, as I'll be past a deadline then. Adding this to gr would be the
right speed for my old brain if somebody hasn't already written it.

Pete AD4L
This topic is locked and can not be replied to.