I'm wanting to connect a USB receiver to my Pi (3) so to be able to able to receive Rf transmittions from hand help remotes running 403MHz.
I need to gather the transmitters ID through the connected receiver so I can represent it onto a graphic display (not I/O pins on the Pi) on a connected monitor. The Pi sees the device:

[    2.768680] systemd[1]: Started udev Coldplug all Devices.
[    2.802568] usb 1-1.2: New USB device found, idVendor=1111, idProduct=6555
[    2.802593] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.802607] usb 1-1.2: Product: Sherlotronics Complex V3
[    2.802619] usb 1-1.2: Manufacturer: Sherlotronics PTY/01
[    2.802632] usb 1-1.2: SerialNumber: UÿkPwQI0'%\xffffffc2\xffffff87060
[    2.805162] i2c /dev entries driver
/dev/ttyACM0 - Sherlotronics_PTY_01_Sherlotronics_Complex_V3

.... but I need to know how to read off the device so to gather the info off it on the transmitter signals.
Almost like snooping but I will asign each transmitter (80+) a graphic display image.
The device has a driver (dll) written for Windows that windows sees as a Plug n Play but the supplier doesnt have a Linux equivalant.

  • Your device got attached as a tty, namely /dev/ttyACM0. You can communicate with it by reading from or writing to this device. The format depends on this device, you need some kind of manual or datasheet for it (which you should have received when you bought it). I can't find anything with Google. Alternatively, look for datasheets for the chips used on the device (open it up, look at PCB). – dirkt Feb 13 '17 at 14:02
  • If it's right: ARM2, STM32F103, RBT6, GH24E 9U, CHN GH 350. Hope that is what you are asking for? – MimmsBoy Feb 13 '17 at 16:02
  • If it's an ARM cpu in the device, you are out of luck: The protocol could be literally anything. You need some sort of manual, unless it's a "chatty" protocol that provides help. – dirkt Feb 13 '17 at 16:11
  • Would it make a difference if the program was written for Windows 10 ioT for the Pi or is it the ARM2 chip that is an issue for Linux or ioT? If I find an alternative device, is there a chipset that I should source? I will contact the supplier and ask about the manual or technical spec. Many thanks Dirkt – MimmsBoy Feb 14 '17 at 5:51
  • The issue is not the ARM2 chip, the issue is there's no information about the protocol, and the ARM is a general CPU, so the protocol is determined by whatever program runs on that CPU (there's no datasheet where one could look that up). If you have any other kind of source of information, e.g. a working Windows driver, a working Windows example program, some output if you just connect with minicom and press return, infro from the company you bought it from, or anything else, one can go from there. – dirkt Feb 14 '17 at 6:48

Ok, so now the question has become "given the DLL file, reverse engineer the protocol so one can use it under Linux".

The DLL file without the hardware isn't that useful, because it's a lot of work to completely reverse engineer a binary.

Instead, you can run it on Windows together with the hardware, and snoop the communication. With a bit of trial and error and guesswork, it should be possible to figure out the protocol. After all, it's just an RF receiver, the protocol shouldn't be that difficult.

You can monitor USB communcations via usbsnoop. The equivalent of ttyACM on Windows should be a virtual serial port or virtual COM port, I'm not sure if portmon works with that but it's wort a try. Google for more tools.

There's also the reverse engineering stackexchange.

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.