CRC32 algorithm

Hello there,

We are trying to use AT+QFCRC command to check if an existing file matches with stored version. We have done some tests in order to identify the algorithm used for crc32 with no success. The test is very straightforward:

  • Upload 1 byte (or a few bytes, it doesn’t matter)
  • Get crc with AT+QFCRC command
  • Calculate crc32 (there are a lot of online resources for this)
  • Compare.

For this test i’ve used 1 byte (“0” ascii char)

Upload result:

␊CONNECT␍

␊+QFUPL: 1,3000␍␊

␍␊

OK␍␊
CRC command result:
+QFCRC: 0xD4326D90,0x285C,0xC1FB

What is the algorithm used here for 32bits?

This are the results of others algorithms i’ve found:

CRC-32 0xF4DBDF21
CRC-32/BZIP2 0x65C52DDB
CRC-32C 0x629E1AE0
CRC-32D 0xB0C0CDB4
CRC-32/JAMCRC 0x0B2420DE
CRC-32/MPEG-2 0x9A3AD224
CRC-32/POSIX 0x2BCD926F
CRC-32Q 0x28283560
CRC-32/XFER 0x00001F10

Thanks.

thanks for contacting us, could you pls tell us the which module type or firmware version currently?

Hello Niki Liu,

This is the requested information supplied by a AT+QGMR command:

Quectel
BG96
Revision: BG96MAR02A08M1G
BG96MAR02A08M1G_01.013.01.013