USB HID Keyboard emulator - usb

I want to make hardware keylogger from my Raspberry Pi model B. I think that I can connect keyboard to raspberry and connect raspberry to computer, but how I can emulate keyboard output?
I consider that here must be some low-level libraries for this purpose, but I can't find someone.
Thanks!

You need to implement HID device emulator on Pi in order to act like keyboard. But it seems impossible because Pi hasn't separate USB port.
No, on the Raspberry PI model B the USB hardware is actually connected to a built in Hub, this fixes the USB format as master, there is no way a model B can be a "slave device". Thats said, the SoC of the Raspberry PI is actually capable as being used for both a master and a slave USB device, so theoretically when using a model-A it could be possible to program it to behave as a slave device. Obviously its against the USB specification for a slave device to have a type-A connector, but with some soldering you could connect a type-B or even an USB-on-the-go connector.
source

Related

Run Raspberry Pi script from Windows PC using Ethernet

As the title says, I want to run a script on the Raspberry Pi from my Windows PC. The connection between PC and Raspberry Pi 4 (Raspbian OS) should be done using an Ethernet cable. The Rasperry Pi cannot be operated permanently in the network. Is it correct that then a SSH connection is out of the question?
For background: the Raspberry Pi is connected to a camera and a stepper motor. Depending on the position of the object to be photographed, the stepper motor is moved and then a photo is taken. This photo is then to be sent back to the PC via the network cable. The script on the Raspberry Pi (rotation stepper motor and image capture) is implemented with Python and fully functional. Is it generally possible to run the Pi script using the Ethernet cable and transfer the generated images back?
Using a Windows QT GUI I want to start this script and display the images later.
Is this possible or can someone suggest a simpler way? Maybe someone already had a similar problem and would help me.
Many thanks in advance.
If you have an extra Ethernet NIC on your computer, you can directly connect your PC and Raspberry PI (on relatively newer hardware) or if that doesn't work, you can use a crossover Ethernet cable to connect your PC to the PI. Then configure an ssh server on the PI and enable Avahi and dhcpd and execute your script via that using MSYS ssh or Putty (ssh pi#hostname.local). Don't forget to change your hostname.
Bonus tip: you can also send your data (images) back over the same connection.

Is there a device to give my computer gpio pins through a usb port?

I am trying to control LEDs through my computer. Is there a device that I can plug into a USB port that would give me pins that I can control through code(preferably python) on my computer? Something similar to a raspberry pi or Arduino. The reason I want to control it through my computer and not a microcontroller is because I have data on the computer is used to determine the color of the LEDs. My current setup controls the LEDs with a raspberry pi over wifi but it is not as responsive as I feel it could be and makes the LEDs kind of a pain to use. If a device like this exists, it would make everything much more simple and professional looking. Thanks.
You may want to look into legacy PC parallel printer ports, they have multiple pins that can be controlled by software.

Android Things: ADB over USB on Raspberry Pi

I'm playing with Raspberry Pi 3 Model B and Android Things. I was able to configure everything (connect Pi over Ethernet, then reconnect over Wi-Fi with Android.local) and debug the app. However it's not convenient sometimes to debug over Wi-Fi when I travel and I have to change Wi-Fi networks or don't have Wi-Fi connection at all.
I know there is serial debug console, but it seems to be for getting logs and shell commands, not for debugging.
Any chance to have direct debugging over USB cable just like any other Android device like smartphone/tablet?
How to debug Android Things device over USB?
Briefly: you can't do it with Raspberry Pi.
Why not?
Let's look at the pin specification of Raspberry Pi micro USB (J1):
where
1: power
2: D- (data out), not connected
3: D+ (data in), not connected
4: NC, not connected
5: GND (ground)
So summing up the above said: no data pin connection - no adb. You can only power your RPi over micro USB.
Any chance to have direct debugging over USB cable just like any other Android device like smartphone/tablet?
Use another board. In fact, any board that has USB OTG and is supported by Android Things would allow debugging over USB, just as a "regular" smartphone/tablet.
And ironically, by the time of this writing, all the supported hardware platforms would fit except for Raspberry Pi :)
The NXP i.MX7D development board has the same pins as the Raspberry Pi for development, however it uses USB-C for power and ADB.
Highly recommend it over the Raspberry Pi
https://developer.android.com/things/hardware/imx7d.html
(source: android.com)
Another option is to setup Wi-Fi access point on your laptop and allow the Pi to connect to it. I have not tested it but it should work.

Raspberry pi freezed on wifi adapter

I have a type B Raspberry Pi running perfectly with USB keyboard and USB mouse both plugged in.
However pi freeze in all the following combinations,
USB keyboard + USB wifi adapter (CUI)
USB mouse + USB wifi adapter (GUI)
In CUI, pi reboots every time I hot plugged in the adapter, and freezes on asking for login id.
If I boot pi with wifi preplugged in, pi also freeze on asking for login id.
In GUI, it does not reboot but freeze when I hot plugged in the adapter.
It is true when I boot pi with preplugged in.
Could someone please advise me how to fix this?
Your raspberry pi does not have beefy enough USB ports to power the wifi adaptor. Get a powered USB hub.

emulating usb device with another PC

Task: Testing production software on PC notebook without production unit attached via USB and without changing prodcution software.
Goal: Emulate production device with another PC. The test application runs on the second PC to emulate our device commands/responses.
Challenge: Using a USB bridge cable or other device requires that we can change the PID/VID to look like our device.
Suggestions?
You need a hardware device on the second PC to do this type of emulation.
USB ports on a normal PC are USB host ports. Two such ports cannot be connected with each other directly. USB device (or USB OTG - switchable) ports can be found on programmable smartphones (Android, maybe others) and some developer boards like these. I think you probably need to use a smartphone or developer board rather than ordinary PC as the your USB device emulator.