I have a problem with two access control panels, one is Hikvision and the other one is a ZKTeco CCA-400, those two panels see the Wiegand card in a different way, this is a big problem because I cannot import cards from ZKteco to Hikvision or the other way around.
Currently I have a card that is physically labeled with the following: 0002821060 043,03012
Hikvision panel sees the card as: 2821060 ZKTeco panel sees the card as: 04303012
My final goal is to understand why is this happening and build a custom Wiegand rule on the Hikvision in order to transform the card id's to be seen identical by both panels.
I searched and couldn't figure it out, so in my pursuit to debug this issue I connected a Wiegand reader to a Arduino UNO just to see that is coming on the wire from the reader, the results just made the problem even confusing:
I tried to Wiegand libraries: https://github.com/paulo-raca/YetAnotherArduinoWiegandLibrary and https://github.com/monkeyboard/Wiegand-Protocol-Library-for-Arduino
Surprise! The first library sees the card as: Read 26 bits. 0001010110000101111000100100000000 FC = 43, CC = 3012 This is exactly what the ZKTeco panel sees.
The second library sees the card as: Card readed: 24bits / 2B0BC4 That in decimal is 2821060, exactly what the Hikvision is seeing.
Can anyone explain to me why this is happening ? From reading the docs of the protocol is pretty straight forward and should not really have two independent ID's.
Hopefully I managed to explain the issue in a good way.
Thanks!