All Projects → stjeong → rasp_vusb

stjeong / rasp_vusb

Licence: Apache-2.0 license
This repo explains how to turn your Raspberry Pi Zero into USB Keyboard and Mouse. Also provides sample code and binaries to control them.

Programming Languages

C#
18002 projects
C++
36643 projects - #6 most used programming language
shell
77523 projects
CSS
56736 projects

Projects that are alternatives of or similar to rasp vusb

openinput
Open source firmware for input devices
Stars: ✭ 43 (-49.41%)
Mutual labels:  keyboard, mouse, usb-hid
Hidusbf
USB Mice Overclocking Software (for Windows)
Stars: ✭ 152 (+78.82%)
Mutual labels:  keyboard, mouse
Neatinput
A .NET standard project which aims to make keyboard and mouse input monitoring easy on Windows and eventually Linux.
Stars: ✭ 89 (+4.71%)
Mutual labels:  keyboard, mouse
Rkvm
Virtual KVM switch for Linux machines
Stars: ✭ 237 (+178.82%)
Mutual labels:  keyboard, mouse
Keymousego
类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input
Stars: ✭ 1,145 (+1247.06%)
Mutual labels:  keyboard, mouse
Globalhooks
Allows you to create global keyboard events
Stars: ✭ 74 (-12.94%)
Mutual labels:  keyboard, mouse
Xboxkeyboardmouse
Keyboard and mouse for Xbox One streaming on Windows 10
Stars: ✭ 235 (+176.47%)
Mutual labels:  keyboard, mouse
Repeat
Cross-platform mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features.
Stars: ✭ 763 (+797.65%)
Mutual labels:  keyboard, mouse
pi400kb
Raw HID keyboard forwarder to turn the Pi 400 into a USB keyboard
Stars: ✭ 182 (+114.12%)
Mutual labels:  keyboard, otg
keyboard mouse emulate on raspberry
Bluetooth Keyboard Mouse Emulator on Raspberry Pi
Stars: ✭ 230 (+170.59%)
Mutual labels:  keyboard, mouse
snake
A stylised graphical tool for configuring and controlling Razer devices on Linux
Stars: ✭ 52 (-38.82%)
Mutual labels:  keyboard, mouse
uchroma
An advanced driver for Razer Chroma hardware in Linux
Stars: ✭ 45 (-47.06%)
Mutual labels:  keyboard, mouse
Inputsystem
An efficient and versatile input system for Unity.
Stars: ✭ 1,013 (+1091.76%)
Mutual labels:  keyboard, mouse
Mouse2joystick custom cemu
An AutoHotkey Script to allow the use of Mouse and Keyboard control in CEMU. This uses vJoy and provides several additional features over regular keyboard control, like: the ability to control the camera with the mouse, toggle walking speed, in BotW use MouseWheel to change weapons, a separate Toggle key for ZL useful for locking onto a target in BotW.
Stars: ✭ 76 (-10.59%)
Mutual labels:  keyboard, mouse
Silence
A simple, clean macro recorder written in C#. Windows 10 compatible.
Stars: ✭ 29 (-65.88%)
Mutual labels:  keyboard, mouse
Windows User Action Hook
A .NET library to subscribe for Windows operating system global user actions such mouse, keyboard, clipboard & print events
Stars: ✭ 224 (+163.53%)
Mutual labels:  keyboard, mouse
intuiter
Global productivity app for anyone who use Windows
Stars: ✭ 24 (-71.76%)
Mutual labels:  keyboard, mouse
Gopher360
Gopher360 is a free zero-config app that instantly turns your Xbox 360, Xbox One, or even DualShock controller into a mouse and keyboard. Just download, run, and relax.
Stars: ✭ 566 (+565.88%)
Mutual labels:  keyboard, mouse
Gainput
Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch
Stars: ✭ 636 (+648.24%)
Mutual labels:  keyboard, mouse
Enigo
Cross platform input simulation in Rust
Stars: ✭ 254 (+198.82%)
Mutual labels:  keyboard, mouse

What is it?

This repo explains how to turn your Raspberry Pi Zero into USB Keyboard and Mouse. Also provides sample code and binaries to control them.

