Lo-tech ISA CompactFlash Adapter revision 2
The Lo-tech ISA CompactFlash Adapter revision 2 is an ISA card enabling the connection of standard CompactFlash cards (or ATA-2 compliant hard disks) to IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot. The card includes a BIOS ROM, enabling the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e. drive C, D, etc). No DOS drivers are needed.
The PCB itself is a through-hole, small form factor 8-bit ISA adapter providing a 40-pin IDE header suitable for connection to a separate IDE to CompactFlash adapter (or direct connection to any device supporting the ATA-2 command set). The design is an update to the Lo-tech ISA CompactFlash Adapter with reduced component count and increased hole size for power cables. The design has several goals:
- Bootable storage adapter for 8-bit PCs
- Ease of home assembly, by use of only through-hole components for basic operation
- Small form-factor, to enable use in machines with limited expansion slot space such as the Tandy 1000HX, Sinclair PC200 and Amstrad PC-20
- IBM Personal Computer XT System Board Slot 8 compatibility (with optional SMD components mounted on rear of PCB)
- 5V supply to IDE header key-pin, for cable-less operation of CompactFlash adapters supporting this power option
The board is programatically identical to the XT-CF-lite and is therefore powered by the XT-IDE Universal BIOS, provided through an in-system re-programmable 32KB (addressible) flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable. The board can therefore function as a universal ROM board, regardless of whether the IDE decoder logic is used (or indeed populated on the PCB).
To buy this and other PCBs, please visit the lo-tech shop.
- 8-bit ISA card with 40-pin IDE header for attachment to IDE to CompactFlash adapter or ATA-2 compliant drives
- 5V power supply:
- to IDE header key-pin (can drive micro-drives or CompactFlash cards without any external power connection)
- holes for attachment of peripheral power cable (for use where target host has no available peripheral power cables)
- Basic functionality is dependent only on through-hole components
- Optional SMT components provide additional functionality:
- Line driver for external activity LEDs (12mA power budget for external LED)
- IBM Personal Computer XT System Board Slot 8 compatibility
- Low-cost flash memory chip for boot ROM, with 32KB usable
- Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)
- Utilises XT-IDE Universal BIOS (adapter type: 'XT-CF')
- Fixed resource allocation - IO ports 300-31Fh, ROM 32KB at C800h
Bill of Materials
Basic functionality requires only through-hole components:
|RN1||4-element Isolated Resistor Network, 10k||SIP-8||1||9356525||652-4608X-2LF-10K|
|C1..5||0.1uF Ceramic Capacitor||C025-030X050||5||2112751||581-SR205E104MAR|
|C6||10uF Electrolytic Capacitor||E2-5||1||8767084||647-UVR1C100MDD|
|HD1||T821140A1S100CEU||2x20 Pin Header, 2.54mm spacing||1||2215314||517-D2540-6002-AR|
|IC Socket (DIP32)||-||DIL32||1||1654375||571-1-390263-2|
|IC Socket (DIP20)||-||DIL20||3||1101349||571-1-390261-6|
|IC Socket (DIP16)||-||DIL16||1||1101347||571-1-390261-4|
|JP1||-||1x2 Pin Header||1||1593411||571-826629-2|
For IBM Personal Computer XT System Board Slot 8 compatibility and device activity LED, also populate these optional components:
|R1, R2||RESISTOR, 10K, 125MW||0805||2||1612522||71-CRCW0805J-10K-E3|
|R3||RESISTOR, 0.125W 1% 270R||0805||1||1652970||71-CRCW0805270RJNEA|
|C7||CAPACITOR, 0.1UF, 50V||0805||1||1612208||581-ESD55C104K4T2A24|
|LED||-||1x2 Pin Header||1||1593411||571-826629-2|
- Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):
- Regardless of the chip used, 32KB is presented commencing C800h
Note that when assembling SMT components, additional flux will also be needed (such as Edsyn FL22, Farnell order code 3059091).
- JP1: ROM enable (closed = enabled)
An external LED can be attached to the 2-pin LED header only if the optional components (on the rear of the PCB) are populated. JP2 also depends on those components. Current limit for LED is 12mA.
The IO port address (300h - 31Fh) is fixed, as is the ROM address (32KB at C800h).
Build & Test
For additional help, please email me via the site blog.
This project is supplied as a bare PCB (and can be purchased via the site blog) - components from the Bill of Materials above must be sourced separately for example from Farnell, Newark, Mouser, DigiKey or other electronic component supplier. Farnell and Newark part numbers are provided above for convenience.
A temperature controlled soldering iron is recommended as simple 15W/20W/25W irons tend to get too hot and can damage PCBs in use. Tin-lead solder is generally easier to use than the lead-free variety. If soldering the optional SMT parts, a quality syringe flux is also recommended - see SMT Soldering Notes. Before construction, the PCB should be cleaned in isopropynol.
- Find a suitable work surface with plenty of light. I find a car-cleaning sponge useful to rest the PCB on since components are held nicely in place under the PCB by the soft surface, which can also be easily turned around as a whole with components not yet soldered
- Start with the least tall components, so that they are held full in place with the solder side up
- When soldering IC sockets or ICs, ensure the notches are at the correct end as indicated by the PCB silkscreen
- If using a shrouded 40-pin header, observe correct orientation as indicated by the silkscreen. The key pin can be removed from the header with a small pair of thin-nose pliers before placement (though note that the key pin can be used to supply 5V to the required CompactFlash adapter if left in-place)
- Wash all flux residues off once complete using isopropynol (for example with a toothbrush)
- Check closely with a magnifying glass all joints. Check especially for bridges between SMT pins
BIOS Flashing (Programming)
- The board is powered by the XT-IDE Universal BIOS and features a 32KB in-system re-programmable flash chip
- XTIDE Universal BIOS build R560 or newer is recommended (v2 beta 3 is much older)
- The flash chip is programmed with the Lo-tech XT-CF flash utility
- Select the appropriate ROM image:
- IDE_XT.BIN for Intel 8088 and 8086 CPUs
- IDE_XTP.BIN for NEC V20, V30, and Intel 80286 CPUs
Note: The late initialisation module in the XTIDE Universal BIOS should only be included in the BIOS build for systems that require this. The module can cause the BIOS to hang after initialisation on other systems. The BIOS build above excludes this module.
To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility. Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus:
A:\>flash ide_xt.bin c800
Note that should a board containing the IDE_XTP.BIN image be moved to an Intel 8088/8086 PC, the BIOS image will cause the machine to hang during the POST. To resolve this, either re-flash the board with the IDE_XT.BIN image before moving, or disable the ROM during the POST via JP1. JP1 can be closed once the machine has booted, so enabling the ROM for programming (provided there is no other ROM at C800h).
Whilst there are no configurable options on the PCB itself, the XTIDE Universal BIOS provides several transfer modes for Lo-tech XT-CF Boards. The Lo-tech ISA CompactFlash Adapter revision 2 supports two modes (PIO and BIU), which can be changed on-the-fly with the Lo-tech XTCFMODE Utility. The default mode, set when the BIOS is initialised (i.e. when the machine is powered-on or rebooted), is set within the BIOS via the XTIDE Universal BIOS xtidecfg.com utility.
Since the transfer mode reverts at every reboot to the mode set in the BIOS, to permanently set the transfer mode it should be configured accordingly within the BIOS. Alternatively, XTCFMODE can be included in AUTOEXEC.