0.7.0

November 7, 2020

Device Controller Driver

  • Added new support for Espressif ESP32-S2

  • Added new support for Dialog DA1469x

  • Enhance STM32 Synopsys

  • Support bus events disconnection/suspend/resume/wakeup

  • Improve transfer performance with optimizing xfer and fifo size

  • Support Highspeed port (OTG_HS) with both internal and external PHY

  • Support multiple usb ports with rhport=1 is highspeed on selected MCUs e.g H743, F23. It is possible to have OTG_HS to run on Fullspeed PHY (e.g lacking external PHY)

  • Add ISO transfer, fix odd/even frame

  • Fix FIFO flush during stall

  • Implement dcd_edpt_close() API

  • Support F105, F107

Enhance STM32 fsdev

  • Improve dcd fifo allocation

  • Fix ISTR race condition

  • Support remap USB IRQ on supported MCUs

  • Implement dcd_edpt_close() API

Enhance NUC 505

  • enhance set configure behavior

Enhance SAMD

  • Fix race condition with setup packet

  • Add SAMD11 option OPT_MCU_SAMD11

  • Add SAME5x option OPT_MCU_SAME5X

SAMG

  • Fix SAMG control data toggle and stall race condition

Enhance nRF

  • Fix hanged when tud_task() is called within critical section (disabled interrupt)

  • Fix disconnect bus event not submitted

  • Implement ISO transfer and dcd_edpt_close()

USB Device

USBD

  • Add new class driver for Bluetooth HCI class driver with example can be found in mynewt-tinyusb-example since it needs mynewt OS to run with.

  • Fix USBD endpoint usage racing condition with usbd_edpt_claim()/usbd_edpt_release()

  • Added tud_task_event_ready() and osal_queue_empty(). This API is needed to check before enter low power mode with WFI/WFE

  • Rename USB IRQ Handler to dcd_int_handler(). Application must define IRQ handler in which it calls this API.

  • Add dcd_connect() and dcd_disconnect() to enable/disable internal pullup on D+/D- on supported MCUs.

  • Add usbd_edpt_open()

  • Remove dcd_set_config()

  • Add OPT_OS_CUMSTOM as hook for application to overwrite and/or add their own OS implementation

  • Support SET_INTERFACE, GET_INTERFACE request

  • Add Logging for debug with optional uart/rtt/swo printf retarget or CFG_TUSB_DEBUG_PRINTF hook

  • Add IAR compiler support

  • Support multiple configuration descriptors. TUD_CONFIG_DESCRIPTOR() template has extra config_num as 1st argument

  • Improve USB Highspeed support with actual link speed detection with dcd_event_bus_reset()

  • Enhance class driver management

    • usbd_driver_open() add max length argument, and return length of interface (0 for not supported). Return value is used for finding appropriate driver

    • Add application implemented class driver via usbd_app_driver_get_cb()

    • IAD is handled to assign driver id

  • Added tud_descriptor_device_qualifier_cb() callback

  • Optimize tu_fifo bulk write/read transfer

  • Forward non-std control request to class driver

  • Let application handle Microsoft OS 1.0 Descriptors (the 0xEE index string)

  • Fix OSAL FreeRTOS yield from ISR

  • Rename some configure macro to make it clear that those are used directly for endpoint transfer

    • CFG_TUD_HID_BUFSIZE to CFG_TUD_HID_EP_BUFSIZE

    • CFG_TUD_CDC_EPSIZE to CFG_TUD_CDC_EP_BUFSIZE

    • CFG_TUD_MSC_BUFSIZE to CFG_TUD_MSC_EP_BUFSIZE

    • CFG_TUD_MIDI_EPSIZE to CFG_TUD_MIDI_EP_BUFSIZE

USBNET

  • Remove ACM-EEM due to lack of support from host

USBTMC

  • Fix descriptors when INT EP is disabled

CDC

  • Send zero length packet for end of data when needed

  • Add tud_cdc_tx_complete_cb() callback

  • Change tud_cdc_n_write_flush() return number of bytes forced to transfer, and flush when writing enough data to fifo

MIDI

  • Add packet interface

  • Add multiple jack descriptors

  • Fix MIDI driver for sysex

DFU Runtime

  • fix response to SET_INTERFACE and DFU_GETSTATUS request

HID

  • Fix gamepad template descriptor

  • Add multiple HID interface API

  • Add extra comma to HID_REPORT_ID

USB Host

  • Rework USB host stack (still work in progress)

    • Fix compile error with pipehandle

    • Rework usbh control and enumeration as non-blocking

  • Improve Hub, MSC, HID host driver

Examples

  • Add new hid_composite_freertos

  • Add new dynamic_configuration to demonstrate how to switch configuration descriptors

  • Add new hid_multiple_interface

  • Enhance net_lwip_webserver example

    • Add multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)

    • Update lwip to STABLE-2_1_2_RELEASE for net_lwip_webserver

  • Added new Audio example: audio_test uac2_headsest

New Boards

  • Espressif ESP32-S2: saola_1, kaluga_1

  • STM32: F746 Nucleo, H743 Eval, H743 Nucleo, F723 discovery, stlink v3 mini, STM32L4r5 Nucleo

  • Dialog DA1469x dk pro and dk usb

  • Microchip: Great Scoot Gadgets’ LUNA, samd11_xplained, D5035-01, atsamd21 xplained pro

  • nRF: ItsyBitsy nRF52840

Contributors

Thanks to everyone who contributed to this release: @chang196700, @CraigHutchinson, @czeslawmakarski, @duempel, @gh2o, @hathach, @HiFiPhile, @j4cbo, @jepler, @jgressmann, @k0d, @kasjer, @kaysievers, @ktemkin, @majbthrd, @me-no-dev, @mzero, @PanRe, @pigrew, @salkinium, @UweBonnes, @xobs, @zlittell.