esp32 USB-LS pure software host thru general IO pins. Up to 4 HID devices simultaneously.
board ~$3 :https://www.aliexpress.com/premium/LOLIN32.html or any of https://www.aliexpress.com/premium/ESP32.html
usb connectors(for example): https://www.aliexpress.com/item/1005002027124387.html
//set right esp32 env for me it:
export IDF_PATH=$HOME/esp/esp-idf
source $HOME/esp/esp-idf/export.sh
//connect the board, build & flash
git clone https://github.com/sdima1357/esp32_usb_soft_host
cd esp32_usb_soft_host/usb_test/
idf.py set-target esp32
idf.py menuconfig
Please set in Menuconfig->compiler options -> optimization level> O2 ( must be in O2 options. "idf.py set-target esp32" resets it to Og ,I don't know why)
idf.py flash monitor
Test run with 3 mouses, $3 CY7C68013A logic analyser and amazing program https://sigrok.org/wiki/PulseView :
Tue Aug 31 15:50:48 IDT 2021
Add esp32c3 support.
idf.py set-target esp32c3
idf.py menuconfig
set in:
Menuconfig->compiler options -> optimization level> O2
only for esp32c3: Component config-> ESP System Setting -> Memory protection-> Disable.
idf.py flash monitor
Warning(disclaimer): Sorry, but target of this project right now - only research & proof of feasibility. I can't debug hardware which i don't have. Some hardware(devices) may not work, from different reasons. In the case of problem i suggest to check wires & use $3 CY7C68013A logic analyser. Sometimes i can help.