Skip to main content
CRC Calc

CRC-8 / DVB-S2

Width8-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0xBC

Similar CRC Algorithms

Result is calculated from the current input. Check is the published verification value for the standard input 123456789. Click another algorithm to view its detail page.

CRC Lookup Table

0x000xD50x7F0xAA0xFE0x2B0x810x540x290xFC0x560x830xD70x020xA80x7D
0x520x870x2D0xF80xAC0x790xD30x060x7B0xAE0x040xD10x850x500xFA0x2F
0xA40x710xDB0x0E0x5A0x8F0x250xF00x8D0x580xF20x270x730xA60x0C0xD9
0xF60x230x890x5C0x080xDD0x770xA20xDF0x0A0xA00x750x210xF40x5E0x8B
0x9D0x480xE20x370x630xB60x1C0xC90xB40x610xCB0x1E0x4A0x9F0x350xE0
0xCF0x1A0xB00x650x310xE40x4E0x9B0xE60x330x990x4C0x180xCD0x670xB2
0x390xEC0x460x930xC70x120xB80x6D0x100xC50x6F0xBA0xEE0x3B0x910x44
0x6B0xBE0x140xC10x950x400xEA0x3F0x420x970x3D0xE80xBC0x690xC30x16
0xEF0x3A0x900x450x110xC40x6E0xBB0xC60x130xB90x6C0x380xED0x470x92
0xBD0x680xC20x170x430x960x3C0xE90x940x410xEB0x3E0x6A0xBF0x150xC0
0x4B0x9E0x340xE10xB50x600xCA0x1F0x620xB70x1D0xC80x9C0x490xE30x36
0x190xCC0x660xB30xE70x320x980x4D0x300xE50x4F0x9A0xCE0x1B0xB10x64
0x720xA70x0D0xD80x8C0x590xF30x260x5B0x8E0x240xF10xA50x700xDA0x0F
0x200xF50x5F0x8A0xDE0x0B0xA10x740x090xDC0x760xA30xF70x220x880x5D
0xD60x030xA90x7C0x280xFD0x570x820xFF0x2A0x800x550x010xD40x7E0xAB
0x840x510xFB0x2E0x7A0xAF0x050xD00xAD0x780xD20x070x530x860x2C0xF9

CRC Source Code

