espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.65k stars 7.41k forks source link

USB CDC Serial not appearing on macOS #10244

Open maciekish opened 2 months ago

maciekish commented 2 months ago

Board

esp32-s3-devkitc-1

Device Description

esp32-s3-devkitc-1

Hardware Configuration

Both USB OTG and UART connected to macOS via separate USB cables.

Version

v3.0.4

IDE Name

Arduino IDE & PlatformIO

Operating System

macOS 15.1

Flash frequency

80Mhz

PSRAM enabled

no

Upload speed

460800

Description

USB OTG port does not appear on macOS, i have tried -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 in PlatformIO and the bewlo in Arduino IDE. Yes, i have tried three different cables.

image

This is all i get, usbserial-110 is the UART i use for programming, no OTG port...

image

lsusb can also only see the UART, no OTG/CDC

image

Sketch

#include <Arduino.h>

// MAX7219
#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 1
#define CLK_PIN   36  // or SCK
#define DATA_PIN  35  // or MOSI
#define CS_PIN    40  // or SS
#include <MD_MAX72xx.h>

MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

void setup() {
  Serial.begin(115200);

  if (!mx.begin())
    Serial.println("MCP7219 Failed to Initialize!");
  else
    Serial.println("MCP7219 Initialized");

  mx.clear();
}

void loop() {
}

Debug Message

dmesg

[2386336.665371]: HID Activity Tickle (type:0 sender:100000dff)
[2386336.665406]: PMRD: requestUserActive from AppleHIDTransportHIDDevice (0x100000dff) for kIOHIDSystemActivityTickle nxEvent: 0x5230000
[2386336.678600]: IOConsoleUsers: time(0) 0->0, lin 1, llk 0,
[2386336.678646]: IOConsoleUsers: gIOScreenLockState 1, hs 0, bs 0, now 0, sm 0x0
[2386336.680037]: Couldn't alloc class "AFKResource"
[2386336.684936]: IOAccessoryManagerUSBC::setPinConfiguration(): Updating pin configuration...
[2386336.684959]: IOAccessoryManagerUSBC::setCableActive(): activeCable: NO
[2386336.684961]: IOAccessoryManagerUSBC::setCableOptical(): opticalCable: NO
[2386336.684963]: IOAccessoryManagerUSBC::setDisplayPortPinAssignment(): dpPinAssignment: 0
[2386336.684966]: IOAccessoryManagerUSBC::setPlugOrientation(): plugOrientation: 2
[2386336.684976]: IOPortTransportStateUSB3::setSuperSpeedSignaling(): [Port-USB-C@1: USB3] superSpeedSignaling: 1 [Gen 1]
[2386336.685008]: IOPortTransportState::handleStateChange(): [Port-USB-C@1: USB3] Handling state change...
[2386336.685013]: IOServiceNotificationManager::enqueueMessage(): [Port-USB-C@1/USB3] Enqueueing message type: 0xe3ff8000...

[2386336.685028]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB3] Sending 2 message(s)... (m_propertyChanged: YES)

[2386336.685038]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB3] Sending message from service Port-USB-C@1/USB3... (type: 0xe3ff8000, arg: 0, argSize: 0)

[2386336.685077]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB3] Sending message type 0xe0000130 from service USB3@...

[2386336.685095]: IOPortTransportState::handleStateChange(): [Port-USB-C@1: USB2] Handling state change...
[2386336.685099]: IOServiceNotificationManager::enqueueMessage(): [Port-USB-C@1/USB2] Enqueueing message type: 0xe3ff8000...

[2386336.685103]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending 1 message(s)... (m_propertyChanged: NO)

[2386336.685108]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending message from service Port-USB-C@1/USB2... (type: 0xe3ff8000, arg: 0, argSize: 0)

[2386336.685558]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 4 [CIO])

[2386336.685582]: IOAccessoryTRM::_processNotifications(): Processing notifications...
[2386336.685585]: IOAccessoryTRM::_processNotifications(): Thread call scheduled!
[2386336.685613]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 7 [AIDBus])

[2386336.685619]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 9 [UART])

[2386336.685624]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 10 [MikeyBus])

[2386336.685627]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 11 [KIS])

