{{:pilone.png |Cone icon by Fornax, CC-BY-SA 3.0, wikimedia commons}} ((PAGE UNDER CONSTRUCTION))
Published 2 May 2020
USB Device
\\ ===== Overview ===== Some Arduinos, eg Leonardo, can act as USB input devices for PCs etc, emulating mice, keyboards etc. ===== Hardware description ===== Where the Arduino board does the USB processing on the main chip rather than having a separate dedicated USB controller chip, it can be made to emulate USB input devices to a host PC. Also Arduinos that use an atmega8u2 or atmega16u2 chip for the USB interface (rather than the dedicated FT232RL or similar chip previously used), can have the USB driver firmware updated/modified to emulate USB HIDs too. ====== References and Additional Resources ====== * [[https://www.obdev.at/products/vusb/index.html|V-USB]] - a software USB device for Atmel’s AVRs * [[https://arduino.stackexchange.com/questions/32349/how-to-add-extra-usb-port-to-arduino-nano|Add extra USB port to Arduino]] * [[https://www.sparkfun.com/tutorials/337|USB Keyboard/Mouse and using sendReport()]] * [[https://www.waitingforfriday.com/?p=827|SmallyMouse2 – Universal USB to Quadrature Mouse Adapter]] * [[https://web.archive.org/web/20110626071011/http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf|USB Keyboard HID Usage Tables]] * [[https://cal-eng.com/?page_id=579|Leonardo USB HID Keyboard & Mouse with Advanced Serial Port Examples]] * [[http://www.fourwalledcubicle.com/LUFA.php|Lightweight USB Framework for AVRs, either Host or Device applications]] * [[https://www.youtube.com/watch?v=7aXbh9VUB3U|PS/2 keyboard interface operation]] ====Arduino librarys==== * [[https://www.arduino.cc/reference/en/language/functions/usb/keyboard/|Keyboard emulation]] * [[https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers|Keyboard emulation:keyboardmodifiers]] ====PS2 keyboard to Arduino==== * [[https://www.pjrc.com/teensy/td_libs_PS2Keyboard.html|PS2Keyboard Library]] * [[https://playground.arduino.cc/Main/PS2KeyboardExt/|Extension of the original PS2Keyboard library]] * [[https://github.com/WestfW/ps2keypolled|Alternate PS2Keyboard Library]] * [[https://github.com/techpaul/PS2KeyAdvanced|Arduino PS2 Keyboard FULL keyboard protocol support and full keys to integer coding]] * [[https://github.com/techpaul/PS2KeyAdvanced/blob/master/extra/websites.txt|Details of the PS2 Keyboard interface]] * [[https://www.instructables.com/id/Connect-PS2-Keyboard-to-Arduino/|Instructables PS2 Keyboard to Arduino]] * [[https://duino4projects.com/ps2-keyboard-or-mouse-using-arduino/|PS2 Keyboard or Mouse]] ====UNO as USB keyboard (reprogramming the atmega8u2/atmega16u2 USB interface)==== * [[http://mitchtech.net/arduino-usb-hid-keyboard/|MitchTech UNO into a USB HID keyboard]] * [[https://hackaday.com/2012/06/29/turning-an-arduino-into-a-usb-keyboard/|Hackaday UNO as USB keyboard]] =====Programmable keyboard===== * [[https://github.com/JeeviteshJuneja/Dynamic_Keyboard/blob/master/USBHostKbdv3.ino|Dynamic keyboard]] * [[https://shop.hak5.org/products/usb-rubber-ducky-deluxe|USB Rubber Ducky keyboard mimic device]] * [[https://github.com/hak5darren/USB-Rubber-Ducky/wiki|USB Rubber Ducky Project Wiki]] ====Mice==== * [[https://www.arduino.cc/reference/en/language/functions/usb/mouse/|Mouse functions]] * [[https://www.arduino.cc/en/Tutorial/JoystickMouseControl|Joystick Mouse Control]] * [[https://github.com/kristopher/PS2-Mouse-Arduino|Arduino/Wiring Library for interfacing with a PS2 mouse]]If any referenced page no longer exists, try looking for its URL on http://archive.org.
\\ ----