/* 
 * Model: CRC-8 / DVB-S2 (8-bit)
 * Poly: 0xD5, Init: 0x00, XorOut: 0x00
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint8_t crc_table[256] = {
  0x00, 0xD5, 0x7F, 0xAA, 0xFE, 0x2B, 0x81, 0x54, 
  0x29, 0xFC, 0x56, 0x83, 0xD7, 0x02, 0xA8, 0x7D, 
  0x52, 0x87, 0x2D, 0xF8, 0xAC, 0x79, 0xD3, 0x06, 
  0x7B, 0xAE, 0x04, 0xD1, 0x85, 0x50, 0xFA, 0x2F, 
  0xA4, 0x71, 0xDB, 0x0E, 0x5A, 0x8F, 0x25, 0xF0, 
  0x8D, 0x58, 0xF2, 0x27, 0x73, 0xA6, 0x0C, 0xD9, 
  0xF6, 0x23, 0x89, 0x5C, 0x08, 0xDD, 0x77, 0xA2, 
  0xDF, 0x0A, 0xA0, 0x75, 0x21, 0xF4, 0x5E, 0x8B, 
  0x9D, 0x48, 0xE2, 0x37, 0x63, 0xB6, 0x1C, 0xC9, 
  0xB4, 0x61, 0xCB, 0x1E, 0x4A, 0x9F, 0x35, 0xE0, 
  0xCF, 0x1A, 0xB0, 0x65, 0x31, 0xE4, 0x4E, 0x9B, 
  0xE6, 0x33, 0x99, 0x4C, 0x18, 0xCD, 0x67, 0xB2, 
  0x39, 0xEC, 0x46, 0x93, 0xC7, 0x12, 0xB8, 0x6D, 
  0x10, 0xC5, 0x6F, 0xBA, 0xEE, 0x3B, 0x91, 0x44, 
  0x6B, 0xBE, 0x14, 0xC1, 0x95, 0x40, 0xEA, 0x3F, 
  0x42, 0x97, 0x3D, 0xE8, 0xBC, 0x69, 0xC3, 0x16, 
  0xEF, 0x3A, 0x90, 0x45, 0x11, 0xC4, 0x6E, 0xBB, 
  0xC6, 0x13, 0xB9, 0x6C, 0x38, 0xED, 0x47, 0x92, 
  0xBD, 0x68, 0xC2, 0x17, 0x43, 0x96, 0x3C, 0xE9, 
  0x94, 0x41, 0xEB, 0x3E, 0x6A, 0xBF, 0x15, 0xC0, 
  0x4B, 0x9E, 0x34, 0xE1, 0xB5, 0x60, 0xCA, 0x1F, 
  0x62, 0xB7, 0x1D, 0xC8, 0x9C, 0x49, 0xE3, 0x36, 
  0x19, 0xCC, 0x66, 0xB3, 0xE7, 0x32, 0x98, 0x4D, 
  0x30, 0xE5, 0x4F, 0x9A, 0xCE, 0x1B, 0xB1, 0x64, 
  0x72, 0xA7, 0x0D, 0xD8, 0x8C, 0x59, 0xF3, 0x26, 
  0x5B, 0x8E, 0x24, 0xF1, 0xA5, 0x70, 0xDA, 0x0F, 
  0x20, 0xF5, 0x5F, 0x8A, 0xDE, 0x0B, 0xA1, 0x74, 
  0x09, 0xDC, 0x76, 0xA3, 0xF7, 0x22, 0x88, 0x5D, 
  0xD6, 0x03, 0xA9, 0x7C, 0x28, 0xFD, 0x57, 0x82, 
  0xFF, 0x2A, 0x80, 0x55, 0x01, 0xD4, 0x7E, 0xAB, 
  0x84, 0x51, 0xFB, 0x2E, 0x7A, 0xAF, 0x05, 0xD0, 
  0xAD, 0x78, 0xD2, 0x07, 0x53, 0x86, 0x2C, 0xF9
};

uint8_t calculate_crc(const uint8_t *data, size_t length) {
    uint8_t crc = 0x00;
    for (size_t i = 0; i < length; i++) {
        #if 0
        uint8_t idx = (uint8_t)(crc ^ data[i]);
        crc = (crc >> 8) ^ crc_table[idx];
        #else
        uint8_t idx = (uint8_t)((crc >> 0) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0x00;
}

About CRC-8/DVB-S2

CRC-8/DVB-S2 is used in second-generation digital satellite broadcasting.

CRC-8/DVB-S2 is a 8-bit CRC model defined by polynomial 0xD5, an initial register value of 0x00, and final XOR 0x00. It uses normal, non-reflected input and output processing.

Documented application context for this model includes DVB-S2, Satellite broadcasting, Transport streams. The calculator above applies this exact parameter set to the current input; the published Check value below is instead the fixed verification result for ASCII 123456789.

Standard test vector

CRC implementations are commonly verified with the ASCII input 123456789.

Input format
ASCII
Input
123456789
Expected CRC
0xBC
Residue
0x00

Model characteristics

A model is identified by its complete parameter set, not its polynomial alone.

Bit order
Normal
Register start
0x00
Final XOR
0x00
Published check
0xBC

Implementation checks for CRC-8/DVB-S2

  • Use a 8-bit register and polynomial 0xD5.
  • Initialize the register to 0x00 and use XorOut 0x00 exactly as listed; changing either value defines a different model.
  • Verify the implementation with ASCII “123456789”; the expected result is 0xBC.

Continue with the main calculator, browse the algorithm catalog, compare models in the Algorithm Reference section, or generate a lookup table.

Complete CRC-8/DVB-S2 parameters

CRC parameter guide
ParameterValueMeaningReference
Width8 bitsCRC register and result widthRead guide
Poly0xD5Generator polynomial without the leading termRead guide
Init0x00Initial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0x00Final value XORed with the CRC registerRead guide
Check0xBCCRC of ASCII “123456789”Read guide
Residue0x00Expected residue after appending a valid CRCRead guide
AliasesDVB-S2 CRC-8

Where CRC-8/DVB-S2 is used

  • 01DVB-S2
  • 02Satellite broadcasting
  • 03Transport streams

CRC-8/DVB-S2 FAQ

What is the check value for CRC-8/DVB-S2?

For the standard ASCII test input 123456789, the check value of CRC-8/DVB-S2 is 0xBC.

What polynomial does CRC-8/DVB-S2 use?

CRC-8/DVB-S2 uses the 8-bit polynomial 0xD5.

Does CRC-8/DVB-S2 use reflected input and output?

For CRC-8/DVB-S2, RefIn is No and RefOut is No.

What is CRC-8/DVB-S2 commonly confused with?

The closest published model by parameter overlap is CRC-8/GSM-A, differing from CRC-8/DVB-S2 in polynomial.