Skip to content

Wrong CRC algorithm#17

Description

@roniemartinez

Description

Thanks for creating this awesome library! 馃殌

I've been trying to work out what is wrong with the generated B64 and Z64 Graphics Field (^GF) as these formats don't print on our Zebra ZD420 printer. We can only print the ASCII format which takes a lot of time because the payload is huge.

According to the specs, our firmware does support ZB64. Whenever, I try to print in Z64 format, there is a "data transfer" ongoing as shown by the printer indicator but nothing happens as soon as it's done. The printer is probably silently rejecting the ZPL command.

I've tried several changes to the zebrafy code to figure out what is wrong and found out that the CRC generated is not valid. Even though Labelary shows the image in their viewer with the original CRC, it is not valid!!! Please note that Labelary is not Zebra hardware.

What worked for me is to use XMODEM (https://reveng.sourceforge.io/crc-catalogue/all.htm#crc.cat.crc-16-xmodem). I've tried a few algorithm but this is the only one that worked. You can test this with the algrorithms provided by https://pypi.org/project/fastcrc/

Hoping a fix will be released soon. Thanks!

Python version

3.13.3

Zebrafy version

1.2.2

Steps to reproduce

Just use the formats B64 or Z64 (use Z64!!! as it is smaller)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions