Rockbox: The Open Source Jukebox Firmware


When we acquire an electronic device, like a router, an MP3 player or a DVD writer, we often have to deal with problems: bugs, instability, lack of certain features and other typical problems. Sometimes hardware vendors offer updates to resolve that, which is what we call firmware updates - a software program set of instructions programmed on a hardware device. It provides the necessary instructions for how the device communicates with its hardware. Firmware is typically stored in the flash memory of a hardware device. While ROM is "read-only memory," flash memory can be erased and rewritten in blocks consisting in multiple locations.

Firmware can be thought of as "semi-permanent" since it remains the same unless it is updated by a firmware updater. You may need to update the firmware of certain devices, such as hard drives and video cards in order for them to work with a new operating system. CD and DVD drive manufacturers often make firmware updates available that allow the drives to read and write faster media. Sometimes manufacturers release firmware updates that simply make their devices work more efficiently. You can usually find firmware updates by going to the "Support" or "Downloads" area of a manufacturer's website. Keeping your firmware up-to-date is often not necessary, but it is still a good idea. Just make sure that once you start a firmware updater, you let the update finish, because most devices will not function if their firmware is not recognized.

Some information retrieved from Sharpened.net.

Rockbox is to MP3 players like OpenWRT for wireless routers. In a similar fashion, Liggy & Dee also provide alternative firmwares to NEC drivers, albeit they're modified and not completely rewritten. Typically, they alter specific information from the original firmware to remove region code setting, add bitsetting support and adjust media codes strategies for faster and better DVD±R writing.

Rockbox is an open source replacement firmware for MP3 players and it runs on a variety of models:

  • Archos: Jukebox 5000, 6000, Studio, Recorder, FM Recorder, Recorder V2, Ondio FM and Ondio SP
  • iRiver: H100 and H300 series
  • Apple: iPod 4th gen (grayscale and color), 5th gen (Video), Nano and Mini 1st/2nd gen
  • iAudio: X5 (including X5V and X5L).
  • Additional models are in development.

You should be aware that Rockbox is only "stable" on the Archos models. Why "stable"? Rockbox works reasonable well for all the other listed platforms, but they are technically in development. This doesn't mean your Archos will not crash at all or that your iRiver will be continuously crashing. It's just a side note so that you understand there are certain known problems (such as reduced battery life on the iRiver H300) that are currently being fixed.


Like it is said on the introduction page, sometimes consumers are looking for certain functionalities that the hardware manufacturer does not provide via a firmware upgrade. Maybe that model was discontinued and, as consequence, its manufacturer won't update it anymore. Rockbox is the ideal replacement for your MP3 player if you want more functionality and efficiency, while customization and usability are still top keywords.

All models benefit from an incredible high quality sound playback, plugins, games and graphical demos, a broad spectrum of customization (fonts, colors, backgrounds and so on), language internationalization, and voice files for the visually impaired. You can also configure your 'While Playing Screen" (WPS), where you're the one who chooses what to see '“ status bar, ID3 information, power related information and a whole lot more.

Below are screenshots of three famous plugins '“ Doom, Rockboy (gameboy emulator) and an Oscilloscope. You can also see a Winamp-like While Playing Screen (WPS), created by Jolt. All screenshots were taken on an iRiver H3xx, but these plugins are also available on other platforms.

The good thing about Rockbox is that only the Bootloader
(the programmed instructions needed to initiate the device and boot Rockbox) is
flashed into memory. The actual operating system '“ Rockbox, in this case, is loaded from the hard disc, resulting in a very fast booting operation. Therefore, updating is even easier: you just need to unzip the .rockbox folder to your player and restart it! This means you will only flash your player once. If you ever run across problems due to a bad Rockbox build (corrupted files, for example), you have one of two choices: reset the settings of your Rockbox build (a long press on a specific button, for example) or connecting your player via USB on the Bootloader mode, before loading Rockbox from the hard disc. If you want, you can now copy a more recent build or go back to the working version! There is a possibility of running Rockbox from the flash memory on the Archos players, with the advantage of booting Rockbox even faster, but it is completely optional, since future updates required flashing the memory again [1]. Here is a summary of the bootloader options on a variety of platforms:

  • iRiver and iAudio:
    Rockbox Bootloader in Flash Memory plus Rockbox loaded from disk (always).
  • iPod: Rockbox Bootloader and Rockbox loaded from
    disk. The only software in the Flash Memory is the Apple Loader, which is
    left untouched. The Bootloader is merged with the retail firmware and put on
    the special firmware partition.
  • Archos: By default, Rockbox is loaded from
    disk with the Archos Loader, which would normally look an on-disk update of
    the Archos firmware (Flash ROM isn't touched). Optionally, you can flash
    the memory with the Bootloader plus the whole Rockbox core in a
    modular way, but this isn't possible on all units (depends on
    the type of Flash Memory Archos built into it)
    [1].

