Skip to main content
CRC Calc

CRC-16 / LJ1200

Width16-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0xBDF4

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

0x00000x6F630xDEC60xB1A50xD2EF0xBD8C0x0C290x634A0xCABD0xA5DE0x147B0x7B180x18520x77310xC6940xA9F7
0xFA190x957A0x24DF0x4BBC0x28F60x47950xF6300x99530x30A40x5FC70xEE620x81010xE24B0x8D280x3C8D0x53EE
0x9B510xF4320x45970x2AF40x49BE0x26DD0x97780xF81B0x51EC0x3E8F0x8F2A0xE0490x83030xEC600x5DC50x32A6
0x61480x0E2B0xBF8E0xD0ED0xB3A70xDCC40x6D610x02020xABF50xC4960x75330x1A500x791A0x16790xA7DC0xC8BF
0x59C10x36A20x87070xE8640x8B2E0xE44D0x55E80x3A8B0x937C0xFC1F0x4DBA0x22D90x41930x2EF00x9F550xF036
0xA3D80xCCBB0x7D1E0x127D0x71370x1E540xAFF10xC0920x69650x06060xB7A30xD8C00xBB8A0xD4E90x654C0x0A2F
0xC2900xADF30x1C560x73350x107F0x7F1C0xCEB90xA1DA0x082D0x674E0xD6EB0xB9880xDAC20xB5A10x04040x6B67
0x38890x57EA0xE64F0x892C0xEA660x85050x34A00x5BC30xF2340x9D570x2CF20x43910x20DB0x4FB80xFE1D0x917E
0xB3820xDCE10x6D440x02270x616D0x0E0E0xBFAB0xD0C80x793F0x165C0xA7F90xC89A0xABD00xC4B30x75160x1A75
0x499B0x26F80x975D0xF83E0x9B740xF4170x45B20x2AD10x83260xEC450x5DE00x32830x51C90x3EAA0x8F0F0xE06C
0x28D30x47B00xF6150x99760xFA3C0x955F0x24FA0x4B990xE26E0x8D0D0x3CA80x53CB0x30810x5FE20xEE470x8124
0xD2CA0xBDA90x0C0C0x636F0x00250x6F460xDEE30xB1800x18770x77140xC6B10xA9D20xCA980xA5FB0x145E0x7B3D
0xEA430x85200x34850x5BE60x38AC0x57CF0xE66A0x89090x20FE0x4F9D0xFE380x915B0xF2110x9D720x2CD70x43B4
0x105A0x7F390xCE9C0xA1FF0xC2B50xADD60x1C730x73100xDAE70xB5840x04210x6B420x08080x676B0xD6CE0xB9AD
0x71120x1E710xAFD40xC0B70xA3FD0xCC9E0x7D3B0x12580xBBAF0xD4CC0x65690x0A0A0x69400x06230xB7860xD8E5
0x8B0B0xE4680x55CD0x3AAE0x59E40x36870x87220xE8410x41B60x2ED50x9F700xF0130x93590xFC3A0x4D9F0x22FC

CRC Source Code