[2386336.685696]: IOAccessoryTRM::_handleNotifications(): Handling notifications...
[2386336.685701]: IOAccessoryTRM::_handleNotifications(): Handling notification... (notificationType: 3) (m_mgrPrimaryPortID: 1)
[2386336.686667]: IOAccessoryTRM::_handleNotificationGated(): Handling notification (gated)... (notificationType: 3) (m_mgrPrimaryPortID: 1)
[2386336.686676]: IOAccessoryTRM::_handleNotificationGated(): Handling Attach/Detach/AccessoryDetected/ConfigChange/USBConnectChange notification... (m_mgrPrimaryPortID: 1)
[2386336.686690]: IOAccessoryTRM::_isSupervisedAccessoryAttached(): usbConnectType: 4, usbPower: NO, ignoreVbus: NO (m_mgrPrimaryPortID: 1)
[2386336.686693]: IOAccessoryTRM::_isSupervisedAccessoryAttached(): USB active! (m_mgrPrimaryPortID: 1)
[2386336.686703]: IOAccessoryTRM::_handleNotificationGated(): supervisedAccessoryAttached: YES, m_status.supervisedAccessoryAttached: YES (m_mgrPrimaryPortID: 1)
[2386336.686767]: IOPortTransportStateUSB2::setActive(): [Port-USB-C@1: USB2] active: YES
[2386336.686775]: IOPortTransportStateUSB2::setActive_block_invoke(): [Port-USB-C@1: USB2] active: 0 [NO] -> 1 [YES]
[2386336.686779]: IOPortTransportState::setActive(): [Port-USB-C@1: USB2] active: YES (transportType: 2 [USB2])
[2386336.686795]: IOPortTransportState::_updateTRMState(): [Port-USB-C@1: USB2] Updating TRM state...
[2386336.686799]: IOPortTransportStateUSB::calculateAuthorizationState(): [Port-USB-C@1: USB2] Calculating authorization state...
[2386336.686806]: IOPortTransportState::calculateAuthorizationState(): [Port-USB-C@1: USB2] Calculating authorization state...
[2386336.686812]: IOPortTransportState::calculateAuthorizationState_block_invoke(): [Port-USB-C@1: USB2] *** LTRR ***
[2386336.686815]: IOServiceNotificationManager::enqueueMessage(): [Port-USB-C@1/USB2] Enqueueing message type: 0xe3ff8001...

[2386336.686825]: IOPortTransportState::handleStateChange(): [Port-USB-C@1: USB2] Handling state change...
[2386336.686827]: IOServiceNotificationManager::enqueueMessage(): [Port-USB-C@1/USB2] Enqueueing message type: 0xe3ff8000...

[2386336.686832]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending 3 message(s)... (m_propertyChanged: YES)

[2386336.686842]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending message from service Port-USB-C@1/USB2... (type: 0xe3ff8001, arg: 0, argSize: 0)

[2386336.686852]: IOPort::addTransport_block_invoke_2(): [Port-USB-C@1] Received kIOPortTransportState_Message_TransportActiveChange from USB2...

[2386336.686859]: AppleNotificationQueue::processNotifications(): Processing 1 notification(s)...
[2386336.686864]: AppleNotificationQueue::processNotifications(): Thread call scheduled!
[2386336.686869]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending message from service Port-USB-C@1/USB2... (type: 0xe3ff8000, arg: 0, argSize: 0)

[2386336.686869]: AppleNotificationQueue::_handleNotifications(): Handling notifications...
[2386336.686876]: AppleNotificationQueue::_handleNotifications(): Handling notification... (notificationType: 0, count: 1)
[2386336.686879]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending message type 0xe0000130 from service USB2@...

[2386336.686879]: IOPort::_handleNotification(): [Port-USB-C@1] Handling notification... (notificationType: 0)

[2386336.686885]: IOServiceNotificationManager::handleServiceReregistration(): [Port-USB-C@1/USB2] Re-registering service...

[2386336.686896]: IOPortTransportState::registerService(): [Port-USB-C@1: USB2] Registering service USB2@... (transportType: 2, provider: Port-USB-C@1)
[2386336.687002]: IOPortTransportState::setNominalSignalingFrequencies(): [Port-USB-C@1: USB2] Setting nominal signaling frequencies... (nominalSignalingFrequenciesHz: YES, nominalSignalingFrequenciesHz.count: 3)
[2386336.687038]: IOServiceNotificationManager::enqueueMessage(): [Port-USB-C@1] Enqueueing message type: 0xe3ff80ca...

[2386336.687044]: IOPort::_updateAuthorizationState(): [Port-USB-C@1] Updating authorization state...

[2386336.687051]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1/USB2] Sending message type 0xe0000130 from service USB2@...

[2386336.687055]: IOPort::_updateAuthorizationState_block_invoke(): [Port-USB-C@1] authorizationRequired: YES -> YES, authorizationPending: YES -> YES, userAuthorizationPending: NO -> NO, supervisedTransportActive: YES -> YES

[2386336.687061]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1] Sending 2 message(s)... (m_propertyChanged: YES)

[2386336.687066]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1] Sending message from service Port-USB-C@1... (type: 0xe3ff80ca, arg: 0, argSize: 0)

[2386336.687305]: IOServiceNotificationManager::sendMessages(): [Port-USB-C@1] Sending message type 0xe0000130 from service Port-USB-C@1...

[2386336.687332]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 4 [CIO])

[2386336.687384]: IOPort::copyTransports_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 4 [CIO])

[2386336.687391]: IOPort::_copyOrRemoveTransportFromDict_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 4 [CIO])

[2386336.687405]: IOPort::copyTransports_block_invoke(): [Port-USB-C@1] No transports found! (transportType: 4 [CIO])

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

SuGlider commented 2 months ago

@me-no-dev | @P-R-O-C-H-Y : Could you please help with this macOS issue?

lbernstone commented 2 months ago

If you hold down the gpio0 (boot) button and then press the reset button, do you see the Espressif USB JTAG device in lsusb? You must manually put the device into download mode this way the first time you upload code. This will install a firmware that then understands how to provide usb-cdc. Your menu there does not look like 3.0.4. Mine looks like this: Screenshot from 2024-08-26 10-33-14

me-no-dev commented 2 months ago

Are both USB ports part of the board or have you attached the USB port directly to the pins?