Our mission: To create CD-based MP3 players using old computer
parts. These players ultimately should work with a small input device
(other than a bulky keyboard) and without a monitor. They should boot from
the CD-ROM, run off a minimal amount of RAM (4-8MB), and require no other
storage space (hard drives). This will allow players to be turned off at
any point without loss of data.
OK, so at this point we're looking for an alternative to booting from the
CD. We've so far considered a small hard drive, a bootable ROM card, or a
small PCMCIA memory card connected via the IDE interface.
| 10/28/00 List of Bugs |
| - Tested the code more to see what other bugs I could
find. Here's what I found: * System crashes when "forward" is hit too quickly, starts running by itself again though * Can only eject the CD once per run of the program (if it crashes and restarts you get another eject) * LCD driver randomly stops running, restarts when mp3front restarts. Seems to occur most often when 0:01 remaining on a song (or possibly when it's just reaching EOF) * On some songs time remains at 0:00 (LCD driver may have stopped in this case) * On at least one song the time randomly changes times in nonlinear fashion * Song number is always 0 * mpg123 won't play songs encoded at 33.2khz (which is a weird frequency anyways) - Seems to run pretty well if you don't touch the controls right now :) Look for all this stuff to be fixed (hopefully) next week! |
| 10/27/00 New Features, New Bugs |
| - Matt updated some of the code. It now makes a list
of filenames so the randomizer knows what songs it played before.
Also now has support for mp3s in multiple directories. Before it
would only accept CDs without directories since there is now way of
telling a directory from a filename (which is kind of strange but that's
what Matt told me). Anyways he got around this problem by just
trying to cd to each name and if it would then he knew it was a directory
and not a file. Smart Matt! - Well the new stuff is great, but for each new thing, other stuff stopped working (isn't that what you always expect?). After a CD starts playing it can't be ejected now. The CD-ROM stops playing for 5 seconds, refuses to eject the CD, then starts playing again. Also the display shows "0" for every song number now, probably due to a bug in the new file-handling system. - No new pics since nothing looks different. - This weekend Matt is going to see his woman and I'm going home to sit in the dentist chair Saturday. So don't expect any updates until Monday. Maybe I'll find a case this weekend. That'd be da cooo-est! |
| 10/25/00 New LCD, Display Layout |
| - Not too much new to report. Matt got the LCD to
display the time remaining for each song when it's playing, and also has
some graphical characters for stop, play, pause, repeat, and
randomize. Rebuilt the first LCD using a short parallel ribbon
cable, so it connects directly to the motherboard. Attempted to get
a low-profile case at Computer Success (our favorite little computer
store! :) but they didn't have them anymore, so the player remains on my
desk until we find a way to package it. Contacted two companies
about solid-state storage devices. One has a solid-state memory
"drive," the other has a IDE to PCMCIA interface that flashcards
could be connected to. - Matt will continue coding, including fixing the problem that the keyboard doesn't accept input when the video card is taken out now :) Beams will continue looking for a case and storage for the OS.
|
| 10/23/00 Hardwired sound card |
| - Here's the results of the last 2 days' work. I
couldn't find any other good cheap way to mount the soundcard sideways, so
the soundcard is now hardwired to the motherboard. I would have
taken off the ISA slot, but I don't have a desoldering station, so instead
I just connected all the lines to the final ISA connector's pins on the
bottom of the motherboard. I used an old hard drive ribbon cable for
the lines. For traces on the card that were thick I used two wires
instead of one, since they are designed to handle more current, and I used
22-gauge wire for the ground pin (all using the scientific method of
guessing).
- Played around with the problem of the LCD not getting
enough power. Checked the resistance across the LCD Vcc and ground
and found that to be 3.20 Kohms, which using the magical formula i=V/R
found the amperage to be 1.5mA, the nominal amperage at 5V, so I just
wired that into the power supply and woo it's powering up fine now :)
|
| 10/21/00 New and improved version |
| - Matt continues work on the software, while I build a
better-looking version of the LCD with the second one we ordered.
Here are the results:
- Everyone seems to have their own way of hooking up the LCD, but here's a diagram of our way which also allows you to power the LCD and contract from the parallel port itself. Click me! mmm that feels good! Also important to note: Using the cable shown above
(a motherboard to LPT ribbon cable) the pins are in the order 1, 14, 2,
15, 3, 16, 4, 17, 5, 18, 6, 19, 7, 20, 8, 21, 9, 22, 10, 23, 11, 24, 12,
25, 13 from pin 1 (usually marked with red-spotted wire, left to right in
the above photo). |
| 10/20/00 It works!!!! |
| - LCD's showed up in the mail today. Tried wiring it
up, didn't work. Went to Radio Shack to get a potentiometer (the
magic piece), wired that in, then look at dat it works! Of course
one of the small data line wires broke before we got it to display
anything, so we ended up with this as our 1st output of the display, but
hey it's working right now! :)
OK, here's one to prove that we can actually make it say
what we want. On the cable I hacked up (an Iomega Zip drive parallel cable) the wire colorings are the following (dominant color listed first). In a perfect world these colors will be universal (aka check your cable yourself, this is only what I found on the brand cable I used). 1 tan - white |
| 10/19/00 Wheeeee! |
|
- A couple things happened in the last few days:
Here's another good diagram and some low-level code stuffs: - Matt is writing some LCD driver thingies. When the displays
come I get to SOLDER! Hot things are fun. |
| 10/16/00 Not much new... |
| - Ordered the displays. Hopefully they'll be here by
the end of the week. Also got a winamp driver to output song titles,
just to play around with and make sure I wired the displays correctly once
I get them. |
| 10/15/00 Research |
| - I looked up some more info on connecting the LCD to the
parallel port, and tired to find a good source for our displays
http://mobydisk.com/winamp/lcd_hardware.html
- Good wiring diagram BG Micro has some cheap 4x20 character displays based off the Hitachi
HD44780 controller (which seems to be the standard) for $5.95 each, will
order tomorrow. |
| 10/13/00 More midterms, Radio Shack, and Women |
| - Matt finds some bugs and fixes them. Most are
related to his keyboard input function thingy. - Went to Radio Shack. The girl there didn't know the difference between LEDs and LCDs. Go figure. Anyways, as I should have known from the beginning, Radio Shack didn't have any LCD displays. Time to look elsewhere. - Midterms suck. Especially the one I took today. *BLAH* - Matt's woman is here for the weekend. Don't expect much to get done till Monday :)
|
| 10/12/00 Midterms, Concerts, and stuff... |
| - Matt works more with his Linux stuff and gets it to do
just about everything we want to. Keys are all mapped to the number
pad, complete with eject button. New CD starts playing when it's put
in the drive. Only works with CDs that have MP3s in the root
directory right now. I on the other hand spend all my time studying for my
Thermodynamics midterm, then go take that beast, then celebrate by going
to the Dixie Chicks concert. If I would have known they were letting
cameras in I would have taken my digital camera. O'well.... - Got some LCD displays that had been donated to us. Unfortunately they are 64x480 pixel displays with no built-in character set and a generic serial interface that is hard to understand (LM211 for anyone that wants the model number). So instead of trying to write our own character set and make it interface with the serial port, we decided to just go to Radio Shack and see if they have anything, then look online if we can't find anything there. www.crystalfontz.com has some nice ones, but they're $45 each... blah! - It's late. I have another midterm tomorrow that I haven't studied for. Sleep is good!
|
| 10/11/00 I should be studying for midterms... |
| - Attempted to boot both OS's without the video card.
DOS died after doing something with the CD-ROM for about 10 seconds (heck
if I know what it did... there's no video card! Linux booted up and
started playing no prob. Another point for Linux! - Starting to consider alternatives to putting OS on every CD. Found out that when a CD is made bootable it uses another format that only allows 8.3-character filenames. Considering using small hard drives for now. Will research some kind of bootable card with ~4MB for the OS. |
| 10/10/00 New stuff happens! Wheeeeee! |
| - I (Beams) managed to get the entire DOS OS, CD-ROM
drivers, SB16 drivers, and mp3 player on a single floppy (with about 9k to
spare). System boots into mpxplay after copying it to a ramdisk (so
the program will run independently of the drive and prevent any possible
skipping). Tried playing a CD-ROM with all mp3s in the root
directory manually with success. Only thing left to do is to get
mpxplay to load the directory and begin playing on its own, then it will
be ready for a bootable CD test. The lack of long filename support
makes creating playlists more difficult, but mpxplay loads all the ID3
tags when given a directory manually.
Here's the list of files: A:\>dir /s
Later that night... Even later that night... |
| Night of 10/9/00 |
| - Matt's boot floppy gets bad sectors after too many
reboots. - Beams decides to look for a DOS alternative. - Beams' version boots, using a hacked Win98 boot disk, old SB16 drivers, and a 500K mp3 that's transferred to a ramdisk, then played using mpxplay. All this fits on 2 floppies, and is successful. Next step is to learn mpxplay key commands, then attempting to make a bootable CD-ROM. - Matt continues work on Linux bootdisk.
|
| Weekend of 10/6/00 |
| - Random road trip to Matt's to pick up some old
boxes. - Bought a K5-133 for the second board in the bare box. - Matt started working on a linux boot floppy for prototyping. - Matt's boot floppy loads the ramdisk OK, but won't run INIT on the K5's. Works fine on any other box (including VMWare). Continuing work on linux port. |