/* 
 * Model: CRC-16 / LJ1200 (16-bit)
 * Poly: 0x6F63, Init: 0x0000, XorOut: 0x0000
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint16_t crc_table[256] = {
  0x0000, 0x6F63, 0xDEC6, 0xB1A5, 0xD2EF, 0xBD8C, 0x0C29, 0x634A, 
  0xCABD, 0xA5DE, 0x147B, 0x7B18, 0x1852, 0x7731, 0xC694, 0xA9F7, 
  0xFA19, 0x957A, 0x24DF, 0x4BBC, 0x28F6, 0x4795, 0xF630, 0x9953, 
  0x30A4, 0x5FC7, 0xEE62, 0x8101, 0xE24B, 0x8D28, 0x3C8D, 0x53EE, 
  0x9B51, 0xF432, 0x4597, 0x2AF4, 0x49BE, 0x26DD, 0x9778, 0xF81B, 
  0x51EC, 0x3E8F, 0x8F2A, 0xE049, 0x8303, 0xEC60, 0x5DC5, 0x32A6, 
  0x6148, 0x0E2B, 0xBF8E, 0xD0ED, 0xB3A7, 0xDCC4, 0x6D61, 0x0202, 
  0xABF5, 0xC496, 0x7533, 0x1A50, 0x791A, 0x1679, 0xA7DC, 0xC8BF, 
  0x59C1, 0x36A2, 0x8707, 0xE864, 0x8B2E, 0xE44D, 0x55E8, 0x3A8B, 
  0x937C, 0xFC1F, 0x4DBA, 0x22D9, 0x4193, 0x2EF0, 0x9F55, 0xF036, 
  0xA3D8, 0xCCBB, 0x7D1E, 0x127D, 0x7137, 0x1E54, 0xAFF1, 0xC092, 
  0x6965, 0x0606, 0xB7A3, 0xD8C0, 0xBB8A, 0xD4E9, 0x654C, 0x0A2F, 
  0xC290, 0xADF3, 0x1C56, 0x7335, 0x107F, 0x7F1C, 0xCEB9, 0xA1DA, 
  0x082D, 0x674E, 0xD6EB, 0xB988, 0xDAC2, 0xB5A1, 0x0404, 0x6B67, 
  0x3889, 0x57EA, 0xE64F, 0x892C, 0xEA66, 0x8505, 0x34A0, 0x5BC3, 
  0xF234, 0x9D57, 0x2CF2, 0x4391, 0x20DB, 0x4FB8, 0xFE1D, 0x917E, 
  0xB382, 0xDCE1, 0x6D44, 0x0227, 0x616D, 0x0E0E, 0xBFAB, 0xD0C8, 
  0x793F, 0x165C, 0xA7F9, 0xC89A, 0xABD0, 0xC4B3, 0x7516, 0x1A75, 
  0x499B, 0x26F8, 0x975D, 0xF83E, 0x9B74, 0xF417, 0x45B2, 0x2AD1, 
  0x8326, 0xEC45, 0x5DE0, 0x3283, 0x51C9, 0x3EAA, 0x8F0F, 0xE06C, 
  0x28D3, 0x47B0, 0xF615, 0x9976, 0xFA3C, 0x955F, 0x24FA, 0x4B99, 
  0xE26E, 0x8D0D, 0x3CA8, 0x53CB, 0x3081, 0x5FE2, 0xEE47, 0x8124, 
  0xD2CA, 0xBDA9, 0x0C0C, 0x636F, 0x0025, 0x6F46, 0xDEE3, 0xB180, 
  0x1877, 0x7714, 0xC6B1, 0xA9D2, 0xCA98, 0xA5FB, 0x145E, 0x7B3D, 
  0xEA43, 0x8520, 0x3485, 0x5BE6, 0x38AC, 0x57CF, 0xE66A, 0x8909, 
  0x20FE, 0x4F9D, 0xFE38, 0x915B, 0xF211, 0x9D72, 0x2CD7, 0x43B4, 
  0x105A, 0x7F39, 0xCE9C, 0xA1FF, 0xC2B5, 0xADD6, 0x1C73, 0x7310, 
  0xDAE7, 0xB584, 0x0421, 0x6B42, 0x0808, 0x676B, 0xD6CE, 0xB9AD, 
  0x7112, 0x1E71, 0xAFD4, 0xC0B7, 0xA3FD, 0xCC9E, 0x7D3B, 0x1258, 
  0xBBAF, 0xD4CC, 0x6569, 0x0A0A, 0x6940, 0x0623, 0xB786, 0xD8E5, 
  0x8B0B, 0xE468, 0x55CD, 0x3AAE, 0x59E4, 0x3687, 0x8722, 0xE841, 
  0x41B6, 0x2ED5, 0x9F70, 0xF013, 0x9359, 0xFC3A, 0x4D9F, 0x22FC
};

uint16_t calculate_crc(const uint8_t *data, size_t length) {
    uint16_t crc = 0x0000;
    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 >> 8) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0x0000;
}

About CRC-16/LJ1200

CRC-16/LJ1200 is used by the LJ1200 amateur packet-radio telemetry protocol.

CRC-16/LJ1200 is a 16-bit CRC model defined by polynomial 0x6F63, an initial register value of 0x0000, and final XOR 0x0000. It uses normal, non-reflected input and output processing.

Documented application context for this model includes LJ1200, Amateur packet radio, Telemetry links. 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
0xBDF4

Model characteristics

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

Bit order
Normal
Register start
0x0000
Final XOR
0x0000
Published check
0xBDF4

Implementation checks for CRC-16/LJ1200

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

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

Complete CRC-16/LJ1200 parameters

CRC parameter guide
ParameterValueMeaningReference
Width16 bitsCRC register and result widthRead guide
Poly0x6F63Generator polynomial without the leading termRead guide
Init0x0000Initial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0x0000Final value XORed with the CRC registerRead guide
Check0xBDF4CRC of ASCII “123456789”Read guide
ResidueNot listedExpected residue after appending a valid CRCRead guide
AliasesLJ1200 CRC-16

Where CRC-16/LJ1200 is used

  • 01LJ1200
  • 02Amateur packet radio
  • 03Telemetry links

CRC-16/LJ1200 FAQ

What is the check value for CRC-16/LJ1200?

For the standard ASCII test input 123456789, the check value of CRC-16/LJ1200 is 0xBDF4.

What polynomial does CRC-16/LJ1200 use?

CRC-16/LJ1200 uses the 16-bit polynomial 0x6F63.

Does CRC-16/LJ1200 use reflected input and output?

For CRC-16/LJ1200, RefIn is No and RefOut is No.

What is CRC-16/LJ1200 commonly confused with?

The closest published model by parameter overlap is CRC-16/DECT-X, differing from CRC-16/LJ1200 in polynomial.