All Projects → tobozo → ESP32-USB-Soft-Host

tobozo / ESP32-USB-Soft-Host

Licence: AGPL-3.0 license
An Arduino wrapper to @sdima1357's usb_soft_host esp-idf example

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to ESP32-USB-Soft-Host

esp-idf-vscode-boilerplate
Boilerplate for developing ESP-IDF applications using VS Code
Stars: ✭ 26 (-78.15%)
Mutual labels:  esp32, espressif, esp-idf
EspTinyUSB
ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).
Stars: ✭ 375 (+215.13%)
Mutual labels:  usb, hid, esp32s2
esp32-ota
ESP32 OTA based on ThingsBoard Open-source IoT Platform
Stars: ✭ 45 (-62.18%)
Mutual labels:  esp32, espressif, esp-idf
esp-idf-w25q64
SPI Flash Memory W25Q64 Access Library for esp-idf
Stars: ✭ 12 (-89.92%)
Mutual labels:  esp32, esp-idf, esp32s2
Authorizer
Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP 🔑📴
Stars: ✭ 172 (+44.54%)
Mutual labels:  usb, hid
Usbdevice
Highly flexible Composite USB Device Library
Stars: ✭ 144 (+21.01%)
Mutual labels:  usb, hid
python-hid-parser
Typed pure Python library to parse HID report descriptors
Stars: ✭ 31 (-73.95%)
Mutual labels:  usb, hid
pi400kb
Raw HID keyboard forwarder to turn the Pi 400 into a USB keyboard
Stars: ✭ 182 (+52.94%)
Mutual labels:  usb, hid
Stream Deck Api
API to interact with the Elgato Stream Deck controller
Stars: ✭ 36 (-69.75%)
Mutual labels:  usb, hid
ES-Timer
A USB timer powered by Digispark ATtiny85 according to 🍅 pomodoro time management technique
Stars: ✭ 45 (-62.18%)
Mutual labels:  usb, hid
esp32-freqcount
ESP32 Frequency Counter using Pulse Counter and Remote Control modules
Stars: ✭ 48 (-59.66%)
Mutual labels:  esp32, esp-idf
Hidguardian
Windows kernel-mode driver for controlling access to various input devices.
Stars: ✭ 138 (+15.97%)
Mutual labels:  usb, hid
Android Usb Gadget
Convert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱
Stars: ✭ 118 (-0.84%)
Mutual labels:  usb, hid
Homekit
Homekit for ESP32 with Arduino framework
Stars: ✭ 80 (-32.77%)
Mutual labels:  esp32, esp-idf
ESP DoubleResetDetector
ESP_DoubleResetDetector is a library for the ESP32/ESP8266 Arduino platform to enable trigger configure mode by resetting twice.
Stars: ✭ 34 (-71.43%)
Mutual labels:  esp32, espressif
Node Hid
Access USB & Bluetooth HID devices through Node.js
Stars: ✭ 1,064 (+794.12%)
Mutual labels:  usb, hid
idfx
Tool for flash/monitor ESP-IDF and ESP8266_SDK apps on the WSL2 ⚡
Stars: ✭ 71 (-40.34%)
Mutual labels:  usb, esp-idf
MQTT VPN
IP over MQTT for ESP controllers and Linux
Stars: ✭ 95 (-20.17%)
Mutual labels:  esp32, esp-idf
Vigembus
Windows kernel-mode driver emulating well-known USB game controllers.
Stars: ✭ 721 (+505.88%)
Mutual labels:  usb, hid
Hidpytoy
A GUI app for playing with HID devices, written in Python
Stars: ✭ 25 (-78.99%)
Mutual labels:  usb, hid

ESP32 USB Soft Host library for Arduino IDE

What is it?

This is mainly a wrapper around the excellent work of Dmitry Samsonov (@sdima1357) with esp32_usb_soft_host

Some parts of the code (e.g. the timer group isr calls) have been regressed to fit esp-idf 3.3 needs but it has been tested up to 4.4.2.

