Skip to content

v5.0

Choose a tag to compare

@nuxcodes nuxcodes released this 09 Mar 15:43
· 54 commits to master since this release

v5.0

USB Audio

  • Rewrote source mode audio path — USB ISR now pulls PCM data directly from the mixer via double-buffered DMA, replacing the ring buffer approach. Eliminates buffering latency and underflow-related clicks.
  • Skipped EP0 IN flush during ISO streaming to avoid busy-waiting on AHB idle that could stall active audio transfers.
  • Playback pauses automatically when the dock disconnects or powers off.
  • Added intermediate clocking level (CPU 108MHz, AHB 108MHz) for USB audio use alongside the existing boost/unboost levels.

iAP (iPod Accessory Protocol)

  • Fixed non-authenticating accessories (legacy Identify) being permanently blocked — grant auth state immediately when no authentication is requested.
  • Fixed first iAP packet being dropped on USB HID accessories by allocating buffers synchronously during transport activation instead of deferring via IAP_EV_MALLOC.
  • Strip unsupported lingoes from the accessory's identification request instead of rejecting the entire connection. Docks like the Onkyo request lingoes (Microphone, USB Host, etc.) that Rockbox doesn't support — masking them out lets the accessory work with the supported subset.
  • Accept unsupported preference classes (video, etc.) and return preference=0 instead of rejecting — accessories disconnect if preferences are rejected.
  • Trigger digital audio init for both legacy-auth and IDPS-auth docks (previously only IDPS).

PictureFlow

  • Fixed backlight dim and LCD autosleep not working during cover art browsing. PictureFlow had its own backlight management that overrode the system timers — removed it so the standard backlight/sleep settings apply.

Debug Screen

  • Added USB audio source mode diagnostics: streaming state, sampling frequency, source underflows, frames sent, ISO incomplete transfer count.

Known issues

  • Periodic ~1s audio pop on MFi docks that poll iAP status during streaming (e.g. Onkyo ND-S1). Various workarounds were attempted (USB IRQ priority, DMA arbiter tuning, HID TX serialization) but did not fully resolve the issue. Fixed in v5.1.