DiscFerret: First working hardware, firmware and microcode!
classiccmp at philpem.me.uk
Mon Oct 25 12:54:01 CDT 2010
I have -- just this second -- got the standalone, single-board
DiscFerret hardware ("0I06") to image a disc. First, the proof:
Raw transition data, gzipped space-separated format. First column is
array index, second column is the timing value:
Rawbinary track dump, gzipped. Most significant bit of each byte is the
status of the INDEX sensor (1=index detected). If (x&0x7f) = 0, then a
counter carry occurred -- the next byte should have 128 added to it.
Repeated counter-carries are allowed.:
MagScan analyser output for dat.bin:
For those of you who have a copy of the sources to my Magdecode decoder
engine (I know I sent it to at least one person on-list...), the
Rawbinary dump should load straight into Magdecode. The space-separated
data can be loaded straight into Gnuplot (which is what I used to
produce the plots), and I suspect MATLAB and Octave can probably load it
The image file was created from an old coverdisc from "PC Zone"
magazine, and is completely undated on the label. The volume label is
"PCZ_OCT_3" which suggests it's from October, with last-modified dates
in February and August 1993. It only covers Track Zero, which (if memory
serves) is the MBR, FAT and Root Directory. The disc is 720K DOS format,
sampled at 40MHz.
Other things to note:
- The hardware works fine at 80MHz, and possibly faster than that. It
should be possible to sample with enough resolution to image a 5Mbps MFM
- There are plenty of spare registers. The new PIC uses 8-bit
multiplexed addressing, which gives 256 register addresses. Only 16 are
in use at the moment (!)
- Write support isn't enabled yet. I need to port this across from
DiscRW and test it (and no doubt rewrite parts of it, as I did with the
Surprisingly, there are only a few minor issues on the 0I06 PCBs:
- C6 is missing a polarity marker. This is a non-issue, as one end
connects to the ground plane and the other quite obviously connects to
- Some of the component pads are rather small (notably the inductors
and Schottky diodes in the power supply). This makes it hard to heat
both the pad and the component pin at the same time, and thus makes the
parts a bit of a pig to solder. I worked around this with a hot-air gun,
preheater and solder paste... later boards will have bigger pads.
- The power supply chip is a QFN with pads under the chip. The only
way to solder it down is to use a hot-air gun... unfortunately TI don't
make this chip in a more accessible package, and the only viable
alternative would have nearly doubled the size of the power supply.
Despite these issues, it's perfectly possible to assemble a 0I06 and
have it work perfectly, without any "green-wire" fixes. I'm impressed:
usually a first-spin board needs at least one track-cut and a couple of
Now here's where you guys come in.
I really don't want to have boxes and boxes of unused boards and parts
hanging around, so I need to know how many people would like to buy a
DiscFerret. These would be available as:
- PCB only
- PCB with the power supply section assembled and tested
- Fully assembled and tested PCB
- Some other form -- feel free to make suggestions!
I'd appreciate it if anyone interested in buying a DiscFerret could
email me at philpem at philpem.me.uk, with one of the following in the
subject line (start, end, on its own, uppercase, lowercase -- anything
will do, my procmail rule is pretty lenient):
- "I want a PCB on its own" -- DISCFERRETBARE
- "I want a PCB with the PSU built and tested" -- DISCFERRETPSU
- "I want the whole thing ready-built" -- DISCFERRETBUILT
- "I want a DiscFerret in some other form" -- DISCFERRETOTHER
Thanks to everyone who has supported the project thus far -- your
thoughts, ideas, comments and criticisms have been very useful!
Now to get my reflow oven working and build some prototypes... :)
classiccmp at philpem.me.uk
More information about the cctalk