New patches with corrected bugs or new functionalities are also an important contribution to the Rockbox development. Generally, these patches aren't on the official Rockbox daily builds, because the Rockbox crew has to make sure they follow the Rockbox architecture and will not cause problems. I'd like to compare patches to medical pills: you have to make sure the lateral effects will be inferior to what the good benefits are. Sometimes developers might think a certain feature is nice but it not mature enough to be part of the official builds or they plain disagree it should be added.

But the Bootloader advantage isn't just the faster booting. It also functions as a dual-boot (or triple-boot, in case of the iPods) software, allowing to boot the original firmware and Rockbox. For instance, if you need a particular feature only present on the original firmware (like video playback), you can boot it right away without any hassle. Currently dual-booting is officially supported on all players except the iAudio X5, which can be installed by a patch created by Rani Hod. On the Archos models, dual-boot also requires flashing, but since Rockbox always has disk access via the Archos firmware in flash memory, it is not mandatory. iPod Linux (a similar project like Rockbox, but exclusive for iPods and based on a Linux kernel) is also supported by the Rockbox Bootloader. In the same way, iPod Linux Loader (iPL) also provides support for the Rockbox software. Contrary to Rockbox Bootloader, iPL presents a menu in which users can select the firmware they want to boot, while Rockbox Booloader loads Rockbox as fast as it can, unless you're holding a button whilst it starts.

Rockbox can be installed and compiled on a variety of platforms, like Windows, Linux and Apple. In most of the cases, installing Rockbox doesn't take more then five minutes if you're comfortable with general firmware upgrades.

The Rockbox community considers these points as the key-features of Rockbox:

  • Support for MP3, Ogg Vorbis, AC3, AAC, Musepack, Midi , AIFF, ALAC, FLAC, Shorten, WAV, and Wavpack Sound Codecs (On Archos, only MP2/MP3 playback is possible because they do the decoding in hardware. One exception is WAV, which is already supported via a plugin and will hopefully be integrated into the playback engine before Rockbox v3.1).
  • Gapless Playback.
  • 5 Band Parametric Equalizer (except on Archos - however, Rockbox offers all the advanced audio settings provided by the chip, unlike Archos).
  • High Resolution Volume Control, 82 levels (Note: The number of volume levels varies with target).
  • Abilty to create your own theme or use one of these.
  • Crossfade, Crossfeed, and Replay Gain (except on Archos).
  • Picture and text viewing
  • Calendar
  • Doom
  • Real Time Clock on the player's that have the necessary hardware
  • Tag Database
  • Unicode Support
  • On The Fly Playlists
  • Voice Interface, and Multilingual Interface
  • Many Plugins and Games to enhance Rockbox even further.
  • Open Source, so Rockbox is constantly improved.

The Rockbox webpage has a detailed feature description for each player the platform works for. Rockbox outperforms all the original firmwares in almost all fields.

The work done with the Rockbox manual is impressive. Most models feature more then 100 pages with detailed information about every existing option in Rockbox settings, including instructions on how to create bookmarks, playlists, load plugins and so much more!


CD Freaks has had the pleasure to interview one of the Rockbox project founders '“ Daniel Stenberg (Bagder on Rockbox
community). We would like to say that we appreciate his taking time for this
interview.

 

CD Freaks (CDF): What is your name and where do you live?

 

Bagder (DS):  Daniel Stenberg, I live inStockholm Sweden. I'm 35, I have a wife - and a daughter aged 2.5

 

CDF:  What is your role on Rockbox?

 

DS: I've been involved in the project since the first shaky steps, before even any code existed. I'm the brother of Bjorn Stenberg who is the founder of the project and who pulled together the original team of volunteers. Me, Bjorn and Linus are the three original core developers that have been with the project since the start. I've done a lot of development and I own three Rockbox devices.

 

CDF: What was the motivation behind development of Rockbox?

 

