Rev |
Download Files |
Description |
0.6.90 |
Image File:
mp3player0690.zip
Source Code:
mp3player0690.tar.gz |
Improved "random" modes. Tree list works (file/dir browsing).
Remembers which file was playing, rebooting no longer always
starts back at the first song. Fixed little "blips" of buffered
sound when switching between files. Many other bugs fixed!
Display code cleaned up, much easier to modify for
custom display.
|
0.6.10 |
Image File:
mp3player0610.zip
Source Code:
mp3player0610.tar.gz |
Improved FPGA timing is the main improvement in this rev, which
should improve compatibility with more SIMMs.
A minor bug was fixed in ID3 processing that would cause problems
with certain ID3 tags aligned on cluster boundaries
(special thanks to Robert Staph who sent a MP3 file with one of
these ID3 tags). More information is displayed at startup on the
LCD, to help users troubleshoot with an LCD but no PC attached to
the serial port.
|
0.6.9 |
Image File:
mp3player069.zip
Source Code:
mp3player069.tar.gz |
Fixed several bugs and improved simm detection. A small memory
corruption bug while moving to a new file if the old one was still
being read from the drive has been fixed (in 0.6.8 this would eventually
result in a lot of IDE errors requiring a reboot). A small memory
leak was also fixed. Improvements in the IDE
drivers recovery from bad sectors or other errors are included.
Tom fixed the defaults for tone controls. The simm detection code
is redesigned to make fewer assumptions about simm types, which
allows some previously unusable simms to work (at reduced capacity).
Other incompatible simms are now correctly detected. The simm
test command 'T' does more useful tests and usually prints more
useful information.
|
0.6.8 |
Image File:
mp3player068.zip
Source Code:
mp3player068.tar.gz |
FPGA rev 1.12, fixes long-standing problems with fan-out on
some critical signals (that the Xilinx software reported were
fine... shame on Xilinx). Also a few firmware bugs have been
fixed, and a significant SDCC C compiler bug was recently
fixed, and this is the first rev compiled with the updated
SDCC C compiler.
|
0.6.7 |
Image File:
mp3player067.zip
Source Code:
mp3player067.tar.gz |
FPGA rev 1.11, interface with 8051 redesigned with simpler
address latch and new mini state machines to request and
ack the read cycle. At least in initial testing, this appears
to dramatically improve the player's stability.
|
0.6.6 |
Image File:
mp3player066.zip
Source Code:
mp3player066.tar.gz |
More firmware bug fixes (mostly minor), and FPGA rev 1.10.
Several people reported problems with FGPA ver 1.10, so this
rev may or may not work well on your board.
|
0.6.5 |
Image File:
mp3player065.zip
Source Code:
mp3player065.tar.gz |
Bug fixes from 0.6.4. The play mode is again correctly displayed,
and several other minor related problems are fixed (a custom SDCC
compiler peephole optimization was causing compiler errors).
The tone frequency adjustments are now made in 1/3 octave steps.
All tone parameters are checked for validity, so garbage in the
non-volatile parameters will no longer cause the player to run
without making any sound. If you suffered any of these bugs from
0.6.4, now's the time to upgrade!
|
0.6.4 |
Image File:
mp3player064.zip
Source Code:
mp3player064.tar.gz |
It's been a long time in the making... many performance improvements
and bugs fixes. This rev should be much more stable than all the
previous 0.6.x's. Directory scanning code
is faster. Many parts of the LCD navigation are improved (mostly
thanks to Tom). Dave Johnson's dynamic TONE_ATTN idea is implemented,
which allows full output voltage without losing the tone controls.
Many new little features are also included, like random and sequential
play over the entire drive, as well as individual directories.
Known bugs: TBD. Stability: TBD (your feedback is welcome)
|
0.6.3.3 |
Image File:
mp3player0633.zip
Source Code:
mp3player0633.tar.gz |
Unstable.
Zach added code that plays all the MP3 files on the hard
drive, even if they're in subdirectories (up to 5 levels deep)!!
There is some start-up delay as the code reads all the directories
on the drive. Ian added adjustment of the bass and treble
roll-off frequencies.
|
0.6.3.2 |
Image File:
mp3player0632.zip
Source Code:
mp3player0632.tar.gz |
(Not Too) Unstable.
Several people have reported that this rev is working well.
This is the first rev
developed entirely within CVS! Tom put in file_uncache, and
Ian added the redisplay to deal with the beta test display
problem that shifts everything a couple pixels. Zach sent
some code that scans subdirectories (only prints their
contents for testing and isn't called yet) and I fixed a
few bugs. This rev also has a fix to the FPGA that might
cure the problems that 0.6.2.G to 0.6.3.1 have on rev A
boards.
|
0.6.3.1 |
Image File:
mp3player0631.zip
Source Code:
mp3player0631.tar.gz |
Unstable, has problems on Rev A boards.
A bug in the Makefile was fixed which would not completely rebuild
the code with an updated DRAM controller. I changed the build
process a bit to eliminate binary files, which is mostly to prepare
for the transition to CVS. Developers should get this rev for
the fixed Makefile. If you've installed 0.6.3.0 from the image
file (not building from source), there's nothing new in this rev.
|
0.6.3.0 |
Image File:
mp3player0630.zip
Source Code:
mp3player0630.tar.gz |
Unstable.
Yet another firmware rev. We've had a lot of 0.6.2.x, so why
not start calling it 0.6.3.x? I did even more work on the DRAM
controller and this latest rev adds some extra circuits to
ignore noise on the 8051's ALE signal. This seems to make the
board much more stable, though still not perfect. There are
several other minor improvements in there. This rev also
includes Ian's latest work on the user interface. He's got some
of the navigation with the arrow keys. You still can't navigate
to the tone controls, but you can navigate to change between
random and normal mode. Ian's making great progress on the
user interface and if you're interested in where it's headed,
you should certainly try out this rev.
|
0.6.2.G |
Image File:
mp3player062G.zip
Source Code:
mp3player062G.tar.gz |
Unstable.
Merged Ian's latest code. You can't adjust the treble and bass,
as this rev moves towards the multi-screen approach, but it doens't
have the navigation features via arrow keys. That's coming soon.
This rev also fixes a problem where the DSEG area was getting
very full. I did some fiddling with the DRAM controller and this
rev might be more unstable that most. If you're a developer, you
really need to grab this rev for the DSEG fix. Ian would like some
feedback about the layout of the three screens (try to envision
being able to navigate to the fields using the up/down/left/right
buttons). Other than trying it out to see what the upcoming user
interface may look like, normal users will probably want to stay
with a previous rev for now. Developers must use this rev, as it
is hard to add anything with the DSEG problem in 0.6.2.F.
|
0.6.2.F |
Image File:
mp3player062F.zip
Source Code:
mp3player062F.tar.gz |
Still Unstable.
The display now shows the bitrate, sample frequency and stereo/mono
mode of each MP3 file as it plays. There is a status line on the
top that shows if the player is playing or paused, and if it's
in normal or random mode. I also re-arranged much of the display
code to more-or-less do much of the display abstraction stuff that
was discussed in the yahoo group a couple weeks ago. Also, the
automatic fallback to 0.1.2 (if no SIMM is installed) is working
again.
|
0.6.2.E |
Image File:
mp3player062E.zip
Source Code:
mp3player062E.tar.gz |
Still Unstable.
This rev contains a redesigned DRAM controller, which might help
with some of the stability problems (hard to tell yet). Ian's
most recent additions to the display code are included, and a
patch from Andy was added to make the bit2mcs utility work
in windows.
|
0.6.2.D |
Image File:
mp3player062D.zip
Source Code:
mp3player062D.tar.gz |
Still Unstable.
This rev includes Ian's recent display code that scrolls the
filename and gives a cool "slider" bar for the volume. I
added timers and low-level support for the tone controls.
Nothing uses the timers just yet, but Ian has some cool plans
for the display.
|
0.6.2.C |
Image File:
mp3player062C.zip
Source Code:
mp3player062C.tar.gz |
Still Unstable ??.
No new features since 0.6.2.A. More attempts to solve the
remaining stability problems. I added a timeout check (and
automatic recovery) in the serial port transmit routine. I
also hacked on the DRAM controller and added a very paranoid
circuit to monitor the 8051 bus and lock out DMA and DRAM
refresh for 32 cycles following opcode (or operand) fetches
of the six bytes that represent the MOVX instructions. This
"circuit" is implemented in the soft-configured FPGA, so by
installing this firmware, your board automatically gets the
new circuit. No physical changes are needed.
|
0.6.2.B |
Image File:
mp3player062B.zip
Source Code:
mp3player062B.tar.gz |
Still Unstable.
No new features since 0.6.2.A. Many attempts to solve the
remaining stability problems.... hard to tell if it's
stable since the problems happen very infrequently. This
rev includes some preliminary planning (not used in any
way) for malloc and playlists. Developers interested in
writing playlist support should look at this code.
|
0.6.2.A |
Image File:
mp3player062A.zip
Source Code:
mp3player062A.tar.gz |
Still Unstable.
The rev fixes more bugs and uses the non-volatile parms to
store the volume and random play state. This is the first
rev with a really working random mode, where you don't end up
hearing the same "random" sequence every time. The previous
button still doesn't back up to the file just played in random
mode... that'll have to wait until playlists happen.
|
0.6.2.9 |
Image File:
mp3player0629.zip
Source Code:
mp3player0629.tar.gz |
Unstable, but getting better.
This rev fixes several bugs that were causing lock-ups or other
crashes. All 6 pushbuttons on the board
back. The simple (slow) previous file method used in earlier
versions is back again, and random mode is implemented in the C
code also. Volume adjustment works again, and the volume buttons
now have auto-repeat.
|
0.6.2.8 |
Image File:
mp3player0628.zip
Source Code:
mp3player0628.tar.gz |
Probably Unstable.
Another developer release. Timer interrupt routine is working now,
and it reads the pushbuttons on the board (though not all are properly
supported by the C code yet). Several minor bug fixes,
though there there still seems to be quite a bit of unstable
behavior with play/pause.
|
0.6.2.7 |
Image File:
mp3player0627.zip
Source Code:
mp3player0627.tar.gz |
Probably Unstable.
Yet another developer release. The serial input parser is
re-written and mostly converted to C (see parser.c). This
rev supports three of the new display board's pushbuttons.
The six on-board buttons aren't supported in this rev, because
the new timer0 code isn't working yet. Part of Zach's mods
to dir_read are included. The player still doesn't automatically
start (I know, it'll be put back soon). This rev basically
lays the groundwork to begin adding more support of the new
pushbuttons.
|
0.6.2.6 |
Image File:
mp3player0626.zip
Source Code:
mp3player0626.tar.gz |
Probably Unstable.
Added support for the display board's pushbuttons, including
programmable auto-repeat. The player now (finally) has interrupt
driven serial I/O. Fixed several bugs, and many other minor
changes here and there.
|
0.6.2.5 |
Image File:
mp3player0625.zip
Source Code:
mp3player0625.tar.gz |
Probably Unstable.
This is the first C-based version that actually runs reasonably
well. The pushbuttons still aren't implemented in this rev, but
it will respond to commands from the serial port. There is a
tiny bit of code to send messages to the LCD display board, which
basically displays the long filename on the display when the file
starts playing. Inside this rev you'll also find the code that
runs on the JW-002 display board. Unlike the player, the JW-002
isn't flash upgradable, so you'll need an EPROM programmer (and
blank chips) if you want to hack on the JW-002's code.
|
0.6.2.4 |
Source Code:
mp3player0624.tar.gz |
Highly Unstable!
More bugs fixed in the conversion to C. This rev will actually play
the first file. Because only the first file plays, it's still only
useful for developers who want to peek at the code, so no image file.
The very latest sdcc from CVS is needed to successfully build the code.
|
0.6.2.3 |
Source Code:
mp3player0623.tar.gz |
Highly Unstable!
Main program is converted to the SDCC C compiler!! It starts up
and can more-or-less access the drive correctly. There are still
many bugs to fix in the interface between the new C application
and the AS31-based drivers.
This rev won't even run correctly, so I'm not posting
a ready-to-use image file. If you're interested in hacking on
the code (in C, not ASM), download this and take a peek at "main.c".
While it doesn't actually work, it's very close...
|
0.6.2.1 |
Image File:
mp3player0621.zip
Source Code:
mp3player0621.tar.gz |
This rev adds non-volatile storage of the volume setting.
|
0.6.2 |
Image File:
mp3player062.zip
Source Code:
mp3player062.tar.gz |
0.6.1.E has turned out to be pretty darn stable. This
rev is very similar, but it fixes a bug in the STA013 test, where
the test would fail if no simm is installed. Instead, it correctly
runs 0.1.2, which is 0.1.1 with all of the recent additions and
bug fixes that are don't need a SIMM. 0.1.2 is updated to use the
new STA013 init that fixes the no-sound bug that occurs on some
boards.
|
0.6.1.E |
Image File:
mp3player061E.zip
Source Code:
mp3player061E.tar.gz |
Beta Test. Fixes the no-sound bug and
many other bugs from 0.6.1. Still has an out-of-memory bug, where
sooner or later (sometimes over 24 hours) something goes wrong
with the memory manager. Keep an eye on those messages about
how much memory is free between playing each file. There has
been a feature freeze for weeks now, so this beta version works
pretty well.
|
0.6.1 |
Image File:
mp3player061.zip
Source Code:
mp3player061.tar.gz |
Unstable. Update: three people
have reported problems... looks like 0.6.1 isn't as stable as
we had hoped. The SIMM
is now used to cache MP3 data, and the IDE reading speed is
reasonably fast (will get 2-3 times faster in future revs), so
this is the first rev that can run from NiCd batteries. The pushbuttons
all work again (thanks to Tom Parker), and the code displays
long filenames (again, thanks to Tom). Memory leaks are fixed.
The code should work with fragmented FAT32 volumes, so it's no
longer necessary to run defrag after you copy the files. There
are few known bugs: files larger
than the SIMM are only played for the portion that fits in the
SIMM. A tiny part of the last file is sometimes played at
the beginning of the next file. In some rare cases, a DMA error
occurs and results in a audio glitch (you'll see a message about
it if connected to the serial port).
|
0.6.0 |
Image File:
mp3player060.zip
Source Code:
mp3player060.tar.gz |
Unstable. This is
the first release with the completely rewritten FAT32 and IDE and
memory manager code that supports caching with all of the SIMM.
The pushbuttons don't work, typing "QUIT" crashes (to get back to
the monitor, you must press 'S' during startup). Reading from the
drive is slow, partly because the IDE driver is still polled
(interrupts will be used in a future rev), and partly because there
are lots of verbose debug messages. It should work with fragmented
FAT32 filesystems (untested). There is no attempt in this
rev to read the next file while the current one is still playing,
so you'll get (very) long pauses between songs. This release is
primarily intended for developers to be able to hack on the code,
and to give you a look at the new caching in action.
|
0.5.1 |
Image File:
mp3player051.zip
Source Code:
mp3player051.tar.gz |
Stable.
This version adds the volume buttons and the random mode. It
also adds a patch from Dave Johnson to fix the bugs with the
play/pause button. IDE slave mode is now supported, the start
up will autodetect how the drive is configured. A copy of 0.1.1
is included, if the SIMM isn't installed, it will automatically
run 0.1.1 instead of giving up. This version doesn't do much
buffering and still requires the drive to be defragmented.
|
0.5.0 |
Image File:
mp3player050.zip
Source Code:
mp3player050.tar.gz |
DRAM Test Version, works exactly like 0.1.1 (at least is supposed to) but
uses a tiny part of the SIMM instead of a fifo in the FPGA.
No new functionality is added... this is a test release only.
Please give it a try with your board, SIMM and hard drive.
I am particularly interested to hear about success or
problems when used with laptop drives.
|
0.1.3 |
See 0.6.4
|
This version is embedded in 0.6.4, and it gets run automatically if
no SIMM is installed. Improved IDE initialization code from 0.6.x
revs is back-ported to this rev, so that it will work with IDE
drives as either master or slave setting. 0.1.3 will also work with
older buggy drives that require CHS init to make LBA mode work.
0.1.3 does
not require a SIMM (but will work if one is installed). Only files
in the drive's root directory are played, and the drive must have
a fully defragmented FAT32 filesystem.
|
0.1.2 |
See 0.6.2
|
This version is embedded in 0.6.2, and it gets run automatically if
no SIMM is installed. All six pushbuttons are implemented.
Dave's play/pause fix is included, and it uses the new STA013 init
code that fixes the no-sound problems on some boards. 0.1.2 requires
a fully defragmented FAT32 filesystem.
|
0.1.1 |
Image File:
mp3player011.zip
Source Code:
mp3player011.tar.gz |
No SIMM Required. (versions since 0.5.1
also include a copy of 0.1.1 and run if the SIMM isn't detected).
Minor improvements since 0.1: "Previous" button now implemented.
Partition type 0B or 0C are allowed (version 0.1 rejected
type 0B). Serial port accepts words "PLAY", "NEXT", and "PREVIOUS",
and "QUIT", to allow remote control. This version still requires
the drive to be defragmented.
|
0.1 |
Image File:
mp3player01.zip
Source Code:
mp3player01.tar.gz |
Initial Release. Does not use DRAM.
Reads standard FAT32 partition.
The filesystem must be defragmented.
All MP3 files must be in the root directory. Only "Next" and
"Play/Pause" push-buttons are implemented. Plays files in the
order they appear in the directory, looping back to the first
file after finishing the last one.
|