USB Low Speed is slow

ESP32 USB-LS Soft host (⚠️ LS=low speed) is a pure software implementation of USB host thru general IO pins.

Features

The library supports up to 4 HID low speed devices simultaneously. A callback can be attached both for detection and events.

Hardware support

This library has been tested on ESP32-Wroom/Wrover and works fine as long as the pins aren't shared (beware of the psram pins!).

It has partial support for ESP32-S2, and remains untested on ESP32-S3 && ESP32-C3.

Known working HID devices:

  • USB Keyboards: any, but consider powering externally it has backlights and/or other gadgets
  • USB Mice:
    • LogiLink ID0062 (idVendor=0x1a2c, idProduct=0x0042): Data recieves - 10/10 , led fired - 10/10;
    • Microsoft Intellimouse 1.1 (idVendor=0x045e, idProduct=0x0039): Data recieves - 10/10, led fired - 10/10
    • Microsoft Wheel Mouse (idVendor = 0x045e, idProduct = 0x0040): Data recieves - 6/10, led fired - 6/10;
    • ASUS Logitech M-UV55A: Data recieves - 7/10 , led fired (complete init?) - 10/10
    • ASUS (Logitech) Optical USB Black #M-UV55A (idVendor = 0x046d, idProduct = 0xc016): Data recieves - 7/10 , led fired (complete init?) - 10/10;
    • A4Tech SWOP-48 (idVendor = 0x093a. idProduct = 0x2510): Data recieves - 10/10 , led fired - 10/10
    • Genius Netscroll 110X (idVendor = 0x0458, idProduct = 0x003a): Data recieves - 10/10, led fired - 10/10
    • Logitech B100 (idVendor=0x046d, idProduct=0xc077): partial detection, may need several resets before events are fired
    • Logitech M-BT83 (idVendor = 0x046d, idProduct = 0xc03e), Data recieves - 5/10, led fired - 5/10;
    • A4Tech X-7??? , gaming mouse w/o label [ VID_09DA&PID_8090&REV_0606&MI_00 ]. Not recognized by driver, no any info in the Serial Monitor exist.
    • A4Tech OP-720 (idVendor = 0x093a, idProduct = 0x2510): Data recieves - 5/10, led fired - 10/10;
    • Oklick-305m: Data recieves - 0/10 (sic!), led fired - 10/10 (i guess it always turned on, independing of init result )
    • Exegate SH-9018: Data recieves - 0/10, led fired - 10/10. Device reaction looks like Oklick-305m
Status Brand Model Name idVendor idProduct Init Events Comments
😄 LogiLink ID0062 0x1a2c 0x0042 10/10 10/10 Low cost 3 buttons mouse
😄 Microsoft Intellimouse 1.1 0x045e 0x0039 10/10 10/10
😄 A4Tech SWOP-48 0x093a 0x2510 10/10 10/10
😄 Genius Netscroll 110X 0x0458 0x003a 10/10 10/10
😶 Logitech M-UV55A 0x046d 0xc016 10/10 7/10 Brand is advertised as ASUS/Logitech
😶 Microsoft Wheel Mouse 0x045e 0x0040 6/10 6/10
😶 A4Tech OP-720 0x093a 0x2510 10/10 5/10
🥶 Logitech M-BT83 0x046d 0xc03e 5/10 5/10
🥶 Logitech B100 0x046d 0xc077 10/10 3/10
💀 Oklick 305m n/a n/a 10/10 0/10
💀 Exegate SH-9018 n/a n/a 10/10 0/10 Device reaction looks like Oklick-305m
💀 A4Tech X-7??? 0x09da 0x8090 0/10 0/10 Gaming mouse w/o label
  • USB Joypads:
    • Quimat QR206 SNES PC Retro Gaming Controller
    • Retrolink USB Classic Super NES Style Controller
    • USB Game Controller (NES Style, unknown brand)

Proof of concept:

Credits:

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].