Personal Jukebox

The Personal Jukebox (also known as PJB-100 or Music Compressor) was the first consumer hard drive-based digital audio player. Introduced in 1999, it preceded the Apple iPod, SanDisk Sansa, and other similar players. It was designed and developed by Compaq Research (SRC and PAAD groups) starting in May 1998. Compaq did not release the player themselves, but licensed the design to HanGo Electronics Co., Ltd. of South Korea.

Compaq Research published a software development kit for the unit, which enabled users to develop tools, drivers and applications for different operating systems.

Development
The PJB was created as a personal audio appliance prototype by DEC Systems Research Center and Palo Alto Advanced Development group (PAAD). The project started in May 1998, a month before the Digital Equipment Corporation merger into Compaq was completed, and a final product was brought to market in November 1999. The PJB was the first hard-disk-based MP3 player made available on the market.

The "100" in the "PJB-100" name was chosen from the capacity of the original 4.86 GB hard drive in the first Personal Jukebox. With this drive, the unit was expected to hold about 100 popular (45 minute) music CDs encoded at 128 kbit/s. The name was kept for the later models with bigger hard drives, even though these could store a larger number of albums.

The PJB-100 was the first MP3 portable to garner a "Milestone" product designation from MP3 Newswire, which they defined in their January 2000 review of the PJB-100 as "any product whose breakthrough innovations are so significant, they influence the future course of its industry".

Licensing, marketing and distribution
Instead of manufacturing the player themselves, Compaq licensed the design to HanGo, which called it the "Personal Jukebox - PJB-100". The license from Compaq to HanGo was worldwide exclusive - nobody else could license the technology from Compaq during the term of the HanGo license. HanGo granted a distribution agreement to US company Hy-Tek Manufacturing of Sugar Grove, IL in 2001. HanGo rebranded the units sold through Hy-Tek as the "Compressor".

HanGo took the PJB-100 into mass production and introduced it to the public at the Las Vegas COMDEX in November 1999. The first units were sold in a special auction held by MP3.com, with bids exceeding US$1000. Some winners received their players before the end of 1999. The first auctioned units were hand-built by the Compaq engineers who designed it and had single-digit serial numbers.

Specifications

 * Measurements: 150 mm × 80 mm × 26 mm (5.9 in × 3.15 in × 1.0 in) (W×H×D)
 * Weight: 280g (9.9 ounces), 304 g (10.7 ounces) including battery
 * Playback: MPEG-1 Audio Layer 3 (MP3) at bitrates of 8 to 320kbit/s and a sample rate of 44.1kHz (playback support for WAV is in the firmware, but is not enabled - it was used by the developers before the MP3 decoder was licensed from Fraunhofer IIS).
 * Audio signal-to-noise ratio (S/N): >90dB
 * Audio total harmonic distortion (THD): <0.1%
 * Frequency response: 20Hz to 20kHz
 * Audio output power: >50 mW at 32 ohm impedance

Digital signal processor (DSP)
The heart of the PJB is its Digital Signal Processor. It controls the hard-drive, buttons, LCD, USB interface and handles MP3-decoding for playback. The PJB uses a 24-bit Motorola 56309 DSP running at 33 MHz. The MP3 codec (which is about 2 MB in assembly DSP code) was licensed from Thomson and Fraunhofer IIS.

Memory
The PJB has 12 MB of DRAM and 1 MB of flash memory.

The DRAM is used to buffer data (between 8 and 12 minutes of music, depending on the bitrate used for encoding) from the hard disk during playback. The buffer allows the disk to be run only intermittently, preserving battery life. When the hard-disk is stopped, battery life is preserved; the ramp-loaded heads also retract from the disk surface, helping to reduce the possibility of damage.

The flash memory houses the firmware as well as the bootstrap.

Communication interface
To transfer data, the PJB is equipped with a USB 1.1 Type B connector. Inside is a Philips PDIUSBD12 USB peripheral controller, which averages a raw throughput of about 400 kB/s. Early prototypes used Ethernet instead of USB for data transmission. USB was used in production models because it was more common than Ethernet on standard home computers in 1998.

Display
The PJB's LCD has a resolution of 128×64 pixels (2:1 ratio) at a diameter of 3 inches (76.2 mm). Later versions of the PJB also featured a backlit display (the backlight comes on when the unit is powered on, or a button is pressed and turns off automatically after a few seconds). The character set the PJB uses internally is Latin-1 (ISO-8859-1), with some minor variations. One of the Compaq developers stated that "it's missing some of the symbols in the range 160 to 255 (because I got bored when I was creating them :-). Upper case accented characters are rendered unaccented because that looks better within the font's 9-pixel height. There are some glyphs in the range 0 to 31, used for the symbols on the screen.

Hard drive
While flash players could store between 32 and a maximum of 128 MB at the time, the first PJB could store 4.86 GB of music. While the PJB-100 was updated as bigger drives became available, it was also possible for end users to replace the hard drive (although voiding the warranty in that case).

Buttons/controls
The PJB has 6 buttons on the front:
 * Left/Previous/Rewind
 * Right/Next/Forward
 * Up
 * Down
 * Play/Pause
 * Stop/Power off