Steps - Installation

  1. Flash your SD card with NOOBS (download: https://www.raspberrypi.org/downloads/noobs/) or use your installed Raspbian.

  2. Make /share directory on your raspberry pi.

    $ sudo mkdir -m 1777 /share
    
  3. Run /script/deploy_with_pscp.bat on your PC to deploy files to Raspberry PI Zero. (download pscp.exe from https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

    c:\...\script> deploy_with_pscp.bat [your_raspberrypi_ip]
    
    For example, if the address of your raspberry pi is 192.168.0.100
    
    c:\...\script> deploy_with_pscp.bat 192.168.0.100
    
  4. On your raspberry pi, make /share/install_usb.sh and /share/rasp_vusb_server.out runnable.

    $ sudo chmod +x /share/install_usb.sh
    $ sudo chmod +x /share/rasp_vusb_server.out
    
  5. Run install_usb.sh

    $ sudo /share/install_usb.sh
    
  6. That's all, all of the changes will be applied after reboot.

    $ sudo reboot
    
  7. Finally, connect your Raspberry PI zero to your Computer. Go to your "Control panel" / "Device Manager", you can find 3 new devices.

    Human Interface Devices
        * USB Input Device
    
    Keyboards
        * HID Keyboard Device
    
    Mice and other pointing devices
        * HID-compliant mouse  (Absolute position + buttons)
        * HID-compliant mouse  (Relative position + wheel)
    

    You can get the report descriptors at /report_descriptors.txt

How to Test

Now, you can run "InputController.exe (from /bin/v1_0_0_2/InputController.zip)" on your Windows PC. As soon as run, it will find "usb_server" program which is run in Raspberry PI and connect it automatically.

At first, InputController parse input as mouse data. So you can move to specific position as whatever you want but need to calculate for your circumstances. If you move to x = 50, y = 100 and your monitor's resolution is 1920 * 1080, your input has to be like this,

x = 50 * 32767 / 1920 = 853
y = 100 * 32767 / 1080 = 3033

then type it,

853 3033

you can find your mouse position is moved to (50, 100) on windows.

Also, you can move your mouse relatively. For this, type '+' or '-' prefix to number.

+50 -10

And control wheel on the mouse with 'w' prefix to offset value.

w10

It acts as scrolling down, or type "w-50" to scroll up with offset 50.

For testing input as keyboard, change the mode by typing "--mode" command,

--mode

(If you type "--mode" again, it will change to mouse input mode)

Now you can type any text and just hit ENTER,

test is good

then, your PC will accept "test is good" key inputs. Of course, you can send any special inputs of these,

Left Window key: <window>
IME toggle key: <ime>
Enter Key: <return>
Control Down: <ctrl_down>
Control Up: <ctrl_up>
Shift Down: <shift_down>
Shift Up: <shift_up>
Alt Down: <alt_down>
Alt Up: <alt_up>
CapsLock: <capslock>
ESC: <esc>
Backspace: <backspace>
Tab: <tab>
Insert: <insert>
Home: <home>
Page Up: <pageup>
Page Down: <pagedown>
Delete: <del>
End: <end>
Left Arrow key: <left>
Right Arrow key: <right>
Up Arrow key: <up>
Down Arrow Key: <down>
F1 ~ F12: <f1> ~ <f12>

If you type like this,

test is good<backspace>d <shift_down>wow<shift_up>

you will see this text input,

test is good WOW

Steps - Uninstallation

  1. Just run uninstall_usb.sh.
$ sudo /share/uninstall_usb.sh
  1. Reboot.
$ sudo reboot

Change Log

1.0.0.2 - Dec 20, 2017

  • apply ssl socket

1.0.0.1 - Oct 13, 2017

  • Add "--shutdown" command to shutdown raspberry pi.

1.0.0.0 - Oct 12, 2017

  • Initial checked-in

How to build

If you want to modify InputController.exe and rasp_vusb_server.out, just load rasp_usb.sln in Visual Studio 2017, and build it.

It needs connection info to Raspberry Pi for compiling C++ source codes to ARM machine codes.

Requests or Contributing to Repository

Any help and advices for this repo are welcome.

License

Apache License V2.0 (Refer to LICENSE.txt)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].