SkillAgentSearch skills...

Rockpod

Custom Rockbox firmware for iPod Classic & Video.

Install / Use

/learn @nuxcodes/Rockpod
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="screenshots/hero-image.jpeg" alt="Rockpod Hero Image" width="600"> <h1 align="center">Rockpod</h1> <p align="center"> Custom Rockbox firmware for iPod Classic and iPod Video.<br> MFi digital audio, Cover Flow, dynamic colors. </p> <p align="center"> <a href="https://github.com/nuxcodes/rockpod/releases/latest"><img src="https://img.shields.io/github/v/release/nuxcodes/rockpod?style=flat-square&color=blue" alt="Latest Release"></a> <br/> <a href='https://ko-fi.com/B0B61UR8ZH' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi5.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a> </p> </p>

Rockpod is a Rockbox fork for iPod Classic (6th/7th gen, 2007–2014) and iPod Video (5th/5.5th gen, 2005–2006). It adds MFi digital audio output, a rewritten Cover Flow, dynamic album art colors, and SSD-aware power management.

Rockpod supports both HDD and iFlash-modded units. Both iPod models share the same 320x240 display and get the same UI features — Cover Flow, dynamic colors, themes, and rendering improvements. Hardware-specific features like SSD power management and MFi digital audio are iPod Classic only for now. It's a drop-in replacement for the official Rockbox firmware, with no reformatting or data loss.


Features

Digital Audio Output

Supported on iPod Classic 6G/7G

Rockpod is the first open source firmware to support digital audio output over the iPod's dock connector. It handles the full Apple iAP authentication handshake, negotiates sample rate with the accessory, and sends bit-perfect PCM over USB, bypassing the iPod's internal DAC. The entire Rockbox DSP chain (EQ, crossfeed, replaygain) is preserved in the output path.

This works with any MFi iPod dock connector accessory — DACs, speakers, docks, car stereos, and other digital audio accessories built for the iPod.

  • Full iAP/IDPS authentication — certificate exchange, challenge-response, FID token negotiation, Digital Audio Lingo activation
  • 3 MB TX ring buffer — absorbs codec decode bursts and compensates for I2S/USB clock drift (~44,117 Hz vs 44,100 Hz)
  • Double-buffered ISO IN — DMA re-arm decoupled from audio pull for glitch-free streaming on docks with HID polling
  • Glitch-free transitions — fade-in on play, fade-out on pause/underflow, buffer flush between tracks
  • Full DSP chain preserved — EQ, crossfeed, replaygain, stereo width all apply before the USB stream
  • HP amps auto-mute — CS42L55 headphone amplifiers power down during USB streaming
  • USB-C compatible — digital audio output also works with USB-C connector mods

None of this existed in Rockbox before. It required building a new protocol stack from scratch: USB Audio Class 1.0 source mode, Apple's iAP/IDPS authentication (certificate exchange, challenge-response, FID token negotiation), a custom iAP-over-USB-HID transport layer, and Digital Audio Lingo to activate streaming.

<details> <summary><strong>Compatible devices</strong></summary>

Any iPod dock connector accessory that uses Digital Audio Lingo (0x0A) should work. The OPPO HA-2SE is the primary tested device. DACs, speakers, docks, and car stereos that accept digital audio from an iPod are all expected to be compatible.

DACs

  • OPPO HA-2 / HA-2SE
  • Sony PHA-1 / PHA-1A
  • Sony PHA-2 / PHA-2A
  • Onkyo DAC-HA200
  • Denon DA-10
  • JDS Labs C5D
  • Fostex HP-P1
  • Cypher Labs AlgoRhythm Solo / Solo -dB

Speakers / Docks — MFi-certified speakers and docks that use digital audio (not analog line-out) over the dock connector should also work.

</details> <details> <summary><strong>Under the hood: signal flow</strong></summary>
iPod connects via dock USB
    │
    ├─ USB enumeration: Config 2 = UAC1 source + iAP HID (Apple VID/PID 0x05AC:0x1261)
    │
    ├─ iAP authentication over USB HID:
    │     StartIDPS → SetFIDTokenValues → EndIDPS
    │     → MFi certificate exchange → challenge-response
    │
    ├─ Digital Audio Lingo activation:
    │     GetAccSampleRateCaps → TrackNewAudioAttributes @ 44.1 kHz
    │
    ├─ Accessory selects alt-setting on source streaming interface
    │
    └─ Audio path:
          Codec → DSP (EQ, crossfeed, replaygain)
            → PCM mixer → buffer hook → TX ring buffer
              → double-buffered ISO IN → MFi accessory

The iAP HID transport handles multi-report fragmentation for large payloads (128-byte RSA signatures span multiple HID reports, reassembled via link control bytes). Transaction IDs are tracked and echoed for all post-IDPS commands.

