0

I am trying to create an application with remote controlling a Fingerprint sensor (Guide included on link) for enrolling and identifying fingerprints on are Raspberry PI 3 Model. There is a SDK_DEMO for this particular functionality on Windows only, which you can find in the Guile I mentioned above.

  • SDK_DEMO is written in C++ on Visual studio so I can't manipulate the code to run it on Raspberry Pi 3.

From the SDK_DEMO source code I figured out which command I need to send to execute tasks.

The Commands

CMD_NONE                = 0x00,
CMD_OPEN                = 0x01,
CMD_CLOSE               = 0x02,
CMD_USB_INTERNAL_CHECK  = 0x03,
CMD_CHANGE_BAUDRATE     = 0x04,
CMD_MODULE_INFO         = 0x06,

CMD_CMOS_LED            = 0x12,

CMD_ENROLL_COUNT        = 0x20,
CMD_CHECK_ENROLLED      = 0x21,
CMD_ENROLL_START        = 0x22,
CMD_ENROLL              = 0x23,
CMD_ENROLL1             = 0x23,
CMD_ENROLL2             = 0x24,
CMD_ENROLL3             = 0x25,
CMD_IS_PRESS_FINGER     = 0x26,

CMD_DELETE              = 0x40,
CMD_DELETE_ALL          = 0x41,

CMD_VERIFY              = 0x50,
CMD_IDENTIFY            = 0x51,
CMD_VERIFY_TEMPLATE     = 0x52,
CMD_IDENTIFY_TEMPLATE   = 0x53,

CMD_CAPTURE             = 0x60,

CMD_GET_IMAGE           = 0x62,
CMD_GET_RAWIMAGE        = 0x63,

CMD_GET_TEMPLATE        = 0x70,
CMD_ADD_TEMPLATE        = 0x71,
CMD_GET_DATABASE_START  = 0x72,
CMD_GET_DATABASE_END    = 0x73,

CMD_FW_UPDATE           = 0x80,
CMD_ISO_UPDATE          = 0x81,
CMD_FAKE_DETECTOR       = 0x91,

CMD_SET_SECURITY_LEVEL  = 0xF0,
CMD_GET_SECURITY_LEVEL  = 0xF1,

ACK_OK                  = 0x30,
NACK_INFO               = 0x31,

SKD_DEMO recognised the FingerPrint sensor as Mass Storage and somehow was running the commands like that.

In Ubuntu though when I plug in the usb device I don't get any Mass storage mounting and on lsusb I get this:

enter image description here

I have be searching about this and tried to

echo "0x12" >> /dev/bus/usb/001/008

But I got a write error for invalid argument.

Here are the terminal commands for the echo attempt:

enter image description here

Is there a way I can send raw commands with this format and executing actions without needing to write a driver for this USB device on Linux?

0

I don't think it can work like that. For one thing echo "0x012... sent the literal string of ascii characters 0x12 which is only a base-16 representation of the actual binary data needed to communicate with the device.

Have a look into python perhaps (you could use a lot of other languages to do this as well, however Python is usually a good place to start) and communicating with USB devices. Maybe here: https://stackoverflow.com/questions/44290837/how-to-interact-with-usb-device-using-pyusb

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.