• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
    C
  • License
    GNU Affero Genera...
  • Created over 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Arduino wrapper to @sdima1357's usb_soft_host esp-idf example

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:

More Repositories

1

M5Stack-SD-Updater

πŸ’Ύ Customizable menu system for M5Stack, M5Unified and ESP32-Chimera-Core - loads apps from the Micro SD card. Easily add you own apps
C++
310
star
2

ESP32-BLECollector

α›‘α›’ BLE Scanner + Data persistence on SD Card for M5Stack, M5Core2, Odroid-Go, ESP32-Wrover-Kit and other models
C
256
star
3

ESP32-Chimera-Core

ESP32-Chimera-Core πŸ‘Ύ is an arduino library for M5Stack, Odroid-Go, D-Duino-32-XS and other ESP32/TFT/SD bundles
C++
153
star
4

ESP32-targz

πŸ—œοΈ An Arduino library to unpack/uncompress tar, gz, and tar.gz files on ESP32 and ESP8266
C++
119
star
5

WUD-Ducky

An ESP32-S2 RubberDucky script parser, with Mouse/PenDrive support πŸ¦†
C
94
star
6

ESP32-BLEBeaconSpam

BLE Beacon spam on ESP32
C++
50
star
7

ESP32-PsRamFS

🐏 πŸ’Ύ RamDisk for ESP32-Arduino using PsRam and fs::FS
C
46
star
8

Rotatey_Cube

🧊 3D gyrocsopic rotating cube on Arduino using an MPU650 and SSD1306 OLED
C++
40
star
9

ESP32-3DPrinter-Bridge

A network <=> ESP32 <=> USB (FTDI) <=> 3D printer Bridge
C++
38
star
10

YAMLDuino

YAML <=> JSON converter for ESP32, ESP8266, RP2040 and possibly other devices
C
34
star
11

M5Tube

Video player for M5Stack with Docker conversion support
C++
30
star
12

ESP8266-Hobo-Clock

Self adjustable ESP8266 clock without RTC and NTP
Arduino
24
star
13

esp32-DCF77_Analyzer_Clock

⏰ An ESP32 TFT interpretation of the @deruiter's DCF77-Analyzer-Clock-V2.0
C
23
star
14

ESP8266SDUpdater

πŸ’Ύ ESP8266 Prequel to M5Stack-SD-Updater
C++
23
star
15

esp8266_deauther_serial

Serial version of spacehuhn/esp8266_deauther
C
22
star
16

WiFiChanViz

WiFi scanner with visual persistence, intended to find the idlest channel e.g. to assign to a ZigBee device
C
20
star
17

ESP32-ENC28J60

ENC28J60 Ethernet driver for ESP32-Arduino 2.0.5, lwip compliant
C
19
star
18

ESP32-Raytracer

An ESP32 study based on Dmitry V. Sokolov's tinyraytracer https://github.com/ssloy/tinyraytracer
C
19
star
19

Rotatey_Balls

🧊 3D animated gyro balls with ESP32, SSD1306 and MPU6050
Arduino
17
star
20

M5Stack-ESP12-Shield

ESP12 shield for M5Stack - Flash your ESP through the M5!
C
16
star
21

ImgurUploader

πŸ–ΌοΈ imgur.com πŸ“€ image/video uploader library for ESP32
C++
14
star
22

signal-logr

Wifi Location signal logger written in NodeJS for Raspberry Pi now with RTL-SDR support
JavaScript
14
star
23

ESP32-GifPlayer

GIF player Demo for M5Stack, Odroid-GO, ESP32-Wrover-Kit, LoLinD32-Pro, D-Duino32-XS, and more...
C++
13
star
24

ESP32-SIDView

SidWiz viewer for ESP32 [WORK IN PROGRESS]
C++
13
star
25

M5Rotatey_Cube

🧊 Modified M5Stack/MPU9250 gyro/accel demo sketch
C++
11
star
26

ESP32-Hector

M5Stack sprite+ULP-sound demo
C
10
star
27

ESP32-AmigaBoingBall

An interpretation of the famous Amiga Boing Ball Demo on ESP32 with the help of @bodmer's TFT_eSPI
C++
10
star
28

ESP32-Tesseract

4D 🧊 Hypercube animation demo for ESP32/TFT based on Space Dandy's Catherine
C
10
star
29

LGFXMeter

LGFX based Gauge Decoration and Animation library 🧭
C++
10
star
30

jqsheep

This jQuery plugin animates sheeps around page elements
JavaScript
10
star
31

M5Stack-Raytracer

An ESP32 study based on Dmitry V. Sokolov's tinyraytracer https://github.com/ssloy/tinyraytracer
C
9
star
32

TFT_GIF

Animated GIF on ST7735 with ESP8266
C
9
star
33

ESP32-MSGEQ7

πŸ”Š πŸ“ˆ MSGEQ7 based AudioSpectrum Visualizer for ESP32 and TFT
C++
8
star
34

M5Stack-Rickroll

Offline rickrolling for your M5Stack
C
8
star
35

ESP32-BLETimeServer

Time server module for ESP32-BLECollector
C++
7
star
36

M5Stack-NyanCat

A NyanCat for your M5Stack
C
6
star
37

YOURLS-GeoShortURL

πŸ”— YOURLS plugin to add per-country support to existing short URLs
PHP
6
star
38

kde-thumbnailer-qoi

KDE thumbnailer for QOI (Quite OK Image Format)
CMake
6
star
39

esp32-qemu-sim

Github action to run ESP32 compiled binaries in QEmu and collects output logs
Shell
6
star
40

tobozo.github.io

HTML
5
star
41

node-deauther

A HTTP to Serial bridge for esp8266_deauther
JavaScript
5
star
42

WiFiManagerTz

A NTP/Timezone extension to @tzapu's WiFiManager
C++
5
star
43

SerialServer

ESP8266WebServer to Serial syntactic substitute
C++
4
star
44

ESPWifiBench

ESP8266 / ESP32 Wifi bench
Arduino
4
star
45

ghetto_blaster

Rotary controls for OLED Ghetto Blaster
C
4
star
46

SpinningRat

Horizontally spinning rat πŸ€ for M5Unified
C
3
star
47

rpi-camsentry

Pan / Tilt controls + head tracking + video streaming over websocket from RaspiCam
JavaScript
3
star
48

M5Core2-SoundBouncer

M5Stack / M5Core2 demo animating 16 metronomes
C
3
star
49

ESP32-reSID

reSID is a Vice MOS6581/MOS8580 Sound Interface Device Emulator for ESP32
C
2
star
50

ESP32-Flocker

πŸ—οΈ App-suite builder for ESP32
Shell
1
star
51

php-tor-control-port

CSS
1
star
52

dotfiles

1
star