Coder Social home page Coder Social logo

tobozo / esp32-usb-soft-host Goto Github PK

View Code? Open in Web Editor NEW
255.0 8.0 40.0 745 KB

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

License: GNU Affero General Public License v3.0

C++ 30.76% C 69.24%
esp32 arduino esp-idf usb-soft-host hid espressif esp32s2 usb

esp32-usb-soft-host's Introduction

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 (:warning: 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:

esp32-usb-soft-host's People

Contributors

tobozo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32-usb-soft-host's Issues

scan codes

This lib is perfect, I just donΒ΄t know how to decode the data received to scan code.

Can you help me?

mouse example

Hi, Can you provide an example on how i can catch data from a connected mouse?
the mouse gets detected, but nothing more then that. if I plug in a keyboard i at least get raw data

photo5805244790353279680

Sending Print data to Thermal printer controlled by ESP32 via HID .

Dear sir,
My device is a thermal printer with an ESP32 controller. In that case, I have to send the print data from a 3rd party exe to my printer via the HID port. As per your tested H/W devices, the library is compatible with certain mice and keyboards. Is there any support for printers, mainly 3/2-inch thermal printers?Β 
Any help would be great.

Regards,
Vineeth B

Error compiling example for ESP32-S2

I cannot compile the USB_Test example for my ESP32-S2 board.
I have the latest versions for both the library and the Arduino core.

Full error messages
Arduino: 1.8.16 (Windows 10), Board: "ESP32S2 Dev Module, Disabled, Disabled, Disabled, Disabled, UART0, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi), QIO, 80MHz, 4MB (32Mb), 921600, None, Disabled"

In file included from D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/ESP32-USB-Soft-Host.h:5,

                 from D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\examples\USB_Test\USB_Test.ino:3:

D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/ESP32-USBSoftHost.hpp:18:19: note: #pragma message: memory protection features disabled, templated asm nop() will be used

   #pragma message "memory protection features disabled, templated asm nop() will be used"

                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src\ESP32-USBSoftHost.cpp:2:

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src\esp32-usbsofthost.hpp:18:19: note: #pragma message: memory protection features disabled, templated asm nop() will be used

   #pragma message "memory protection features disabled, templated asm nop() will be used"

                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x00()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x00()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x01()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x01()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x02()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x02()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x03()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x03()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x04()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x04()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x05()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x05()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x06()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x06()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0x07()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:27: multiple definition of `op0x07()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:27: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xd8()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xd8()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xde()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xde()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xdf()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xdf()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xda()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xda()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xdb()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xdb()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xdd()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xdd()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xdc()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:40: multiple definition of `op0xdc()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:40: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe1()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe1()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe0()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe0()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe2()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe2()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe3()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe3()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe4()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe4()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe8()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe8()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe5()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe5()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe7()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe7()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe6()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe6()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xe9()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xe9()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xea()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xea()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xec()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xec()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xef()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xef()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xed()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xed()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xeb()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xeb()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xee()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:41: multiple definition of `op0xee()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:41: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf0()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf0()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf1()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf1()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf3()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf3()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf2()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf2()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf4()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf4()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf5()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf5()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf6()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf6()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf7()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf7()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf9()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf9()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xfe()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xfe()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xf8()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xf8()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xfd()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xfd()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xfa()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xfa()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xfb()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xfb()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xfc()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xfc()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o: in function `op0xff()':

d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:42: multiple definition of `op0xff()'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:42: first defined here

c:/users/ziyad/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32s2-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: libraries\ESP32-USB-Soft-Host-main\ESP32-USBSoftHost.cpp.o:d:\documents\arduino\libraries\esp32-usb-soft-host-main\src/nops.hpp:46: multiple definition of `nops'; sketch\USB_Test.ino.cpp.o:D:\Documents\Arduino\libraries\ESP32-USB-Soft-Host-main\src/nops.hpp:46: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1

Error compiling for board ESP32S2 Dev Module.

Merging forks

@suarezvictor your fork is very impressive and I wish I found it earlier.

Before starting to integrate your changes, I need to establish an exhaustive board list to handle to the workflow matrix that will run the build tests. Did I miss any device?

  • ESP32-Wroom
  • ESP32-Wrover
  • ESP32-C3
  • ESP32-S2
  • ESP32-S3
  • Teensy

SNES Controller not detected

This is a bit weird issue.
I spent some time developing a USB to DB9 (Commodore 64) controller using a SNES game pad.
Everything worked well and because of the 2 Commodore 64 ports I decided to buy a second SNES controller, but this second is not even detected.
Of course I thought that it could have been broken, but tested on a Mac it works perfectly. So I decided to open and inside the two controllers seems quite different. In particular the main difference that I can see is that one controller seems to have a crystal and the other not, but I can't see the chip used because it is under a black cap.

I am a bit stuck here because no message, appears on the console so it seems that the device is not detected in any way.
Is there something that I can do to debug this issue?

ADB device host emulation ? (single purpose of setting adb tcpip enable)

Hello
I have a very pointed use case for this that might be useful to really a LOT of people.

And it is the ESP32 behaving as an ADB host to execute only one specfic command

"adb tcpip 5555"

You see, most modern phones are bootloader lock and unrootable.
It is impossible to execute any code as root unless you are the manufacturer, network provider or google

This is fine for most people but there is one thing that really unlocks a lot of capability from an android phone and it is enable tcpip network function of the adb client inside the phone.

This is a root function, however, if usb debug mode is enabled (unprivileged user can do it) then it is possible for a adb host device to tell the adb client over usb to enable network capability with the command "adb tcpip 5555" with that number being the port it will listen to for commands

The major problem is that this network connectivity will shut itself off on every reboot.
Currently this requires the user taking the phone back to a real computer running windows or linux to re-enable network connectivity.

So, I would like to inquire, what would it take for the ESP32 to perform this adb host task using software host USB ?

My understanding of the ADB is that is similar to a usb serial port but can be a lot faster.
Upon connection, there is a key exchange, the host provides a key fingerprint and the android client devices shows the user the choice to accept this fingerprint

Then the host would sent the command "adb tcpip 5555" (or another port number) and that would be it.

I can sniff this exchange with my oscilloscope to help developpement of this capability

This would allow anyone with a prepared ESP32 to go to a phone, plug it in the charge port and re-enable network functionality

Example use case
I use two dozen phones as cameras, but unfortunately, the camera will sometime crash when used in viewfinder mode for too long.
The cameras are rigged, pointed to specific locations and I would really prefer not to touch them once they are setup. However sometimes I have to reset them. With an esp32, I could leave it connected at all time (currently, it's just a charge cable) and it would continually query the device (is your port 5555 responding to connections) and if not it would do the sequence of enabling network connectivity

I need this remote connectivity to stop and start all those camera's recording remotely as well as swap camera settings (pushing xml config files)

I believe that many people are in my situation as well. Perhaps it would work to create a payment pool for this feature, I certainly would put my 100$ on that !

reference to wrong buffer

Copy paste problem :)

printCB( pcurrent->Resp0, pcurrent->R0Bytes );

instead of
printCB( pcurrent->Resp0, pcurrent->R0Bytes );
must be:
printCB( pcurrent->Resp1, pcurrent->R1Bytes );

Descfription:
In Resp0 response from ep0 (end point 0)
In Resp1 response from ep1 (end point 1)
Several HID devices have 2 end points . For example - combined mouse keyboard device

Can't compile "fatal error: hal/cpu_hal.h: No such file or directory"

Feeling kinda dumb, but I'm getting this error trying to compile the usb_test.ino. There is no such file in this library, but the "usb_host.c" is referencing it. What am I missing? This is the exact error message:
"/home/user/Arduino/libraries/ESP32-USB-Soft-Host-main/src/usb_host.c:18:25: fatal error: hal/cpu_hal.h: No such file or directory
compilation terminated."

Trying to connect a QuickScan qd2430

The Lib works fine with an apple mouse (desc.idVendor = 0x05acdesc.idProduct = 0x0304).
I need to connect a USB QuickScan. Any idea? Any other usb scanner?
Thankyou

Connections made before powering cause error invalid header

I'm having an issue in which a device that is connected to the circuit prior to booting the board will cause the below to repeatedly print. The problem is resolved by unplugging the USB peripheral and plugging it back in while the program is running. Has anyone else had this issue come up?

My project is for an embedded device so I'll be unable to just unplug and plug in the USB device.

rst:0x7 (TG0WDT_SYS_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff

Serial USB adapter?

It is possible to connect a USB serial adapter like FTDI or CH340? I'm thinking of using this as a 3d printer server using USB and not the serial interface. Like a octoprint server.

Mass Storage

Would it be completely different to integrate mass storage devices like SD cards?
Interested in attempting some shared memory between a laptop and esp32

ESP32-USB-Soft-Host and EEPROM.h and preferences.h

Hello,
I have a problem. It looks like there is a problem working ESP32-USB-Soft-Host with eeprom.h and preferences.h
A crash occurs when trying to write to flash.

Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed).

Core 1 register dump:
PC : 0x400d3d08 PS : 0x00060035 A0 : 0x80081262 A1 : 0x3ffbf3cc
A2 : 0x3ffc342c A3 : 0x00000000 A4 : 0x3ffc3428 A5 : 0x3ffc6670
A6 : 0x000095c0 A7 : 0x3ffbb648 A8 : 0x800813dc A9 : 0x00000000
A10 : 0x00000010 A11 : 0x00000011 A12 : 0x3ffc6670 A13 : 0x3ffc6630
A14 : 0x3ffbf5d8 A15 : 0x3ffc668c SAR : 0x00000020 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x40086618 LEND : 0x40086623 LCOUNT : 0x00000000

Backtrace: 0x400d3d05:0x3ffbf3cc |<-CORRUPTED

ELF file SHA256: 8e021e340189b662

Rebooting...

CapsLock Problem

It's exciting when the lcd appeared what i type by keyboard, but then i found a problem about CapsLock. I could change CapsLock state only once. Through some debug, i solved this problem. Now i can change CapsLock state just as i wish.
Origin Code(usbkbd.h):

virtual uint8_t HandleLockingKeys(uint8_t key)
    {
      switch(key) {
        case UHS_HID_BOOT_KEY_NUM_LOCK:
          bmNumLock = ~bmNumLock;
        break;
        case UHS_HID_BOOT_KEY_CAPS_LOCK:
          bmCapsLock = ~bmCapsLock;
          //Serial.printf("CapsLock Changed.CapsLock:%d\n",bmCapsLock);
        break;
        case UHS_HID_BOOT_KEY_SCROLL_LOCK:
          bmScrollLock = ~bmScrollLock;
        break;
      }
      return 0;
    };

Modified Code:

 virtual uint8_t HandleLockingKeys(uint8_t key)
    {
      switch(key) {
        case UHS_HID_BOOT_KEY_NUM_LOCK:
          bmNumLock = !bmNumLock;
        break;
        case UHS_HID_BOOT_KEY_CAPS_LOCK:
          bmCapsLock = !bmCapsLock;
          //Serial.printf("CapsLock Changed.CapsLock:%d\n",bmCapsLock);
        break;
        case UHS_HID_BOOT_KEY_SCROLL_LOCK:
          bmScrollLock = !bmScrollLock;
        break;
      }
      return 0;
    };

Just change a operator from ~ to !.

Don't work USB_Test program

Hello,

We're testing with a keyboard connected to the ESP32-DevKit C-32E.
But when I type on the keyboard, I don't see the keys.
GPIO has DP connected to 16 and DM connected to 17, with the other pins disabled.
Do you have any advice?

[Env]
ESP32-DevKit C-32E
Arduino IDE 1.8.19 for windows

[Log]

ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:12812
load:0x40080400,len:3032
entry 0x400805e4
USB Soft Host Test for Default Wroom
USB#0 (pins 16 17) is OK!
READ_BOTH_PINS = 0100
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
cpu freq = 160 MHz
TIME_MULT = 77 
D=   0 4800 bits in 1885.000000 uSec 2.546419 MHz  6 ticks in 2.356250 uS
D= 127 4800 bits in 5720.000000 uSec 0.839161 MHz  6 ticks in 7.150000 uS
D=  63 4800 bits in 3775.000000 uSec 1.271523 MHz  6 ticks in 4.718750 uS
D=  31 4800 bits in 2802.000000 uSec 1.713062 MHz  6 ticks in 3.502500 uS
D=  47 4800 bits in 3294.000000 uSec 1.457195 MHz  6 ticks in 4.117500 uS
D=  39 4800 bits in 3042.000000 uSec 1.577909 MHz  6 ticks in 3.802500 uS
D=  43 4800 bits in 3174.000000 uSec 1.512287 MHz  6 ticks in 3.967500 uS
D=  45 4800 bits in 3223.000000 uSec 1.489296 MHz  6 ticks in 4.028750 uS
D=  44 4800 bits in 3204.000000 uSec 1.498127 MHz  6 ticks in 4.005000 uS
D=  43 4800 bits in 3168.000000 uSec 1.515152 MHz  6 ticks in 3.960000 uS
TRANSMIT_TIME_DELAY = 46 time = 4.005000 error = 0.125003% 
USB#1 is disabled by user configuration
USB#2 is disabled by user configuration
USB#3 is disabled by user configuration

Thanks.

support for wireless keyboards?

the library successfully worked for wired keyboards but can we make it work out for wireless keyboards as well? i'm using logitech mk215 wireless keyboard and it's not working.

Connection issue

Hello.

I want to ask for schematic.

Do you put +5V on USB connector, and connect D+/D- directly to ESP32 pis (without voltage level shifter)?

I have tried connect some devices to ESP32 thru cheap 5V<->3.3V level shifter and have no success. Keyboard and one mouse with long cable (~1.4m) is not recognized, and another mouse with shorter cable (~0.8m) is unstable recognized .

Unfortunately i'm not sure about ESP32's pins 5V toolerance and i affraid to burn out microcontroller.

Thanks for your time.

Crashes when using Bluetooth

Base on the example here, I added ESP32 BLE Keyboard library to it.

#include <BleKeyboard.h>
BleKeyboard bleKeyboard;

void setup()
{
  //...
  Serial.println("Starting BLE work!");
  bleKeyboard.begin();
  return;
}

I found that it crashes at whatever execute later, bleKeyboard.begin() or USH.init().

The ESP32 I am using is ESP32-DevkitC (ESP32Β­WROOMΒ­32D).

ble.begin() before USH.init()

Starting BLE work!
USB Soft Host Test for Default Wroom
USB#0 (pins 16 17) is OK!
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
cpu freq = 240 MHz
TIME_MULT = 51 
ets Jun  8 2016 00:22:57

rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1240
load:0x40078000,len:13012
load:0x40080400,len:3648
entry 0x400805f8
Starting BLE work!
USB Soft Host Test for Default Wroom
USB#0 (pins 16 17) is OK!
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
cpu freq = 240 MHz
TIME_MULT = 51 
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1240
load:0x40078000,len:13012
load:0x40080400,len:3648
entry 0x400805f8

ble.begin() after USH.init()

USB Soft Host Test for Default Wroom
USB#0 (pins 16 17) is OK!
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
cpu freq = 240 MHz
TIME_MULT = 51 
D=   0 4800 bits in 1157.000000 uSec 4.148660 MHz  6 ticks in 1.446250 uS
D= 127 4800 bits in 3672.000000 uSec 1.307190 MHz  6 ticks in 4.590000 uS
D=  63 4800 bits in 2411.000000 uSec 1.990875 MHz  6 ticks in 3.013750 uS
D=  95 4800 bits in 3011.000000 uSec 1.594155 MHz  6 ticks in 3.763750 uS
D= 111 4800 bits in 3378.000000 uSec 1.420959 MHz  6 ticks in 4.222500 uS
D= 103 4800 bits in 3192.000000 uSec 1.503759 MHz  6 ticks in 3.990000 uS
D= 107 4800 bits in 3257.000000 uSec 1.473749 MHz  6 ticks in 4.071250 uS
D= 105 4800 bits in 3251.000000 uSec 1.476469 MHz  6 ticks in 4.063750 uS
D= 104 4800 bits in 3198.000000 uSec 1.500938 MHz  6 ticks in 3.997500 uS
D= 104 4800 bits in 3191.000000 uSec 1.504231 MHz  6 ticks in 3.988750 uS
TRANSMIT_TIME_DELAY = 106 time = 3.997500 error = -0.062501% 
USB#1 is disabled by user configuration
USB#2 is disabled by user configuration
USB#3 is disabled by user configuration
USB Soft Host init successfully
Starting BLE work!
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x400d398c: 0000f01d 91004136 8230f1e6
Core  1 register dump:
PC      : 0x400d3992  PS      : 0x00060031  A0      : 0x80081216  A1      : 0x3ffbeea0  
A2      : 0x3ffc2d80  A3      : 0x3ffc3b70  A4      : 0x0000037c  A5      : 0x3ffc2b6c  
A6      : 0xfffffff7  A7      : 0x3ffc1464  A8      : 0x800813b1  A9      : 0x3ff00040  
A10     : 0x00000011  A11     : 0x00000011  A12     : 0x8008286c  A13     : 0x3ffcfa60  
A14     : 0x00000020  A15     : 0x13000054  SAR     : 0x00000020  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x4008fbb8  LEND    : 0x4008fbc3  LCOUNT  : 0x00000000  


Backtrace:0x400d398f:0x3ffbeea00x40081213:0x3ffbeec0 0x40084af1:0x3ffbeee0 0x4009635b:0x3ffcfa40 0x400960ed:0x3ffcfa60 0x40098aa9:0x3ffcfaa0 0x40082251:0x3ffcfb20 0x400e188a:0x3ffcfb60 0x400e344e:0x3ffcfb90 0x400e3f79:0x3ffcfbb0 0x400e44dd:0x3ffcfbd0 0x400e2881:0x3ffcfc60 0x400e2f2a:0x3ffcfce0 0x400e32e3:0x3ffcfd50 0x400e1b03:0x3ffcfd70 0x400e1f85:0x3ffcfda0 0x40165dd7:0x3ffcfdc0 0x40165fbf:0x3ffcfe30 0x401660a4:0x3ffcfe60 0x400eb010:0x3ffcfe80 0x400db95a:0x3ffcfea0 0x400d74dd:0x3ffcfef0 0x400d453a:0x3ffcff20 0x400d1f4a:0x3ffcff60 0x400dc33f:0x3ffcffb0 




ELF file SHA256: 0000000000000000

Rebooting...
ets Jun  8 2016 00:22:57

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1240
load:0x40078000,len:13012
load:0x40080400,len:3648
entry 0x400805f8
USB Soft Host Test for Default Wroom
USB#0 (pins 16 17) is OK!
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
READ_BOTH_PINS = 0000
cpu freq = 240 MHz
TIME_MULT = 51 
D=   0 4800 bits in 1157.000000 uSec 4.148660 MHz  6 ticks in 1.446250 uS
D= 127 4800 bits in 3672.000000 uSec 1.307190 MHz  6 ticks in 4.590000 uS
D=  63 4800 bits in 2411.000000 uSec 1.990875 MHz  6 ticks in 3.013750 uS
D=  95 4800 bits in 3011.000000 uSec 1.594155 MHz  6 ticks in 3.763750 uS
D= 111 4800 bits in 3378.000000 uSec 1.420959 MHz  6 ticks in 4.222500 uS
D= 103 4800 bits in 3192.000000 uSec 1.503759 MHz  6 ticks in 3.990000 uS
D= 107 4800 bits in 3258.000000 uSec 1.473297 MHz  6 ticks in 4.072500 uS
D= 105 4800 bits in 3251.000000 uSec 1.476469 MHz  6 ticks in 4.063750 uS
D= 104 4800 bits in 3198.000000 uSec 1.500938 MHz  6 ticks in 3.997500 uS
D= 104 4800 bits in 3191.000000 uSec 1.504231 MHz  6 ticks in 3.988750 uS
TRANSMIT_TIME_DELAY = 106 time = 3.997500 error = -0.062501% 
USB#1 is disabled by user configuration
USB#2 is disabled by user configuration
USB#3 is disabled by user configuration
USB Soft Host init successfully
Starting BLE work!
Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x400d398c: 0000f01d 91004136 8230f1e6
Core  1 register dump:
PC      : 0x400d3992  PS      : 0x00060031  A0      : 0x80081216  A1      : 0x3ffbeea0  
A2      : 0x3ffc2d80  A3      : 0x3ffc3b70  A4      : 0x0000037c  A5      : 0x3ffc2b6c  
A6      : 0xfffffff7  A7      : 0x3ffc1464  A8      : 0x800813b1  A9      : 0x3ff00040  
A10     : 0x00000011  A11     : 0x00000011  A12     : 0x8008286c  A13     : 0x3ffcfa60  
A14     : 0x00000020  A15     : 0x13000054  SAR     : 0x00000020  EXCCAUSE: 0x00000000  
EXCVADDR: 0x00000000  LBEG    : 0x4008fbb8  LEND    : 0x4008fbc3  LCOUNT  : 0x00000000  


Backtrace:0x400d398f:0x3ffbeea00x40081213:0x3ffbeec0 0x40084af1:0x3ffbeee0 0x40096356:0x3ffcfa40 0x400960ed:0x3ffcfa60 0x40098aa9:0x3ffcfaa0 0x40082251:0x3ffcfb20 0x400e188a:0x3ffcfb60 0x400e344e:0x3ffcfb90 0x400e3f79:0x3ffcfbb0 0x400e44dd:0x3ffcfbd0 0x400e2881:0x3ffcfc60 0x400e2f2a:0x3ffcfce0 0x400e32e3:0x3ffcfd50 0x400e1b03:0x3ffcfd70 0x400e1f85:0x3ffcfda0 0x40165dd7:0x3ffcfdc0 0x40165fbf:0x3ffcfe30 0x401660a4:0x3ffcfe60 0x400eb010:0x3ffcfe80 0x400db95a:0x3ffcfea0 0x400d74dd:0x3ffcfef0 0x400d453a:0x3ffcff20 0x400d1f4a:0x3ffcff60 0x400dc33f:0x3ffcffb0 




ELF file SHA256: 0000000000000000

Rebooting...

Won't compile

I couldn't get the example code to compile without removing all the "inline" tags (on the function declarations). Do these serve a purpose that will cause problems later down the road, or are they safe to remove?

ESP32-CAM Does not detect any USB device being attached

I couldn't get "New device detected on USB" at all. I have an ESP32-CAM. Here's the pinout: https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2020/03/ESP32-CAM-pinout-new.png?quality=100&strip=all&ssl=1

I have tried with multiple PIN configurations and only for DP_P0 and DM_P0 which I believe means Data Plus USB0 and Data Minus USB0. Last one I tried is 13 and 12.

I had a USB extension cable and removed data pins (green and white) coming from female (host) part and connected to GPIO pins of the board. Power cables (red and black) is connected normally so I can power the device via a USB port.

What am I doing wrong? Do I need to share the power or at least ground between them or something?

Can it forward the data somehow?

This may be a duplicate question. I am trying to identify from your git repo if it is possible to read the usb device details(which it does) and then also forward the data as it is to computer?
i.e.: I connect a mouse to esp32(via usb) and then get the data coming from the mouse in esp and forward it serially to let's say my computer? or why not forward the data to computer via mqtt!?

So in one line the question is "Can it send and receive the data from and to the usb device connected??"

cpu freqency promble

The board that i used is ESP32 DEVKIT V1,when i set the cpu frequency 80MHz,USB Test failed. I wasted several hours to find problems, finally i tried to change cpu_freq, 240MHz and 160MHz were successfully ! But I when was trying 80MHz again, it failed. I don't konw it is just only my problem or there is a request to set cpu_freq bigger.

Not an Issue: Possible to add support to send data?

Hi,

I appreciate this isn't an issue, but just wondering if it's possible to add support to send data?

I have a universal HID device I created that I'd like to talk to via USB Soft Host, would it be difficult to implement?

how import freertos ?

Esp32 C3
I'm trying to compile with arduino ide
d:\arduino\libraries\ESP32-USB-Soft-Host\src/usb_host.h:4:10: fatal error: freertos/FreeRTOS.h: No such file or directory
4 | #include "freertos/FreeRTOS.h"

Are Wemos Lolin ESP32-S3 with integrated USB-OTG connector compatible ?

Hi,
I'm a fairly beginner in the esp scene but I have a project to use a old Razer Nostromo Keypad as a "programmable macro keypad"

But first I want to try with a dumb spare keyboard I have

I have some Wemos LOLIN ESP32-S3 (+mini) ( => https://www.wemos.cc/en/latest/s3/s3.html )
at hand and wanted to use the integrated USB-OTG port to plug my keyboard in it...but it doesn't seem to work

From the wemos datasheet D+/D- are on GPIO19/20 but they do not appear on the board itself, are the 19/20 pin internally linked to USB-OTG...idk

Or do I have to use an USB breakout ? But what about the 19/20 pins for D+/D- then ?
Is the USB-OTG connector even usable as host for that purpose ?

I'm new to this so if someone could help me understand what's going on...I've seen other S3 devkit with 19/20 pins (D+/D-) + jumper on the back with USB-OTG label like this one : https://fr.aliexpress.com/item/1005004637451669.html?spm=a2g0o.productlist.main.7.1bb4lrB5lrB5VG&algo_pvid=72f72592-110c-4d9f-9796-a3915fba881f&algo_exp_id=72f72592-110c-4d9f-9796-a3915fba881f-3&pdp_npi=4%40dis%21EUR%213.50%213.50%21%21%213.71%213.71%21%402103847817090586028926195ed234%2112000036725496197%21sea%21FR%214009116193%21&curPageLogUid=sZIBwRg1ozyj&utparam-url=scene%3Asearch%7Cquery_from%3A

Videos of attached keyboard projects I found :
https://www.youtube.com/watch?v=WPlPRkPx1_8
https://www.youtube.com/watch?v=gg58sClHjIg

Is it possible to translate the device to another?

to keep it simple, let's say i have a mouse but i won't to fool my computer into thinking it as a keyboard(sorry for a lame example), is that possible??

The real world application can be, sometimes we don't have the exact device on the place to test. We can get the device's usb info, duplicate it and use or the test the software temporarily!!

Is this possible somehow?!

loling d32 pro, can't get two keyboards or a mouse detected

using the example as-is, here is the output

22:57:08.752 -> USB Soft Host Test for LoLin D32 Pro
22:57:08.752 -> TIMER_BASE_CLK: 80000000, TIMER_DIVIDER:2, TIMER_SCALE: 40000000
22:57:08.752 -> Attaching onDetectCB
22:57:08.752 -> Attaching onDataCB
22:57:08.752 -> Attaching onUSBMessageDecode
22:57:08.752 -> Attaching onTickCB
22:57:08.752 -> Creating message queue
22:57:08.752 -> Setting USB Delay
22:57:08.752 -> Setting delay to 4 ticks
22:57:08.752 -> Free iram before alloc: 196532
22:57:08.752 -> Malloc MAX_DELAY_CODE_SIZE=640
22:57:08.752 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.752 -> moving opecodes to executable memory segment
22:57:08.752 -> Free iram after alloc and before realloc: 196532
22:57:08.789 -> Free iram after realloc to cap_exec: 195876
22:57:08.789 -> Setting up pins
22:57:08.789 -> USB#0 (pins 22 23) is OK!
22:57:08.789 -> READ_BOTH_PINS = 0300
22:57:08.789 -> READ_BOTH_PINS = 0000
22:57:08.789 -> READ_BOTH_PINS = 0000
22:57:08.789 -> READ_BOTH_PINS = 0000
22:57:08.789 -> cpu freq = 240 MHz
22:57:08.789 -> TIME_MULT = 51 
22:57:08.789 -> D=   0 Setting delay to 0 ticks
22:57:08.789 -> Free iram before alloc: 195876
22:57:08.789 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.789 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.789 -> moving opecodes to executable memory segment
22:57:08.824 -> Free iram after alloc and before realloc: 196532
22:57:08.824 -> Free iram after realloc to cap_exec: 195876
22:57:08.824 -> 4800 bits in 1297.000000 uSec 3.700848 MHz  6 ticks in 1.621250 uS
22:57:08.824 -> D= 127 Setting delay to 127 ticks
22:57:08.824 -> Free iram before alloc: 195876
22:57:08.824 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.824 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.824 -> moving opecodes to executable memory segment
22:57:08.824 -> Free iram after alloc and before realloc: 196532
22:57:08.862 -> Free iram after realloc to cap_exec: 195876
22:57:08.862 -> 4800 bits in 3811.000000 uSec 1.259512 MHz  6 ticks in 4.763750 uS
22:57:08.862 -> D=  63 Setting delay to 63 ticks
22:57:08.862 -> Free iram before alloc: 195876
22:57:08.862 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.862 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.862 -> moving opecodes to executable memory segment
22:57:08.862 -> Free iram after alloc and before realloc: 196532
22:57:08.862 -> Free iram after realloc to cap_exec: 195876
22:57:08.862 -> 4800 bits in 2524.000000 uSec 1.901743 MHz  6 ticks in 3.155000 uS
22:57:08.900 -> D=  95 Setting delay to 95 ticks
22:57:08.900 -> Free iram before alloc: 195876
22:57:08.900 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.900 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.900 -> moving opecodes to executable memory segment
22:57:08.900 -> Free iram after alloc and before realloc: 196532
22:57:08.900 -> Free iram after realloc to cap_exec: 195876
22:57:08.900 -> 4800 bits in 3172.000000 uSec 1.513241 MHz  6 ticks in 3.965000 uS
22:57:08.900 -> D= 111 Setting delay to 111 ticks
22:57:08.900 -> Free iram before alloc: 195876
22:57:08.934 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.934 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.934 -> moving opecodes to executable memory segment
22:57:08.934 -> Free iram after alloc and before realloc: 196532
22:57:08.934 -> Free iram after realloc to cap_exec: 195876
22:57:08.934 -> 4800 bits in 3492.000000 uSec 1.374570 MHz  6 ticks in 4.365000 uS
22:57:08.934 -> D= 103 Setting delay to 103 ticks
22:57:08.934 -> Free iram before alloc: 195876
22:57:08.934 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.975 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.975 -> moving opecodes to executable memory segment
22:57:08.975 -> Free iram after alloc and before realloc: 196532
22:57:08.975 -> Free iram after realloc to cap_exec: 195876
22:57:08.975 -> 4800 bits in 3331.000000 uSec 1.441009 MHz  6 ticks in 4.163750 uS
22:57:08.975 -> D=  99 Setting delay to 99 ticks
22:57:08.975 -> Free iram before alloc: 195876
22:57:08.975 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:08.975 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:08.975 -> moving opecodes to executable memory segment
22:57:08.975 -> Free iram after alloc and before realloc: 196532
22:57:09.034 -> Free iram after realloc to cap_exec: 195876
22:57:09.034 -> 4800 bits in 3259.000000 uSec 1.472844 MHz  6 ticks in 4.073750 uS
22:57:09.034 -> D=  97 Setting delay to 97 ticks
22:57:09.034 -> Free iram before alloc: 195876
22:57:09.034 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:09.034 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:09.034 -> moving opecodes to executable memory segment
22:57:09.034 -> Free iram after alloc and before realloc: 196532
22:57:09.034 -> Free iram after realloc to cap_exec: 195876
22:57:09.034 -> 4800 bits in 3212.000000 uSec 1.494396 MHz  6 ticks in 4.015000 uS
22:57:09.034 -> D=  96 Setting delay to 96 ticks
22:57:09.034 -> Free iram before alloc: 195876
22:57:09.034 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:09.034 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:09.034 -> moving opecodes to executable memory segment
22:57:09.034 -> Free iram after alloc and before realloc: 196532
22:57:09.075 -> Free iram after realloc to cap_exec: 195876
22:57:09.075 -> 4800 bits in 3192.000000 uSec 1.503759 MHz  6 ticks in 3.990000 uS
22:57:09.075 -> D=  96 Setting delay to 96 ticks
22:57:09.075 -> Free iram before alloc: 195876
22:57:09.075 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:09.075 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:09.075 -> moving opecodes to executable memory segment
22:57:09.075 -> Free iram after alloc and before realloc: 196532
22:57:09.075 -> Free iram after realloc to cap_exec: 195876
22:57:09.075 -> 4800 bits in 3191.000000 uSec 1.504231 MHz  6 ticks in 3.988750 uS
22:57:09.119 -> Setting delay to 98 ticks
22:57:09.119 -> Free iram before alloc: 195876
22:57:09.119 -> Realloc MAX_DELAY_CODE_SIZE=640
22:57:09.119 -> Making xtensa Opcodes for ESP32/ESP32S2
22:57:09.119 -> moving opecodes to executable memory segment
22:57:09.119 -> Free iram after alloc and before realloc: 196532
22:57:09.119 -> Free iram after realloc to cap_exec: 195876
22:57:09.119 -> TRANSMIT_TIME_DELAY = 98 time = 3.990000 error = -0.250000% 
22:57:09.119 -> Diff not in [1-7] range: 0
22:57:09.119 -> USB#1 is disabled by user configuration
22:57:09.119 -> Diff not in [1-7] range: 0
22:57:09.119 -> USB#2 is disabled by user configuration
22:57:09.156 -> Diff not in [1-7] range: 0
22:57:09.156 -> USB#3 is disabled by user configuration
22:57:09.156 -> Seleting SCL (blink) Pin #5
22:57:09.156 -> Creating timer config
22:57:09.156 -> Init timer
22:57:09.156 -> Enable interrupt
22:57:09.156 -> Register ISR
22:57:09.156 -> Start timer
22:57:09.156 -> Attaching Timer Task
22:57:09.156 -> USB Soft Host Group timer task is now running on core #1 with priority 5

no level shifters, directly to the pins.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.