Giter Site home page Giter Site logo

amiga-hddlw's Introduction

Herr Doktor Diskettenlaufwerk (Amiga-HDDLW)

Late-model Amiga computers use customized floppy drives (like the Chinon FZ-357A) to be able to read and write high-density floppy disks (colloquially known as 1.44MB floppies, although the Amiga can store 1.76MB because it packs in four additional sectors per track.)

Why a customized floppy drive? The Amiga custom chip, Paula, only supports the slower bit rate used by double-density floppy disks. Instead of spending a bunch of money to change the Paula chip, Commodore engineers got a customized floppy drive that spun the disk at half speed when it detected a high-density floppy disk.

In the 1990s, some 3rd party vendors released Amiga compatible floppy drives. One such design is the AMTRADE "The Real HD-Drive" A357. It uses a modified Sony MPF920-E or a TEAC FD-235HF (both fairly common) along with a small adapter circuit board containing a 16V8 PAL.

I've done a bit of reverse engineering to understand how the A357 works, and I've been able to build a functional replica. It's not an exact copy because the original PAL is locked. I'm calling it the Herr Doktor Diskettenlaufwerk, or HDDLW.

Please note that I have not fabbed out this design yet, and although the design is tested and expected to work, go forward at your own risk.

Fabrication

The board is a simple 2-layer affair with a small handful of parts. The dimensions are 93.5mm x 20.3mm (3.68" x 0.8").

Schematic

Bill of Materials

Fab Package

Install a 20-pin DIP socket in position U1 just in case you have trouble programming the PAL. All parts, with the exception of J2, J5, and J6, should be installed on the top side of the board.

J4 should be a Molex 4-pin header with a key. In a pinch, you can sub it out with a standard 4-pin header but it will be very easy to connect the cable backwards, which will put 12V on the drive's 5V rail, destroying everything!

Install either J5 or J6 depending on the drive you plan to use. If you install both, J5 will interfere with the drive select jumpers on the Sony drive and potentially damage them.

Jumper J3 should be set to 1 for DF0 and 2 for DF1. Position 3 has not been tested yet but may work.

PAL programming

See the source file.

The logic equations are assembled using galette and can be burned to the PAL using a number of different tools. I use the TL-866 with the minipro tool under Linux, along with the ATF16V8B. The speed grade is not critical.

Drive modifications

The HDDLW has been tested with the two floppy drives below. It may be possible to use it with other drives, but you will need to investigate to figure out the clock connection that sets the motor RPM. You will also need to figure out how to get the high density select signal onto pin 4 of the drive.

Sony MPF920-E

Perform the following changes

  • Install JC40 (a zero ohm resistor or wire jumper), which is connected to pin 4 of the floppy connector and provides the high-density sense signal. See the green circle in the image below.
  • Cut the trace between pin 38 of IC1 and pin 16 of IC2. This is the motor driver clock. This is indicated by the diagonal arrow in the image below.
  • Connect a wire from pin 38 of IC1 to pin 14 of the floppy connector (blue wire in the image)
  • Connect a wire from pin 16 of IC2 to pin 6 of the floppy connector (red wire in the image)

Modifications on the Sony MPF920-E

TEAC FD-235HF

Perform the following changes

  • Install S5 (a zero ohm resistor or wire jumper), which is connected to pin 4 of the floppy connector and provides the high-density sense signal (circled in the image)
  • Remove 1K resistor R9 (which may be named differently on different board revs, but one end is always tied to pin 4 of J5; pointed to by the green arrow)
  • Connect a wire from U1 pin 48 to pin 14 of the floppy connector
  • Connect a wire from J5 pin 4 to pin 6 of the floppy connector

Modifications on the TEAC FD-235HF

TEAC used several different board versions, so your board may not look exactly alike. The example below uses R12 instead of R9, and S5 has been moved although it retains the same designator.

Alternate TEAC board

Another alternative board uses R12 (as above) but uses S6 instead of S5.

Second alternate TEAC board

Functional Explanation

The drive modifications intercept the clock signal that goes between the floppy drive's main control IC and the motor controller, bringing them out to two unused pins on the floppy connector. They also enable the undocumented feature that provides a high-density detect output on pin 4.

The PAL checks for high density disks by looking at pin 4. If a high density disk is inserted, the PAL

  • Divides the motor clock by 2 to slow the RPM from 300 to 150rpm
  • Returns the drive ID pattern 10101010... to the Amiga to let it know that this is a high-density drive/disk.

If a double-density disk is inserted, the PAL

  • Passes the motor clock signal through unchanged so the disk spins at 300rpm
  • Returns the drive ID pattern 11111111..., a double-density drive/disk

And that's about it.

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. See https://creativecommons.org/licenses/by-sa/4.0/.

