A smarter battery remaining runtime estimate for players that cannot accurately measure current draw, simply based on the rate of charge reduction over time. For example, taking a robust regression of the percentage left in the last 10 minutes and extrapolate to 0% (total battery runtime) and 100% (remaining runtime).

Help with iPod Accessory Protocol: clean up the code, support IAP large packets.

Radio stuff:

Use interrupt to know when tuning has finished, instead of just waiting some fixed time. Should speed up tuning and auto-scan.

Make radio code aware of the built-in seek-to-next-station function in many tuner chips.

Allow user to set current date time from RDS date/time

Implement "album art" for FM stations, based on the PI code transmitted over RDS

Implement OIRT band (65.8 - 74 MHz) for FM tuners that support it

Implement FM radio volume, to lower the radio volume while voicing menu items. Need to check which fm tuner chips support this (or do it via the audio codec). See also FS#11465.

Automatic FM presets creation from the information available at fmscan.org (e.g. pick the 15 strongest stations at a specific location, remove duplicates, sort by frequency)

Long-term/low-priority ideas:

Add debug/assertion primitives to do more run-time internal checks, for example guard values to protect variables, null pointer checks, initialisation checks for mutexes/wakeup structures, checks to verify the proper context is used for a call (e.g. no mutex waits invoked in interrupt context). This should be done in such a way that it does not affect speed or size of "normal" builds, only "debug" builds.