PhilReeve.com logo

MP3 Carputer

An old PC I've turned in to an mp3 player for my car...

Development Stage: The Hardware

An old PC

75MHz Pentium I
48MB RAM
80GB Hard Drive (this is new)
Sound Blaster AWE64 ISA Sound Card
Edimax 802.11g Wireless Card (note aerial on cable)
Old PC

LCD module

Blue-backlit negative
HD44780 based
4x16 characters (behaves like 2x32)
Can't remember where I got this but it was about £20
LCD module

Parallel Cable, other parts

Parallel cable with just male end left on
Floppy drive cable
Some terminal blocks (min. 14 connections)
2 1KΩ Potentiometers
internal PC power connector, as shown
Parallel cable and other parts

PC software setup

The PC has a clean install of Windows 98. I had to use Seagate's DiscWizard software to overcome the old BIOS's hard drive capacity limitation. I've installed the inpout32 DLL and MySql.

Development Setup

The Development Environment is Visual C++ 6.0, with DirectX9.0 SDK installed.

The project type I started with was "Win32 Console application with MFC support". However, after a few months (years actually) working on it in stages, I realised I needed to change the project type so I could use Windows messages, notably WM_GRAPHNOTIFY which is associated with EC_COMPLETE that lets you know when a song has finished. So after a lot of reprogramming and getting increasingly frustrated with the 'finer' points of C++ Windows programming I got it going again. The project type I ended up using was "MFC AppWizard(exe) -> Dialog Based".

I'm developing the program on one computer and using a shared folder on the old PC as the compile target in Visual C++, this way I don't have to install loads of stuff on the target PC.

The key to communicating with the LCD through the parallel port is Inpout32.dll, which is installed on the target machine. Inpout32.dll can be found here: www.logix4u.net.

Update: Current Status

I've now got most of the functionality I want implemented and have made a box for the display / potentiometers and had it set up and working in my car.

Current Functionality:

Photos to follow...

Downloads

Visual C++ 6.0 project files

The MySql database structure: phoenix.sql

Note that the database is called phoenix, just because at one point I hadn't worked on it for a while, so it did seem like I was resurrecting it somewhat, hence the phoenix "rising from the ashes".

Wiring/Pinout Diagrams

Word doc with parallel cable pinout and some other information on the parallel cable and interfacing to it from a PC.

parallel cable - connector block - floppy wiring.gif, this is an image showing the wiring between the parallel cable and the floppy cable (via the connector block).

power - connector block - floppy cable.gif, this shows the power connections from the PC in to the connector block and the potentiometers.

contact: