The reader is labeled :
- on the front : RF ID Reader
- on the back : D302 EM Card Encoder MADE IN CHINA
This reader / writer should Work with cards : EM4305 and T5567.
After some quick research it appears the reader has a CH341 USB / Serial Chip. To make it work under OSX the driver must be installed.
Check
- http://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/
- https://tzapu.com/making-ch340-ch341-serial-adapters-work-under-el-capitan-os-x/
Once driver are installed, the RFID reader can be accessed with the following parameters :
- Speed : 4800 bauds
- Bits : 8
- Parity : none
- Stop : 1
Initialline states
- DTR Off
- RTS Off
Take care to wait some time ~ 500ms after opening serial port before sending any command. If the command is sent too early the reader discard it.
After some quick investigations, it appears the commands look like the following scheme :
02 | NN NN | LL | PP .. PP | CC | 03
- 02 : start byte
- NN NN : command to execute
- LL : payload length
- PP .. PP : payload if needed
- CC : checksum 02 ^ NN ^ NN ^ LL ^ PP ... ^ PP = CC (all bytes including the start one are xor'ed to compute the checksum)
- 03 : stop byte
CMD 01 00 : HELLO / ACK
-> 02 01 00 00 03 03 [send hello to the reader]
<- 02 01 00 00 03 03 [recv acknowledge from the reader]
CMD 01 a4 : READ
-> 02 01 a4 0b 00 00 00 00 00 00 00 00 00 00 00 ac 03 [send read card]
<- 02 01 00 05 XX XX XX XX XX CC O3 [recv card number XX XX XX XX XX with checksum CC]
CMD 01 a5 : WRITE
WP can be 0x00 (Read / Write) or 0xff (Read only). Once Write protect byte has been set, the card cannot be updated anymore
-> 02 01 a5 0b 00 00 00 00 00 WP XX XX XX XX XX CC 03 [send write card number XX XX XX XX XX with checksum CC]
<- 02 01 00 00 03 03 [recv acknowledge from the reader]
// TODO : check errors codes, ...