The XIMP Overview

So what's this all about ?

XIMP is an external user interface, mainly created to control a mp3 player program that runs on a PC. You can use this to build a standalone mp3 player that looks like a normal cd player.



What do I need to build a standalone mp3 player ?

1.) A pentium mainboard. P75 will be fast enough.
2.) DOS or Win95 (the DOS player isn't finished yet).
3.) A XIMP compatible mp3 player. My own Win95 player will be released soon.
4.) A power supply. I used an external one, so I don't need a fan.
5.) A vga grapics card (can be an old ISA type).
6.) A sound card (soundblaster or compatible for DOS, for Win95 any card that has Win95 drivers.
7.) A boot device (hard disk). You can put all of your favorite mp3's on it, if it is big enough.
8.) An (optional) CD-ROM to play mp3's from cd.
9.) An (optional) network interface card for remote maintainance, software updates and adding new mp3's.
10.) Last not least a XIMP device. It replaces keyboard and monitor.
11.) A housing for all of this.
12.) Time ;-)


How does XIMP work?

It's simply a LC-Display and some keys connected to the PC's parallel port (printer port).

Take a look at the schematic.

The printer port has 8 data outputs, 4 status outputs and 5 status inputs. 6 of the data outputs are used to drive the LCD. The LCD module has a special driver chip from Hitachi on it,the HD44780. It has builtin display logic, a character generator and an interface.

This is a very common chip, most of the alphanumeric LCD's you can get on the market use this type. There are many variations of LCD's, from 1 row * 16 characters to 4 rows * 20 characters. I used a 4*20 type, because it's difficult to display all informations on a smaller one. But I will support all types of LCD's in the future, to make it possible to use cheap surplus LCD's.

Normally the LCD needs an additional pwer supply (+5V). If you are building a standalone player, you can simply get it from the main power supply. If you are planning to use XIMP as an external device, you can get the +5V from the PC's keyboard connector.

The program can display the informations on the LCD by sending commands and data through the data outputs.

See the additional documenation and the example code how this can be done.

Back to XIMP:
The 16 keys form a matrix keyboard of 4 rows and 4 columns. Every column is connected to one of the status outputs. Every row is connected to one of the status inputs.

To know what key has been pressed, the program must do the following:
- set one column to low (0 Volt), leave all others high (+5 Volts).
- read all rows. If one key in the column is pressed, the correspondig row input will be low.
- proceed with the next column.

See the example code how this can be done with common programming languages.