DS: Originally, it was due to the crappy firmware of the Archos Player, which was one of the first hard-disk based mp3 players on the market. And us being, embedded developers since many years, we thought "heck, shouldn't we be able to do a better one ourselves?"

 

CDF: So you're an embedded developer. Is that still your professional occupation?

 

DS: Yes, I'm a consultant mainly doing work in various embedded systems. All three of us were. At the moment, Bjorn works with other stuff but we all have this background and interest. In fact, we all grew up with C64 and assembler hacking back in the 80s.

 

CDF: What were the most difficult steps in the beginning?

 

DS: The very first problems involved figuring out how to actually make our code run on the player. And since the Archos had scrambled their disk-based firmware file, we had to figure out how that worked to be able to replace it.

 

CDF: What are main problems you deal with when coding for Rockbox?

 

DS: Currently our main problems are to figure out how the various target players work so that we can program the best possible way to maximize run time and cpu usage.

 

CDF: A project like Rockbox requires an incredible amount of time and patience. Have you ever thought on abandoning it?

 

DS: We've been doing this since late 2001, so of course there are periods that you're not feeling too motivated but there's nothing wrong in keeping it low for a while. There are so many involved in the project it runs forward anyway and the interest is always coming back again. Of course one day some of us will abandon it but people come and go all the time. None of us are vital to the survival of the project.

 

CDF: Did you build your own tools for the hardware interface with the MP3 players?

 

DS: We use plain old make and gcc to build code for the players. We write most of the code in C with small parts in ASM. We have written a fair amount of architecture and helpful scripts but not any actual "build tools". Rockbox is also using our own very tiny kernel.

 

CDF: Do you have any idea of how many contributors regularly help Rockbox development?

 

DS: We have ~180 named contributors, ~3000 registered users in the Rockbox forum, ~1000 subscribers to the mailing lists and a few hundred registered users in the bug tracker, but regularly...hard to tell. We're some 30 people that are more or less "core" people.

 

CDF: Which moments were the most exciting ones, while coding Rockbox?

 

DS: The first "I've got sound" ones I think. When you get that feeling "it can actually work - we can do this for real". And of course, it's always very rewarding to consider that we are now actually outperforming lots of original firmwares and that we have the amount of users and developers that we do.

 

CDF: Have you ever been contacted by the original firmware makers? Job proposals, implementation of Rockbox ideas, etc.

 

DS: Nopes. Archos once contacted Bjorn and wanted to ship Rockbox on some sort of CD with their players, but since they wanted to say it was a "cooperation" between them and us we rejected that suggestion since they never helped us one tiny bit.

 

CDF: What do you think is missing to make rockbox mainstream?

 

DS: I guess it should have more eye-candy out-of-the-box, friendlier (Windows) installers. I guess getting a blessing from an actual manufacturer would also boost usage quite a lot. Not that I see that happening anytime soon… I also think that the splendid work on the manuals will make more users able to find and use Rockbox in time.

 

CDF: What are the prospects for Rockbox?

 

DS: I think the future is bright. I mean, looking at our features compared to any DAP available...there's only a few things we miss, when they're done, within a few years, we'll have a firmware that just have to become attractive and tempting for HW makers to use. The funny thing is that Rockbox evens out HW differences since it works the same on so many different players.

 

CDF: Do you plan running any commercial type of Rockbox in the future? Like selling its technology to big groups…

 

DS: Not really. We don't have any real means to do that and so far there haven't been any demands either. I mean, the only actual possibility it so sell consultancy services like for porting or adjusting Rockbox to their platforms.

 

CDF: How many hours per day do you spend on Rockbox?

 

DS: Hard to tell, since I tend to have my IRC running all day at work and do a little fiddling every now and then, but I'd say perhaps 2-3 hours in average

 

CDF: When can we expect video playblack on Rockbox?

 

DS: That's impossible to tell. None of the core devs are working on it, since we're still too focused on fixing bugs and adding things we consider more important for an audio player. I would expect that one day some interested and skilled enough person steps forward and implements a first good enough version that at least works…then we'll all join in and continue from there to make it as good as possible. That's about how Rockboy [Gameboy emulator] and doom were added. So the more people get to know about Rockbox and the better it gets, the more likely there is that a skilled person shows up and writes a video codec

 

CDF: Is there any support for DRM 'features'?

 

