diff --git a/cores/arduino/USB/PluggableUSB.cpp b/cores/arduino/USB/PluggableUSB.cpp index 84d781d812a5f447ea918b5b89253885b6e1c6ac..1a15dfa463684b75060c30d6d8ea3bbd5658ddc7 100644 --- a/cores/arduino/USB/PluggableUSB.cpp +++ b/cores/arduino/USB/PluggableUSB.cpp @@ -40,7 +40,7 @@ int PUSB_GetInterface(uint8_t* interfaceNum) int ret = 0; PUSBListNode* node = rootNode; for (uint8_t i=0; i<modules_count; i++) { - ret = node->cb->getInterface(interfaceNum); + ret += node->cb->getInterface(interfaceNum); node = node->next; } return ret; diff --git a/cores/arduino/USB/USBCore.cpp b/cores/arduino/USB/USBCore.cpp index 171fe389fa76ded6abbae45cf98186b515f985f7..ddc20146b2fe73c96e9b30965e53dc43ff7eabe7 100644 --- a/cores/arduino/USB/USBCore.cpp +++ b/cores/arduino/USB/USBCore.cpp @@ -156,6 +156,8 @@ uint32_t USBDeviceClass::sendConfiguration(uint32_t maxlen) return true; } + total = 0; + packMessages(true); sendControl(&config, sizeof(ConfigDescriptor)); SendInterfaces(&total);