amiga-hddlw's People

Contributors

schlae avatar

Stargazers

Jens Ch. Restemeier avatar Dave Thomas avatar  avatar Tim avatar  avatar Manfred Bergmann avatar Stefan avatar Adam Polkosnik [fun] avatar  avatar Goran Ljubojević avatar Marcos LM avatar Jason Neus avatar Matt Harlum avatar Karl Csitkovich avatar Marko Šolajić avatar Bartek Banachewicz avatar Eliza Winterborn avatar  avatar Amos avatar Nicola Avanzi avatar Kees Guequierre avatar  avatar  avatar  avatar Bocke avatar

Watchers

 avatar Adam Polkosnik [fun] avatar  avatar Marcos LM avatar Kees Guequierre avatar  avatar Karl Csitkovich avatar  avatar

Forkers

apolkosnik

amiga-hddlw's Issues

Insulator

Working on a printed insulator strip...
Once test fitted, I'll send the TinkerCAD link and STL

Screen Shot 2024-05-17 at 6 27 43 PM

Unable to format 1.76MB disks successfully

I don't have a collection of Amiga software on floppy to test with.
So the first thing I've tried to do is format DD and HD disks

Format of DD disk was successful
Wrote 600KB .MOD files, read and played back correctly.

Format of HD disk, detects 1.76MB disk, not successful in completing format.

Detection:
IMG_2625

Failure:
IMG_2626

It fails on different cylinder numbers each time.. usually 0, 1, 2... but I've gotten as far as 31

Alternative Failure:
IMG_2628

I've run the DriveSpeed program (like the other active read\write issue)
with DD disks it shows 600RPM Average
with HD disks it shows 300RPM Average

DriveSpeed utility location:
https://aminet.net/package/docs/hard/PCFloppy2Amiga

DriveSpeed Usage:
"DriveSpeed 0" where 0 is my track device number

I've also run AmigaTestKit v1.21 on the floppy drive:
DD Floppy Index pulses at 196ms
HD Floppy Index pulses at 399ms

AmigaTestKit utility location:
https://github.com/keirf/Amiga-Stuff/releases

The AmigaTestKit results seem to be as expected.
The DriveSpeed results are counter-intuitive (out by a factor of 2).

Makes me wonder about the validity of DriveSpeed as a test ?

Setup:
I'm using ATF16V8b and pre-compiled .JED file.
Programmed and verified on T56 (big brother of T48 & TL866, same software)

Drive hardware is second alternative TEAC model shown.

Computer, A2000 AOS 3.2.2, 68030, 128MB RAM

Further testing:
I figured I should verify my Amiga hardware and OS was able to format \ write \ read 1.76MB disks.
Set a v4.35 FF Gotek's FF.CFG for:
interface = amiga
pin34 = auto
Copied a blank EMPTY-HD.ADF file onto the USB stick with the FF.CFG file.
The Empty disk appeared on my desktop.
I formatted it successfully, then copied a 1.3MB .MOD file into Empty
Opened HippoPlayer, loaded and played the file direct from volume Empty.
Works great.
Suggesting that my Amiga, Paula, Gary, CIA, Floppy cable, etc. seem to be working fine in HD.

HDDLW .JED programming file request

Can we please have the .JED file ?
I too am using an ATF16V8b device.
WinCupl can not use the .PLD file supplied to create a .JED
My T56 programmer in Windows will only accept a .JED file.

This would be greatly appreciated.

Thank You,

Unable to read/write hd disks

It looks like the drivespeed (from pc2amiga package on aminet)reports 145 rpm. I'm using the alternative TEACs, but HD doesn't seem to be working properly. I'm wondering if it's due to building the .jed on windows.

Not all Teac FD235HFs are created equal (FD235HF-4240 is not suitable for this modification)

I'm working on applying the same principles as the HDDLW to retrofit high-density support to old Acorn Archimedes systems, and while experimenting with drives in my junk drawer, I came across a variant of the Teac FD235HF that does not appear to be suitable for this modification: the FD235HF-4240 has a 10-pin (rather than 11-pin) connector to the motor board, and the motor controller's OSC1 and OSC2 pins are connected to a crystal on the motor board (Y61 in my example), rather than having OSC1 driven by a clock from the main IC.

Aside from the -4240 model suffix, the other distinguishing feature of this variant is an unusual blue-coloured external layer on the main PCB. Never seen that before.

IMG_3455

While I'm here, I might as well also add that the Sony MP-F17W doesn't seem to take well to this modification either. Though it has a convenient 0-ohm resistor that makes it easy to interpose the motor clock, the motor has fewer slots than most others I've seen, and at half speed, you get visible torque pulsations (and some pretty horrible noises). No bueno.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.