DS: DRM just can't be supported given the open source nature of Rockbox.

 

CDF: Do you have any final thoughts?

 

DS: It could possibly be around two things: 1) we are _very_ open in the project with all IRC logs, all mails and everything since day 1 public and available on the web site. We take copyright and legal issues seriously. This is perfectly legal because those are things "common people" always will ask about. And 2) I think a contribution factor for our good project development and speed is the pretty good architecture with daily and automatic builds we have setup that allows users to stay up-to-date easily and allow devs to know if changes break builds on any of the vast amount of supported targets, since no single dev owns all devices Rockbox runs on.


Such a complex software interface requires proper documentation so that everyone can enjoy the benefits of Rockbox. The official website, www.rockbox.org has a very clean front-page, with the latest CVS activity and the most important news. This is good because it easily shows what has been the progress with Rockbox development.

The Download page is also automatically updated with Daily Builds and links to other archives, such as the final Rockbox v2.5 (dated 2005-09-22), the manuals for each player and the Rockbox source code.

The Documentation area is a wealthy information resource centre. Almost all Rockbox questions are conveniently explained there. Since the software used to manage this information is a Wiki system, everyone can edit articles and update them with more detailed information. There are step-by-step installation instructions for the beginners but also more advanced information like 'How to create your own WPS (While Playing Screen)".

Most of the technical aspects are discussed on the official IRC channel, where everything is logged for future reference. The IRC channel is also used for some questions and answers, but those can also be posted at the official forums.

If you want your player to be updated with the latest Rockbox build, compiled at every source change, you will be download a lot of the Bleeding Edge builds. At the time of writing, there were 45 builds in 259 seconds (4 mins 19 secs), which makes 5.8 seconds/build. Impressive!

If you find any bugs, got feature requests or want to contribute with patches you made, Rockbox also provides a platform for that (Flyspray).


Originally planned to be released on 1st May, Rockbox v3.0 was delayed until June, but the final release date is yet to be announced. The Core Team is currently deciding what to do,
since iRiver H300 is being a huge headache for them. According to
Wiki page on the Rockbox page, here is the summary for the 3.0 version:

 

Supported Platforms

The functionality below should work (or be unimplementable) on all targets below.

* Archos Player, Recorder, Recorder v2, Recorder FM, Ondio
* iRiver H1xx, H3xx

Release critical features

The freeze will be extended if necessary until the following are fully implemented/

* Core functionality (everything that worked in Rockbox 2.5) (Please report missing functionality for supported platforms in the bug tracker.)
* iRiver power consumption issues
* Disable Tag DB / runtime DB and replace with tagcache (runtime DB / song ratings not included in this release)
* Software codec / EQ
* Remote support for iRiver
* All WPS/UI functionality currently in CVS
* Voice Support

Other goals for release

* No open bugs on supported platforms
* Manual 3.0
* Bootloader release
* Doom plugin
* Light (striped down themes, fonts, WPSes. etc) and full zip files available for download
* Support for platform specific versions of themes

Rockbox 3.1 - codename Fireworks

Approximate release date: November 2006

Supported Platforms

* Archos Player, Recorder, Recorder v2, Recorder FM, Ondio
* iRiver H1xx, H3xx
* iPod 2g, 4g, 5g, Nano, Mini 1/2g
* iAudio X5

Proposed new features:

* Runtime DB
* Album art
* Viewports in WPS
* One image file WPSes (using tar files)
* Platform independent architecture improvements to facilitate porting to new platforms
o New /platform directory containing heirarchical structure of platform specific code to reduce #ifdef usage and code duplication
o Platform specific #defines in /firmware replaced by inline functions included from the /platform heirarchy
o Keymappings for applications to be based upon platform independent functions (eg next item, last item, up in heirarchy etc.) which are defined in a single platform specific file. No #ifdef KEYPAD_* statements to remain.
o All #ifdefs in /apps to be function specific (eg HAS_RTC, HAS_RECORD, HAS_MENU_BAR) rather than hardware specific

Rockbox v3.0 is considered to be the biggest step since v1.0, which should represent a mark of stability and quality in the jukebox firmware area. This is why the core developers are deciding the best way to deliver it. Most people are waiting for v3.0 to be released to install it on their jukeboxes and they are aware of this fact. CD Freaks wishes a continuation of good work on the Rockbox development and would like to thank all contributors/developers for their great work on this amazing software!

No posts to display