0.17.0¶
September 13, 2024
General¶
Improved CI: build both cmake and make. Make use of CircleCI for part of build process to speed up CI
Add CodeQL Workflow for Code Security Analysis
Add Clang compiler support
Add default implementation for weak callbacks functions for better Keil compatibility
Upgrade hardware-in-the-loop (HIL) testing with more boards and examples: including dual stack example
Controller Driver (DCD & HCD)¶
Chipidea¶
Support MCXA
DWC2¶
Fix tickless issue with stm32f7: disable ULPI clock during sleep when using internal phy
Fix SOF interrupt handling
Fix fifo level half/empty issue
Add DWC2 Test Mode support.
for esp32 force disconnect/connect using USB_WRAP otg pad override
FSDEV¶
Rewrite and Generalize driver to support non-stm32 mcu such as wch
Simplify PMA, HW FIFO access and bit manipulation for different access scheme 1x16, 2x16 and 32 bit
Add support for ch32 usbd e.g ch32v203
Add support for STM32G4 and STM32U5 microcontrollers.
Fix h5 (32-bit) errata 2.15.1: Buffer description table update completes after CTR interrupt triggers
ISO EP buffer allocation improvements, implement
dcd_edpt_close_all()Fix ch32v203 race condition and stability issue with
fix ch32v203 seems to unconditionally accept ZLP on EP0 OUT.
fix v203 race condition between rx bufsize and RX_STAT which cause PMAOVR, occurs with WRITE10
correctly handle setup prepare at
dcd_edpt0_status_complete(), which fixes the race condition with windows where we could miss setup packet (setup bit set, but count = 0)
MAX3421E¶
Add support for rp2040, esp32 (c3, c6, h2, etc..)
Add
hcd_deinit()for max3421Retry NAK handling next frame to reduce CPU and SPI bus usage
add
cpuctlandpinctltotuh_configure()option for max3421Implement hcd abort transfer for Max3421
Properly Handle NAK Response in MAX3421E driver: correctly switch and skip writing to 2 FIFOs when NAK received. Otherwise, the driver may hang in certain conditions.
MSP430¶
support non-bus-powered
MUSB¶
Add support for Analoog devices: max32650, max32666, max32690, max3278002
nRF¶
Fix
dcd_edpt_open()for iso endpointHandle ISOOUT CRC errors
Add compile support with old nordic sdk
Fix a few race conditions
OHCI¶
Allow more than 16 devices
RP2040¶
Correctly abort control transfer when new setup arrived. Due to RP2040-E2 only able to fix B2 or later
Implement hcd abort transfer for rp2040
Add support for rp2350
RUSB2¶
Support ra2a1 pipe number scheme
WCH CH32¶
Added support for USB OTG/FS and FSDev Driver. Update CH32V307 to allow manual select FS or HS driver.
Fixed various bugs in CH32v307 usbhs driver: endpoint handling and data transfer management.
Device Stack¶
Add
tud_deinit()andclass driver deinit()to deinitialize TinyUSB device stack.Add support for generic SOF callback.
Add set address recovery time 2ms per USB spec.
Audio¶
Add audio_test_freertos & audio_4_channel_mic_freertos
Improved support for Audio Class 2.0 (UAC2) with various bug fixes.
Add feedback by fifo counting.
Bluetooth HCI¶
Issue ZLP on ACL IN ep when transfer is multiple of endpoint max packet size
CDC¶
Add
tud_cdc_configure_fifo()to make RX/TX buffer persistent (not clear when disconnected)Add missing capability bit for CDC ACM serial break support
Enhanced CDC class with better handling of large data transmissions.
Add missing capability bit for CDC ACM serial break support
HID¶
Added missing key codes for keypad
Added HID Lighting and Illumination functionality
Fixed issues in the HID class for more reliable device enumeration.
Support HID Mouse with absolute positioning
Use separate buffer for control SET_REPORT, fix conflict with interrupt endpoint out
MSC¶
Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL
Net¶
Rewrite of NCM device driver to improve throughput
removed obsolete
tud_network_link_state_cb()
USBTMC¶
Added notification support
Vendor¶
Migrate to new endpoint stream API, support non-buffered TX/RX
Add ZLP for
write()when needed
Video¶
Enhance UVC descriptors and example
Video Added support for USB Video Class (UVC) with MJPEG.
Fix multiple interfaces, add an example of 2ch video capture.
Fix race for
tud_video_n_streaming()check
Host Stack¶
Added
tuh_deinit()to de-initialize TinyUSB host stack.Added support for new USB mass storage class APIs.
Improved error handling and retry mechanisms for unstable devices.
CDC Serial¶
Add support for ch34x
Allow to overwrite
CFG_TUH_CDC_FTDI/CP210X/CH32X_VID_PID_LISTEnhanced stability of CDC-ACM devices during enumeration.
HID¶
Add
tuh_hid_receive_abort()Add
tuh_hid_get_report()
Hub¶
Prevent status request to invalid ep_num
Fix double status xfer
unroll hub removal
Contributors¶
Thanks to everyone who contributed to this release: @acscd, @andrewleech, @angmolin, @antoniovazquezblanco, @arntsonl, @b4yuan, @battlesnake, @BrentK-ADI, @camilaodsouza, @cdesjardins, @ChrisDeadman, @clhenry, @cumhuronat, @donatieng, @dp111, @dragonlock2, @duckylotl, @eightycc, @emb4fun, @Erlkoenig90, @feaser, @gschorcht, @hathach, @HiFiPhile, @hinxx, @hjalleboii, @ikskuh, @IngHK, @jerpa77, @jotonedev, @kaidegit, @kasjer, @kaspernyhus, @kilograham, @kkitayam, @Krasutski, @LarssonOliver, @leptun, @liamfraser, @lijunru-hub, @lurch, @Lurcy38, @maflcko, @mamiral, @MatiMcFly, @Okarss, @pigrew, @ra1nb0w, @Rbb666, @rgrr, @Rocky04, @rsolorzanomsft, @Ryzee119, @shuffle2, @slark-yuxj, @tannewt, @thierer, @tinic, @tlyu, @tobozo, @tommie, @trejan, @tyustli, @wjklimek1, @XelaRellum, @Xelus22, @xudongzheng, @YixingShen, @zx96.