CFIDECP (CFIDE68K) (IDE68K) Amiga 68000 DIP-64 socket IDE interface

date 3-dec-2020.

Installation pictures and photos

22.8.2019 note: in V425, 2ndary LED's series resistors can be placed on board
Ide and ide+ram board and Amiga in Install pictures collection page
Click on "small" picture below to see hi-res version.

4.9.2018 fix r1: v6x RAM board autoconfig out was wrong as "in".
A500 86-pin edge connector has /ovr and /int2 pins:


External Links:
ChefDeadpool's CDTV install guide
a68k.de

FOR RAM (in ideram combo units):If there are no other autoconfig boards in system, an autoconfig-in can be connected ground, or on v61,62 boards left unconnected (on-board pull-down).
V5x with autoconfig out configuration, "in" is internally active on cpld. Autoconfig connections on amiga 2000/500 on ram 68k page

Internal IDE interface plugs in the 64-pin 68000 CPU socket of Amiga 500

Autoboot with KS-ROM with IDE driver for A600's IDE interface
One IDE connector (standard "40-pin" 0.1" pitch IDC)
CompactFlash connector in some boards (CF card in true IDE mode as a master or slave on the IDE bus)
Experimental "clockport" connector in cfidecp29x series.
Plugs into CPU socket of A500 rev6. (Also A500 rev5, A2000, B2000 A1000 and the CDTV, if space allows, and A500+)
The user needs to connect two or more wires from this board to the mainboard of the Amiga. (Soldering is recommended, but not not the only way you can think of, for example there are so called "IC-clips", "press fit" pins, ..)
Home made hobbyist hardware, may not be available for sale.
Absolutely no warranty (Possible problems may or may not be solved.)
Naming: IDE = 39 or 40 pin connector, CF = CompactFlash slot, CP = "Clockport"
Version/revision numbers:
IDE 100 & 106
IDE 401 & 402 new version where ide connector is on other side of 68000
CFIDE 188
CFIDE 208
CFIDECP 290,293,295,296,297,298 clockport connector (untested)

New News

Old News

note: from v401 to v424 board, "2nd" led outputs need external series resistor (few hundred ohms) as these are not on board.
V4xx board new versions are nearly the same as 402, 401. (xc9572xl/95144xl use 3.3V regulator which also powers ide pin 20.
Zip with updated jedec and and abel files to table below.
Some older (before "4025") CPLD code can have glitches, that causes for example HDD:s not appear while CF-cards may show up. Updated codes shall be downloadable. For V401,402 .jed file with id-string "4025" is made. (also for v29x, "4027" jed)

pics

To be added: V100 V106 V188 V208 V290 V401 V402... photo (jpg) of v401 board

Pictures

V100 from behind with xtal module which is not used from below with right-angle connectors and soldered 68k to achieve low profile V3b prototype

Kickstart ROM

Amiga 600 compatible KS-ROMs

Note: A1000 may need Kickstart ROM adapter board for autobooting. Since the board emulates the internal IDE-interface of Amiga 600 and it doesn't have ROM of its own, you thus need Kickstart ROM with the driver for A600's IDE. These ROMs are:
KS3.1 V40.063
KS2.05 V37.350
KS2.05 V37.300 (Some say this isn't ok for some ide drives over 40MB, I don't know better, but some of the drives work maybe?)
AFAIK, an early A600 KS-ROM KS2.05 V37.299 doesn't have the driver. KS2.04 ROM used in A500+ don't have it either.

(Or in other words) Autoboot with A600 kickstart

Kickstart versions 3.1 (V40.063), 2.05 (V37.350/V37.300) should make it autoboot. According to an "urban legend", there may be issues with the V37.300 variant of KS2.05. I don't know what they are, or are these problems serious.
Kickstarts that will not autoboot are e.g. 1.2, 1.3, 2.04 and 2.05 V27.299, since they don't have the IDE-driver for A600.

KS-ROM drivers have bug(s) on their own

Need to set the MaxTransfer size (such as 0xFE00) setting in HDToolBox for each partition to avoid transfer errors with files over 128 KBytes. Max. usable disk size under 4GBytes and partition size under 2GBytes without separate "64-bit" drivers installed.

Not all drives or cf cards may be comptible

I think so. CF card needs to work with +5 volt supply and support PIO mode.

Kickstart1.3 + scsi.device ide.driver + some patches

Thomas Köckerbauer joined scsi.device from KS3.X with KS1.3. (Link to aminet to be added) Patching Kickstart 1.3 to boot from internal IDE

A thread at eab.abime.net

FAQ

Q: Is it compatible with other additions, such as turbo cards?
A: Not necessarily. [b]Changes in cpld code may change compatibility either way.[/b][blink]![/blink]
A: Experiences from users (of mostly V100/106):
CF-connector at the back conflicts with Indivision in Amiga 500.
Works with GVP A530.
"I bought a IDE68K and can confirm that it works with Microbotics VXL-30 in 030 25MHz mode."
"I can confirm that it does not work with a Neuroth020 CPU board. But it works in 68k mode with a 2MB memory expansion."
"BTW I have tested the IDE 68K with an MTec 68020i accelerator in the A1000 and it does not work with that one. It does work with the ICD ADSpeed however."
V401: "This works with a Computer Systems Associates Mega Midget Racer (CSA-MMR) 030 accelerator + 8MB 32 bit FAST RAM + FPU."
Note: Extra big memory (2MByte) expansions in A500 trap-door slot should not use address space D80000-DFFFFF! (D80000 is for "clockport", DA0000 and DE0000 for IDE.)
Note: some version of fastram board from Kipper2K didn't work with v402 ide. On Kipper2K's board with fastram and v402 logic cpld and cf-connector they work together.
Q: What is the maximum size of IDE-disk (or CompactFlash)?
A: KS40.063/KS37.350 should support disk size upto 2^32 bytes = 4 gigabytes. A single partition can be upto 2 gigabytes.
A2: Drivers for using disk space over 4GB exist. The device driver and a compatible file system driver need to be installed.
Q: What is the 6 pin header (or pads) for?
A: It is a JTAG connection for programming the CPLD with xilinx programmer cable. In v106, the 2-pin header in some pcb versions next to the 6-pin header is for a jumper that connects +5V supply to the 6-pin header. In V402 there's a place for smd fuse/wire link that connects +5V to JTAG and also to pin 20 of IDE-header.
Note The fuse, resettable fuse, or wire link mentioned should be for current like 200 mA, when CF card is used. Maximum CF card current draw should be 100 mA according to cf specification. But [Microdrive] hard disk drives in CF-card format can take more, so 500mA fuse should be used instead of 200mA fuse. I have used 200mA and 500mA resettable fuses, and 2Amp smd block fuses, sometimes 0-ohm resistor jumpers, or links made from wire. Fuse can be usefule if poking around the system when power is on, because maybe a short circuit can occur.

Usage notes: Partitioning, Formatting and software installation

Amiga 600HD originally came with a hd preparation/install diskette, in addition to the Workbench + extra diskettes. (V2.05 system?)
In the same way as in A600, a new drive is first partitioned to "amiga style". HDToolBox is the partitioning tool from Commodore-Amiga. In one case it didn't work for a user, so another partition software was used.
In HDToolbox, set the MaxTransfer setting for all partitions to 0x1FE00 (or maybe 0x20000, or for certain portability reason 0xFE00) Failing to do this can corrupt file transfers over 128 KiloBytes. See CF / SD research & troubleshooting
Different filesystems can be installed, FastFileSystem, OldFileSystem or something else. New partions are mounted, then formatted for use. Partitions should mount automatically when set up so with HDToolBox. They can be made bootable. Early startup-menu in newer (2.0+) KS-ROM can be invoked by pressing left and right mousebuttons simultaneously right after power-up or reset, there you can select which partition to use as sys: boot partition for this boot.
I'm not sure if this was normal behavior, but new partition should be formatted right after HDToolBox preparation or it "disappeared" and Format-command wouldn't find the partition...
AmigaDOS Format command: you probably need to use the "quick" option. I think (at least OS1.3) Format command needs RAM for a whole track, and format won't succeed if there's not enough RAM. There may be other format programs for Amiga.
About fixed vs. removeable disks CF-cards often tell to the host computer that they are removeable type. HDToolBox doesn't get the drive's reported name if this happens, but HDtoolBox can be patched to fix this. Or you can enter a name yourself.
Recommended reading, EAB sticky topic: CF / SD research & troubleshooting
EAB discussion thread "Using a Compact Flash card on a600/a1200 IDE"

(Hardware) installation notes

ESD

Take precautions against ElectroStatic Discharge, which can damage IC's.

Inserting

The board plugs in to the 68000 CPU socket. The CPU plugs in to the adapter board. The pin/socket headers/separate pins used in ide68k/cfide68k will eventually break if they are wiggled too much, so be careful and avoid stress when inserting or extracting the interface board. Also be aware that the DIP-64 socket on Amiga mainboard can wear out by many insertion/extraction cycles, or even one insertion especially if the header pin contacts of ide68k board are thick(*) When inserting the ide68k board, see that all pins go to the right holes at the mainboard socket, and also be careful not to insert it the wrong way around: see where pin 1 at the notch-marked end of the 68000 CPU goes, like when it was originally in its place. Also, be careful when putting the CPU on the adapter board, see that all CPU pins are guided into the socket holes before pressing the cpu to the socket. (The CPU pins cand bend.) It may be best to put the CPU into the adapter before the adapter into the mainboard socket.
(*), Some versions have soldered "double end" 0.1 inch pitch single row round pin header strips at the underside. This type of header has small pin diameter, which is an important feature, since thick pins would very likely damage the DIP-64 socket for the 68000P CPU found on mainboards of many Amiga models. Square 0.025" x 0.025" pin headers are thick. Some versions of the board have socket headers (or individual "socket pins") with solder-tails as for contacts to mainboard socket. These are little bit thicker than the round pin headers used in e.g. V100/106.
Also, CF-IDE adapters should be inserted correctly. Misplaced adapter could burn the CF-card.

Extracting

When pulling the board or the 68000 from socket, don't use sharp or otherwise damaging tools, the PCB tracks or parts may be damaged. I've put some hot glue over the 74vhct245 chips and CF socket in some V208 boards for protection against damage from tools. Apply lifting force "evenly." Do not use too much force, because when it begins to move, it will get too much speed and pop out because of high extraction force. Pins might then get damaged.

Adding two (or three, or four) connection wires to mainboard and about their purpose

Pictures where to find connection points are in the version difference table below.
But first: These wires should be short, excess wire should not be looped because that may cause electromagnetic interference by inductance. For the same reason, [b]add ground wire(s)[/b] that runs alongside the other wires, between adapter and mainboard. A grounded header pin or pad maybe available on some versions of the ide adapter board.
It is necessary to connect two signals from the adapter board to the Amiga mainboard to get it to emulate A600's Gayle IDE behavior. One is /INT2 interrupt request signal, and the other one is /OVR, which is used here in an "unsupported" way: to disable address decoding by Gary, when address range $DExxxx (also DAxxxx) is accessed. In A500 this is a mirror of the custom chip set addresses, but in A600 it is for special function, e.g. to detect presence of the IDE-interface of the Amiga 600. /OVR and /INT2 signals can be found next to each other at the 86-pin expansion connector. /INT2 can also be found at pin 21 of U7 8520 CIA (ODD CIA "A") in the Amiga 500, and /OVR at pin 29 of U5 Gary. /int6 is at pin 21 of the EVEN CIA "B", U8 in A500.
/OVR and /INT2 are available on the top side of the 86-position card-edge. Number one is a ground contact, and so is the next one beside it. In older A500 mainboards (rev5) these two positions may form a big unified copper area. When counting the top side positions, /OVR is the 9th, and /INT2 the 10th. In "pin-numbers": /ovr = pin 17, /int2 = pin 19, /int6 = pin 22. Link "Google" for other finds of information.

/OVR and /int2 in A1000, CDTV, A/B2000

I don't have an Amiga 1000 or a CDTV, but /int2, /ovr (and /int6) can be found on these models too. /ints are on CIA-pin(s) 21, Odd CIA "A" has /int2, and Even CIA "B" has /int6. CDTV and B2000 have a Gary chip same as A500(I think?). A1000 and IIRC A2000 don't have Gary. A1000 has similar side slot card edge connector as A500, but I think it is positioned differently than in A500, "up-side-down" or reversed in other way. The pin numbers are the same in A500, A1000, A2000 and B2000(see above.) In Amiga 2000 models the 86-pin connector is a "slot" instead of "card-edge". See B2000 (mb. rev4.4) connections to Gary and CIA for /ovr and /int2 in photo at the table below.

Amiga 2000, at least mainboard rev.4.4, has a 4-pin connector marked "cn606" beside the CPU and 86-pin connector. It should be cleared somehow in order not to short circuit adapter boards. (I bent pins in one B2000)

And a third signal to connect

Boards with a clockport connector could use a connection of the /int6 interrupt. The signal is routed from the clockport connector to the third pin of the pin header which had 2 pins, for /ovr and /int2, in the boards without the clockport connector. On Amiga motherboards, /int6 signals can be found in various places. A500 card edge has this contact on the underside, whereas /ovr and /int2 could be found on the top side.

Will it fit in?

In the front of the A500, the keyboard might come in contact with the V100 board, if it is not built with low profile components: low profile pin headers, or 68000 soldered directly without a socket. V106 (and V188/208,some V29x, V40x) should fit, because it adds only the height of one socket layer.
Also the metal RF-shield of A500 will limit available space inside if used. Other combinations of adapter board and Amiga mainboard and case may have issues of fitting. Amiga 2000: CF-connector in CFIDE can be close to power connector of Amiga 2000 so that the CF card can't be removed or inserted when cfide adapter in place. Amiga 1000: may need space for kickstart adapter too CDTV: low profile, as not much space under lid

CPLD source, jedec programming files

CPLD code abel source 9-jan-2019 V4XX: .jed for v4xx xc9572 (also kipper2k ram/ide board) for xc9572xl for xc95144xl
27.7.2018 CPLD codes ZIP, most versions untested, file name should lead to board version

Differences between revisions

verschematicpcb image/int2, /ovr
100 png ps png JPG (src) , JPG
106 png ps png JPG, PNG
122(2020 model)
cf188 png ps png JPG 1, 2
cf208 png png A2K JPG1, 2
cfcp290 png png V6a-A500 JPG A500+ JPG, BIG
cfcp293 png png
cfcp295 png png
cfcp296 png png
cfcp297 png png
cfcp298 png png
401 png png
402 png png
418 png png
419 png png
420 png png
421 png png
424 png png
425 png png
425i png png gerbers, for personal use, not licensed for mass production
426-RI png png Female 40 pin right angle socket header on bottom side of board
427m44 png png male 44 pin (2.0mm) header (on top)
428ra png png right angle 40 pin header - or 40 pin header soldered to card's edge (therefore right-angle)
429 png png wide pads for 40 pin header - (proto pcb text "426a")
430f44 png png female 44 pin (2.0mm) socket (on top)
PCB size
CF connector
22-pin "clockport" (from which /int6 is routed to other header)
PCB component silkscreen may be left out in some productions of PCB.
DIP64 PCB holes diameter that allow soldering sockets so that the solder tails are contacts to the Amiga mainboard CPU socket.
V106 has series termination resistors for /IOW and /IOR lines.
LED and CF master/slave jumpers (in some versions buffered)
CPLD type. Some versions have separate 8-bit bus buffer. Package and supply voltage of these IC:s.
Passive components can be various, decoupling capacitors etc.
IDE connector rotated 180 degrees
V40x moves IDE-connector to other side of the CPU.
Schematics and boards mention 4.7 kohm pull up or down resistors. IDE standard 10 kohm. IDE data line D7 should have 10 kohm pull down according to IDE standard. This might be retrofitted on board in case needed. With 3.3 volt XC9500XL with bus-hold circuits on, use 4.7 kohm pull-down/up. () Fet-"inverter" 2N7002 used in v2xx boards doesn't quite turn fully on by 3.3 volt gate voltage, but is kind of in transitional region (it's better at 4.5volt and over). FDV301N might be a replacement for lower gate voltages. () Older than v100/106 board V6 abel source files had a bug. Certain Xilinx software option setting, "Compile Design" property "Feedback interpretation" as "Internal Feedback" instead of default "Pin feedback", produced a non-working jedec-file because one data signal was missing .pin suffix. A few non-working boards shipped. Some of the earlier (V106, maybe V100) boards were programmed with non-working cpld-configuration. If your adapter didn't work, it thus might be fixed by downloading a corrected cpld configuration using xilinx programming cable.
() The picture (v290) shows two unrouted "air wires". These are +5V signals, which are then not connected to each other on the adapter board. The other branch is fed from other 68000 +5V pin and the other from the other. The second unrouted signal is +5v to DMACK- signal of the CF card. But it is also not connected in v188 and v208 boards, so there is no difference to the previous versions of the board. This DMACK- signal is for DMA transfer mode of some newer CF cards, which is not used in this interface (which emulates A600's IDE)
() CompactFlash connector at the back end conflicts with A1000's floppy drive or an Indivision display adapter in A500. It comes close to 'Denise' chip in A500.
CF-card removing/insertion blocked by B2000's power connector when cfidecp board in 68000 socket.
() REV5 Mainboard Many versions of this ide adapter will not plug right in to Amiga 500 rev5 board CPU socket, because the ROM is closer (than in Rev6 mainboards.) Solution is to use a DIP-64 socket as a riser, so the the edge of ide adapter board would not conflict with the ROM chip. The socket to use should have long, not too thick pins to stay in the mainboard socket. The riser socket should have a bit longer pins instead of very short pins, so it will make a good contact with the mainboard socket. () Note: versions below may have other bugs, so flash cpld to later version (than C1/C2 or...).
Some v290/293 boards were made with rev. C1 CPLD code and need CPLD reflashed for clockport. Rev.C2 or rather newer ("4027") might fix the clockport (note: clockport has not been used or tested to be working by me so I don't know it is of any use.)
() Clockport connector is a bit too close to the IDE-connector, a 22-pin 2.0mm IDC-connector will conflict with the 40-pin IDE-connector if the IDE-connector is "boxed" ("walled"/"shrouded") Problem should be fixed in V297. () Older versions of CPLD code may have bugs. A few V402 boards shipped with rev1 ('41 ') cpld code, where the secondary outputs at the back of the board won't work.
In rev0 ('4010') secondary /OVR may work, but not the secondary /INT2. rev2 ('4020') fixes these but other glitches remain, so update to at least '4025', or "rev.5" (Xilinx download cable needed.)
Glitches on /ior and/or /iow signals in ide cause spurious skipping of successive words to be transferred between host and drive, which made harddisks not appear or not work on Amiga. Somehow (some) CF-cards ignored these glitchings and worked anyhow to at least some degree.
() Primary /INT2 and /OVR pads are placed slightly differently in V401 vs. V402. Check out the connections from pics.
() The "LED outputs" of IDE and CF should be connected together, because this is actually the unbuffered DASP- signal, which is used for signalling between slave and master (in the beginning). DASP- signal has been separated between IDE and CF connectors since version 290 upto version 296, fixed in v297
The LED series resistor could have had a larger value in some boards, as low as 47 ohms have been used. 150 ohms or more could be more appropriate. Too much loading this signal might interfere with master/slave negotiation. The other LED resistor and the other LED itself can be left out, after you connect the DASP- signals together. CD-ROM drive maybe not working perfectly with CFIDE boards. (V100 worked with CD-ROM at least for one user.) CD-ROM may have appeared after a reboot. This could have been because of that missing DASP- connection between master and slave drives. (I haven't used CDROM myself. note: 'Idefix' cd-driver may need to be patched, when a CF card as the other device.) Also, the CPLD code can be updated to see if it makes things work better.

About its operation

IDE-signals are buffered and generated (decoded from Amiga's bus happenings) by a CPLD (user programmable logic IC) which also emulates the detection circuit of A600's ide interface. The emulation of a600 wasn't made 100%, but I guess enough.

Other drivers besides the one in an A600 kickstart

There is no warranty that the interface works reliably with the drivers in kickstart or other IDE drivers / software or devices.
At EAB web forum, coze says CD-rom works with IDE-FIX software. (Which may not be able to use "removeable" CF-cards without a patch.)

Speed

First I had a 256 MB CF-card with adapter on the cable, and then I added a 1.6 GB old IBM hard disk as slave, and copied some 10 MBytes of small files to it from the CF-card. It wasn't a very fast operation. You can expect the transfer speed to be the same as A600's ide interface's speed. I should test the speed sometime.

Compatibility in different models of 68000 Amiga

In the A500 rev5 mainboard the KS-ROM chip is closer to the CPU than in rev6 or A500+. DIP-64 riser sockets may be used. Riser socket used should not have too short pins or it pops out of Amiga mainboard socket.
Amiga 2000 may need to move or bend 4-pin header CN606 and capacitor C404, int2/ovr pin header in e.g. v29x may need bending upwards: PICTURE

I have used/tested them on A500 (or A500+) mainboard (not necessarily in the original case with the a500 keyboard in place nor the metal RF-shield). And some in one Amiga B2000. Not in CDTV, but it should possible, so is A1000. An 100 or 106 model was put in one CDTV by someone, as well as some other versions.
Models with CF connector conflict with A1000's floppy drive. Amiga 2000:s power connector may block inserting or removing th CF-card.
Amiga.org member Jeff uses V100 it in an which has a kickstart upgrade. (Links not working.)

Other conflict

Because of the A600 IDE-interface emulation, it expects the address space $daxxxx and $dexxxx (and $d8xxxx) not to be used by other add-on cards in the Amiga system. Such as 2MB trapdoor slot memory expansion, or The Viper 520 CD accelerator with IDE, which I think uses similar A600 ide emulation?

Issues?

Clock, reset Signal rise/fall times for cpld should be at most 10 nS. In Amiga main board, rise time can be over 20 nS and fall time almost as much. Reset line filter added to newest cpld code. Using 32-bit move.l command with the 16-bit data register in IDE taskfile in the a500ide interface caused data corruption. I haven't studied that with this board. The ide drivers in KS-ROM probably use 16-bit moves.
XC9572 shouldn't have its pins floating, it may increase power consumption. Xilinx UG445 CPLD I/O User Guide (PDF) Maybe resistors or other DC-termination could be hacked in somewhere if this is a concern?
According to ATA docs, IDE databus bit 7 should have 10 kohm pull-down instead of up at the host side.
74VHCT245 (and many other types of the "245" bus buffer ic) inputs / 3-state IO:s may not float. Pullup resistor array packs pads added in V208 pcb to ide side bus. Some A500/A500+ mainboard revisions have places for data-bus pull-up networks next to the 68000, these are usually empty.
In current version of the CPLD ABEL design, it is not exhaustively verified if all of the inputs are valid at the clock edge. (Which shouldbe the case for solid synchronous logic design.) The clock signal to CPLD is the same 7 Mhz clock that goes to 68000 CPU. There is a 32 MHz oscillator module or pads for one on the V100 board, but I haven't used it.

Information sources

I used the information from "hddmem" project files by Vladimir Sobolev, which emulates A600's IDE-interface and PCMCIA RAM. The ide68k board only uses IDE. The files are at Aminet hddmem uses an obsolete Intel CPLD. CPLD files are in some PLD language, and there is also a diagram of the gayle identification state machine in a bitmap picture.
There is a document by Commodore Amiga for A600 Gayle, it seems to be "preliminary" draft or not "finished" version.
Gaylean registers are discussed on EAB web forum.
How to build LPT programming cable and get software for CPLDs