Key files:

  • firmware/usbstack/usb_audio.c — source mode streaming engine
  • firmware/usbstack/usb_iap_hid.c — iAP-over-USB-HID transport (new)
  • firmware/usbstack/usb_core.c — dual USB configuration
  • apps/iap/iap-lingo0.c — IDPS protocol, Digital Audio Lingo
</details>

Cover Flow

Stock PictureFlow shows 3 slides, uses hardcoded colors, and is buried in the plugins menu. Rockpod rewrites the renderer to match Apple's Cover Flow — 7 visible slides w/ uniform tilt angle, custom theme integration, status bar toggle, faster transitions — and promotes it to a top-level menu entry.

<!-- TODO: Add before/after screenshot — stock PictureFlow vs Rockpod Cover Flow -->

| Cover Flow | Full-screen mode | | :------------------------------------------------: | :-------------------------------------------------------------: | | <img src="screenshots/cover-flow.png" width="280"> | <img src="screenshots/cover-flow-no-statusbar.png" width="280"> | | Status bar on | Status bar toggled off |

| Track list | Display settings | | :----------------------------------------------------------: | :---------------------------------------------------------: | | <img src="screenshots/cover-flow-tracklist.png" width="280"> | <img src="screenshots/cover-flow-settings.png" width="280"> | | Title only — no track number prefix | Slide tuck, crossfade, speed |

  • Theme-aware colors — slide edges and backgrounds fade toward your theme's background color, not hardcoded black
  • Status bar support — integrates with the SBS status bar, showing "Cover Flow" in the title bar. Can be toggled off for full-screen mode
  • 7 visible slides w/ parallel slide rendering — matching Apple's Cover Flow projection
  • Configurable transition speed — scroll and transition speeds are adjustable in display settings
  • Text crossfade — album and artist text fades smoothly between slides instead of snapping
  • 100-slot slide cache (up from 64), Bayer-ordered dithering, 1-second background polling in SSD mode
  • Track list shows title only — no "1.03 -" disc/track number prefixes
  • No startup delay — the 2-second "Loading..." splash is eliminated under SSD mode

Dynamic Colors

The UI automatically extracts dominant and accent colors from the currently playing album art and applies them across all skinnable screens — menus, status bar, and now playing. Colors fade smoothly over 500 ms when the track changes.

| | | | :------------------------------------------------------: | :------------------------------------------------------: | | <img src="screenshots/themify2-1.png" width="280"> | <img src="screenshots/themify2-2.png" width="280"> | | <img src="screenshots/themify2-4.png" width="280"> | <img src="screenshots/themify2-3.png" width="280"> |

  • Album art color extraction — dominant and accent colors pulled from the current track's artwork
  • Full theme color coverage — foreground, background, selector bar, selector text, selector gradient, and list separators all adapt
  • Smooth transitions — 500 ms fade between color palettes on track change
  • Contrast enforcement — accent colors are pushed brighter or darker if insufficient contrast against the dominant color
  • On by default — can be toggled off under Theme Settings

Storage Mode

Supported on iPod Classic 6G/7G

Rockpod works with both stock HDDs and iFlash SSD mods. HDD behavior is unchanged from stock Rockbox. When an SSD is detected, Rockpod switches to a lighter sleep strategy — faster wake times, lower idle power draw, and no unnecessary spin-up delays.

| Storage Mode | | :--------------------------------------------------- | | <img src="screenshots/storage-mode.png" width="280"> | | Auto-detect, or manually select HDD / SSD |

  • Auto-detection via ATA IDENTIFY heuristics (rotation rate, form factor, TRIM support, CFA compliance)
  • Two-phase idle sleep — clock-gate after 7 seconds (near-instant wake), then cut AUTOLDO after 30 seconds with backlight off
  • Instant wake from clock-gate — no bus reset, no re-identify (<5 ms)
  • Pre-wake on backlight — storage wakes when the screen turns on, ready before you navigate
  • HDD features bypassed — APM and AAM skipped for SSDs
  • Plugin splash skipped — no "Loading..." screen when load times are negligible
<details> <summary><strong>Under the hood: sleep states</strong></summary>

| State | What happens | Wake time | | --------------- | --------------------------------------------- | --------- | | Active | Normal operation | — | | Clock-gated | ATA clock off, flash powered, GPIOs held | <5 ms | | Deep sleep | AUTOLDO cut, GPIOs tri-stated, controller off | ~330 ms |

Stock HDD behavior: full power

Related Skills

View on GitHub
GitHub Stars44
CategoryContent
Updated11h ago
Forks2

Languages

C

Security Score

75/100

Audited on Mar 31, 2026

No findings