Volume is adjusted by a wheel on the unit's right side, using a digital mechanism (it can be turned indefinitely). It also is possible to click or push the wheel, which pauses playback and turns the unit off after about one minute. When the unit is powered off and the wheel is pressed for a few seconds, playback resumes. This also works when the buttons are locked, in case the main controls cannot be easily accessed.

On the same side is also a small switch which locks the unit’s controls (except for the wheel).

Battery and power supply
The PJB is not powered by dry cell batteries like most other players at the time of its development, but by a provided HanGo Lithium ion battery. HanGo sold a more powerful 1600 mA battery to be used in the PJB.

The PJB includes a 5 V power supply which charges the battery and enables playback without a battery in the unit at all. The charging control circuit for the battery is built into the PJB itself, not the power supply, so the use of a replacement power supply requires only the proper voltage and sufficient current capacity.

Included accessories
Compared to other players, the PJB included accessories. Details varied from distributor to distributor, but UHU/Portacomp AG included:
 * Koss Porta Pro headphones
 * Leather case with belt clip
 * 5 V power supply with converters for European and American power outlets (except UK)
 * 1350 mW/3.6 V Li-ion battery (see the battery section)
 * USB 1.1 compliant A-B connector cable
 * Cinch-Audio cable 3.5 mm to RCA
 * Manual (in German and English)
 * CD with drivers and Jukebox Manager software (Windows, Mac OS/OS X, Linux)

Optional accessories
Accessories were offered by distributors (among them headphones and speakers, also for use with other audio hardware than the PJB and replacements for the included accessories):
 * 1600 mAh Li-ion battery
 * Waterproof neoprene bag for use of the PJB at a beach or pool
 * Audio-cassette adapter for playback on car/home stereos
 * Swan-neck car-holder
 * Magnetic mounts to attach the PJB within a car
 * Power-supply-adapters for car cigarette-lighters

Features and version history
The latest firmware version, which surfaced in December 2003, is v2.3.3-alpha; the latest stable version is v2.3.2, introduced in mid-2001. Initially, the functions provided by the player were basic: when music was played back, selecting another track would immediately start this track and stop the current one; playlists had to be created on the computer; files could only be uploaded to the PJB, but not downloaded back to the computer. New firmware versions came out regularly, but were mostly bug fixes with very few new functions introduced.

Later firmware versions added some of the most requested features:
 * Files could be transferred from player to PC
 * The ability to browse without interrupting playback
 * Some (hidden) games were added

File system and table of contents (TOC)
The PJB's disk is not formatted as FAT or FAT32 as is the case with most of the players that were released later, and enables those to be mounted as another drive in an operating system. Instead, a unique file system is used, which, while losing the mounting ability, is optimized for the structure of MP3 files (having a cluster size of 128 kB, which equals about 8 seconds of 128-kBit-encoded MP3-music). Therefore, managing actions like defragging become unnecessary. The file system allows the linking of Tracks into various Discs/Sets. Therefore, each track is ideally only stored once on the disc and recurring occurrences of it (for example in playlists or samplers) are just links to the original file. This may help to preserve a good amount of disk space and allows for more tracks to be stored on the disk.

All of this info is stored in the TOC (table of contents). The TOC is stored in a human-readable text-format and can be downloaded, changed with a text editor and re-uploaded to the PJB again. A copy of the TOC is always stored on the unit as well, so errors and damage to the original TOC can usually be fixed.

Software development kit
The original developers at Compaq Research designed an SDK (Software Development Kit) for the unit and published it under the Open Source GPL license in 2000.

Drivers
The PJB does not integrate itself as a USB mass storage device into modern operating systems. Special drivers are required to make the operating system recognize an attached PJB. Drivers for Microsoft Windows and Mac OS were included, while drivers for Linux were developed by the open source community.

Jukebox Manager (Windows, Mac OS)
The included management tool for the PJB is the Jukebox Manager (the latest Windows version is v1.5.6). It can create/delete/manage Sets, Discs and Tracks (when uploading, the user can choose which ID3-tag will represent which level). It can also encode CDs directly onto the PJB and query the CDDB for the proper disc/track information. Finally, it can update the firmware. If manipulating some values in the Windows Registry, a hidden menu appears, which can be used to debug and, in some cases repair a damaged TOC. The Jukebox Manager does not make use of some of the firmware’s later features, such as downloading tracks back to the computer and does not provide advanced features such as mass-uploading, synchronizing or creating playlists from M3U-playlists.

Linux projects
There are Linux projects operating on SourceForge (some under the banner of the OpenPJB project). These range from Jukebox-Manager-like applications with a GUI for various window managers to projects making the PJB's file system mountable as a drive in Linux. Some of the projects include:
 * Jukebox Manager (KDE)
 * GNOME/GTK+ GUI Personal Jukebox Manager (GNOME)
 * Emacs PJB Manager
 * PJB File System for Linux (Kernel 2.3/4, 2.6)
 * PJB VFS module (for use with Nautilus)
 * pjmirror (written in Perl to synchronize the PJB with data on the PC)