Hi,
I'm trying to get the SD2USBMSC example (https://github.com/espressif/arduino-esp32/tree/master/libraries/SD_MMC/examples/SD2USBMSC) running on my M5TAB5
I have been able to get the same example running on an ESP32-S3 board & now I want to test the High Speed USB of the ESP32-P4 in the Tab5.
I have the sketch running on my Tab5 and the SD card appears to be detected & mounted correctly; at run-time I get USB UNPLUGGED reported (ARDUINO_USB_STOPPED_EVENT).
I have powered the Tab5 externally via the posts on the battery slot but I do not see events reported for the other USB events:
- ARDUINO_USB_STARTED_EVENT
 
- ARDUINO_USB_SUSPEND_EVENT
 
- ARDUINO_USB_RESUME_EVENT
 
Below is the log from the device
EESP-ROM:esp32p4-eco2-20240710
Build:Jul 10 2024
rst:0x1 (POWERON),boot:0x20f (SPI_FAST_FLASH_BOOT)
SPI mode:DIO, clock div:1
load:0x4ff33ce0,len:0x118c
load:0x4ff2abd0,len:0xcd0
load:0x4ff2cbd0,len:0x3304
entry 0x4ff2abd0
ESP-ROM:esp32p4-eco2-20240710
Build:Jul 10 2024
rst:0x7 (HP_SYS_HP_WDT_RESET),boot:0x20f (SPI_FAST_FLASH_BOOT)
SPI mode:DIO, clock div:1
load:0x4ff33ce0,len:0x118c
load:0x4ff2abd0,len:0xcd0
load:0x4ff2cbd0,len:0x3304
entry 0x4ff2abd0
[     1][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[    12][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[    23][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[    35][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[    46][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[    57][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[    68][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[    80][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[    91][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[   102][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[   114][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[   125][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[   136][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[   147][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[   159][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[   170][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[   181][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[   193][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[   204][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[   215][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[   226][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x400138a8
[   238][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x40013866
[   249][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x40013824
[   260][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x400137e2
[   272][D][esp32-hal-tinyusb.c:806] tinyusb_enable_interface2(): Interface MSC enabled
[   286][I][esp32-hal-psram.c:102] psramAddToHeap(): PSRAM added to the heap.
[   297][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 38 successfully set to type UART_RX (2) with bus 0x4ff11048
[   308][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 37 successfully set to type UART_TX (3) with bus 0x4ff11048
=========== Before Setup Start ===========
Chip Info:
------------------------------------------
  Model             : ESP32-P4
  Package           : 0
  Revision          : 1.00
  Cores             : 2
  CPU Frequency     : 360 MHz
  XTAL Frequency    : 40 MHz
  Features Bitfield : 0000000000
  Embedded Flash    : No
  Embedded PSRAM    : No
  2.4GHz WiFi       : No
  Classic BT        : No
  BT Low Energy     : No
  IEEE 802.15.4     : No
------------------------------------------
INTERNAL Memory Info:
------------------------------------------
  Total Size        :   572780 B ( 559.4 KB)
  Free Bytes        :   544996 B ( 532.2 KB)
  Allocated Bytes   :    21964 B (  21.4 KB)
  Minimum Free Bytes:   540020 B ( 527.4 KB)
  Largest Free Block:   385012 B ( 376.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
  Total Size        : 33554432 B (32768.0 KB)
  Free Bytes        : 33551856 B (32765.5 KB)
  Allocated Bytes   :        0 B (   0.0 KB)
  Minimum Free Bytes: 33551856 B (32765.5 KB)
  Largest Free Block: 33030132 B (32256.0 KB)
  Bus Mode          : QSPI
------------------------------------------
Flash Info:
------------------------------------------
  Chip Size         : 16777216 B (16 MB)
  Block Size        :    65536 B (  64.0 KB)
  Sector Size       :     4096 B (   4.0 KB)
  Page Size         :      256 B (   0.2 KB)
  Bus Speed         : 80 MHz
  Bus Mode          : QIO
------------------------------------------
Partitions Info:
------------------------------------------
                nvs : addr: 0x00009000, size:    20.0 KB, type: DATA, subtype: NVS
            otadata : addr: 0x0000E000, size:     8.0 KB, type: DATA, subtype: OTA
               app0 : addr: 0x00010000, size:  6400.0 KB, type:  APP, subtype: OTA_0
               app1 : addr: 0x00650000, size:  6400.0 KB, type:  APP, subtype: OTA_1
             spiffs : addr: 0x00C90000, size:  3456.0 KB, type: DATA, subtype: SPIFFS
           coredump : addr: 0x00FF0000, size:    64.0 KB, type: DATA, subtype: COREDUMP
------------------------------------------
Software Info:
------------------------------------------
  Compile Date/Time : Sep 10 2025 11:23:03
  Compile Host OS   : windows
  ESP-IDF Version   : v5.4.2-25-g858a988d6e
  Arduino Version   : 3.2.1
------------------------------------------
Board Info:
------------------------------------------
  Arduino Board     : M5STACK_TAB5
  Arduino Variant   : m5stack_tab5
  Arduino FQBN      : m5stack:esp32:m5stack_tab5:UploadSpeed=921600,USBMode=default,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=360,FlashFreq=80,FlashMode=qio,FlashSize=16M,PartitionScheme=default,DebugLevel=verbose,PSRAM=enabled,EraseFlash=none,JTAGAdapter=builtin
============ Before Setup End ============
[   673][V][esp32-hal-uart.c:676] uartBegin(): UART0 baud(115200) Mode(800001c) rxPin(38) txPin(37)
[   682][V][esp32-hal-uart.c:774] uartBegin(): UART0 not installed. Starting installation
[   690][V][esp32-hal-uart.c:784] uartBegin(): UART0 RX FIFO full threshold set to 120 (value requested: 120 || FIFO Max = 128)
[   701][V][esp32-hal-uart.c:810] uartBegin(): Setting UART0 to use XTAL clock
[   709][V][esp32-hal-uart.c:874] uartBegin(): UART0 initialization done.
[   715][V][esp32-hal-uart.c:925] uartSetRxFIFOFull(): UART0 RX FIFO Full value set to 120 from a requested value of 120
Starting Serial
Mounting SDcard
[   726][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type SDMMC_CLK (38) successfully set to 0x4000b840
[   740][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type SDMMC_CMD (39) successfully set to 0x4000b840
[   752][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type SDMMC_D0 (40) successfully set to 0x4000b840
[   763][D][SD_MMC.cpp:188] begin(): pin_cmd: 44, pin_clk: 43, pin_d0: 39, pin_d1: 40, pin_d2: 41, pin_d3: 42
[   773][I][SD_MMC.cpp:252] begin(): On-chip power channel specified, use external power for SDMMC
[   846][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 44 successfully set to type SDMMC_CMD (39) with bus 0x4ff142f8
[   857][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 43 successfully set to type SDMMC_CLK (38) with bus 0x4ff142f8
[   868][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 39 successfully set to type SDMMC_D0 (40) with bus 0x4ff142f8
Initializing MSC
Initializing USB
[   879][D][esp32-hal-tinyusb.c:684] tinyusb_load_enabled_interfaces(): Load Done: if_num: 1, descr_len: 32, if_mask: 0x1
Card Size: 7447MB
                 Sector: 512    Count: 15251456
                                               =========== After Setup Start ============
USB UNPLUGGED
INTERNAL Memory Info:
------------------------------------------
  Total Size        :   572780 B ( 559.4 KB)
  Free Bytes        :   538448 B ( 525.8 KB)
  Allocated Bytes   :    28064 B (  27.4 KB)
  Minimum Free Bytes:   538428 B ( 525.8 KB)
  Largest Free Block:   385012 B ( 376.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
  Total Size        : 33554432 B (32768.0 KB)
  Free Bytes        : 33520032 B (32734.4 KB)
  Allocated Bytes   :    31584 B (  30.8 KB)
  Minimum Free Bytes: 33520032 B (32734.4 KB)
  Largest Free Block: 33030132 B (32256.0 KB)
------------------------------------------
GPIO Info:
------------------------------------------
  GPIO : BUS_TYPE[bus/unit][chan]
  --------------------------------------
    37 : UART_TX[0]
    38 : UART_RX[0]
    39 : SDMMC_D0
    43 : SDMMC_CLK
    44 : SDMMC_CMD
============ After Setup End =============
Has anyone had any luck (or problems) with getting this working on the Tab5 device?
Appreciate any help/direction...