# CompactFlash

CompactFlash (CF) is a flash memory mass storage device used mainly in portable electronic devices. The format was specified and the devices were first manufactured by SanDisk in 1994.
CompactFlash became one of the most successful of the early memory card formats, surpassing Miniature Card and SmartMedia. Subsequent formats, such as MMC/SD, various Memory Stick formats, and xD-Picture Card offered stiff competition. Most of these cards are smaller than CompactFlash while offering comparable capacity and speed. Proprietary memory card formats for use in professional audio and video, such as P2 and SxS, are faster, but physically larger and more costly.
CompactFlash's popularity is declining as CFexpress is taking over. As of 2022, both Canon and Nikon's newest high end cameras, e.g. the Canon EOS R5, Canon EOS R3, and Nikon Z 9 use CFexpress cards for the higher performance required to record 8K video.
Traditional CompactFlash cards use the Parallel ATA interface, but in 2008, CFast, a variant of CompactFlash, was announced. CFast (also known as CompactFast) is based on the Serial ATA interface.
In November 2010, SanDisk, Sony and Nikon presented a next generation card format to the CompactFlash Association. The new format has a similar form factor to CF/CFast but is based on the PCI Express interface instead of Parallel ATA or Serial ATA. With potential read and write speeds of 1 Gbit/s (125 MB/s) and storage capabilities beyond 2 TiB, the new format is aimed at high-definition camcorders and high-resolution digital cameras, but the new cards are not backward compatible with either CompactFlash or CFast. The XQD card format was officially announced by the CompactFlash Association in December 2011.

## Description

There are two main subdivisions of CF cards, 3.3 mm-thick type I and 5 mm-thick type II (CF2). The type II slot is used by miniature hard drives and some other devices, such as the Hasselblad CFV Digital Back for the Hasselblad series of medium format cameras. There are four main card speeds: original CF, CF High Speed (using CF+/CF2.0), faster CF 3.0 standard and the faster CF 4.0 standard adopted as of 2007.
CompactFlash was originally built around Intel's NOR-based flash memory, but has switched to NAND technology. CF is among the oldest and most successful formats, and has held a niche in the professional camera market especially well. It has benefited from both a better cost to memory-size ratio and, for much of the format's life, generally greater available capacity than other formats.
CF cards can be used directly in a PC Card slot with a plug adapter, used as an ATA (IDE) or PCMCIA storage device with a passive adapter or with a reader, or attached to other types of ports such as USB or FireWire. As some newer card types are smaller, they can be used directly in a CF card slot with an adapter. Formats that can be used this way include SD/MMC, Memory Stick Duo, xD-Picture Card in a Type I slot and SmartMedia in a Type II slot, as of 2005. Some multi-card readers use CF for I/O as well.
The first CompactFlash cards had capacities of 2 to 10 megabytes. This increased to 64 MB in 1996, 128 MB in 1998, 256 MB in 1999, 512 MB in 2001, and 1 GB in 2002.

## Technical details

The CompactFlash interface is a 50-pin subset of the 68-pin PCMCIA connector. "It can be easily slipped into a passive 68-pin PCMCIA Type II to CF Type I adapter that fully meets PCMCIA electrical and mechanical interface specifications", according to compactflash.org. The interface operates, depending on the state of a mode pin on power-up, as either a 16-bit PC Card (0x7FF address limit) or as an IDE (PATA) interface.
Unlike the PC Card interface, no dedicated programming voltages (Vpp1 and Vpp2) are provided on the CompactFlash interface.
CompactFlash IDE mode defines an interface that is smaller than, but electrically identical to, the ATA interface. The CF device contains an ATA controller and appears to the host device as if it were a hard disk. CF devices operate at 3.3 volts or 5 volts, and can be swapped from system to system. CompactFlash supports C-H-S and 28-bit logical block addressing (CF 5.0 introduced support for LBA-48). CF cards with flash memory are able to cope with extremely rapid changes in temperature. Industrial versions of flash memory cards can operate at a range of −45 °C to +85 °C.
NOR-based flash has lower density than newer NAND-based systems, and CompactFlash is therefore the physically largest of the three memory card formats introduced in the early 1990s, being derived from the JEIDA/PCMCIA Memory Card formats. The other two are Miniature Card (MiniCard) and SmartMedia (SSFDC). However, CF did switch to NAND type memory later. The IBM Microdrive format, later made by Hitachi, implements the CF Type II interface, but is a hard disk drive (HDD) as opposed to solid-state memory. Seagate also made CF HDDs.

### Speed

CompactFlash IDE (ATA) emulation speed is usually specified in "x" ratings, e.g. 8x, 20x, 133x. This is the same system used for CD-ROMs and indicates the maximum transfer rate in the form of a multiplier based on the original audio CD data transfer rate, which is 150 kB/s.
    $R={K\cdot 150}\ {\text{kB/s}}$
where R = transfer rate, K = speed rating. For example, 133x rating means transfer rate of: 133 × 150 kB/s = 19,950 kB/s ≈ 20 MB/s.
These are manufacturer speed ratings. Actual transfer rate may be higher, or lower, than shown on the card depending on several factors. The speed rating quoted is almost always the read speed, while write speed is often slower.

#### Solid state

For reads, the onboard controller first powers up the memory chips from standby. Reads are usually in parallel, error correction is done on the data, then transferred through the interface 16 bits at a time. Error checking is required due to soft read errors. Writes require powerup from standby, wear leveling calculation, a block erase of the area to be written to, ECC calculation, write itself (an individual memory cell read takes around 100 ns, a write to the chip takes 1ms+ or 10,000 times longer).
Because the USB 2.0 interface is limited to 35 MB/s and lacks bus mastering hardware, USB 2.0 implementation results in slower access.
Modern UDMA-7 CompactFlash Cards provide data rates up to 145 MB/s and require USB 3.0 data transfer rates.
A direct motherboard connection is often limited to 33 MB/s because IDE to CF adapters lack high speed ATA (66 MB/s plus) cable support. Power on from sleep/off takes longer than power up from standby.

#### Magnetic media

Many 1-inch (25 mm) hard drives (often referred to by the trademarked name "Microdrive") typically spin at 3600 RPM, so rotational latency is a consideration, as is spin-up from standby or idle. Seagate's 8 GB ST68022CF drive spins up fully within a few revolutions but current drawn can reach up to 350 milliamps and runs at 40-50 mA mean current. Its average seek time is 8 ms and can sustain 9 MB/s read and write, and has an interface speed of 33 MB/s. Hitachi's 4 GB Microdrive is 12 ms seek, sustained 6 MB/s.

### Capacities and compatibility

The CF 5.0 Specification supports capacities up to 128 PiB using 48-bit logical block addressing (LBA). Prior to 2006, CF drives using magnetic media offered the highest capacities (up to 8 GiB). Now there are solid-state cards with higher capacities (up to 512 GB).
As of 2011, solid-state drives (SSDs) have supplanted both kinds of CF drive for large capacity requirements.

#### Solid state capacities

SanDisk announced its 16 GB Extreme III card at the photokina trade fair, in September, 2006. That same month, Samsung announced 16, 32 and 64 GB CF cards. Two years later, in September, 2008, PRETEC announced 100 GB cards.

#### Magnetic media capacities

Seagate announced a 5 GB "1-inch hard drive" in June, 2004, and an 8 GB version in June, 2005.

#### Use in place of a hard disk drive

In early 2008, the CFA demonstrated CompactFlash cards with a built in SATA interface. Several companies make adapters that allow CF cards to be connected to PCI, PCMCIA, IDE and SATA connections, allowing a CF card to act as a solid-state drive with virtually any operating system or BIOS, and even in a RAID configuration.
CF cards may perform the function of the master or slave drive on the IDE bus, but have issues sharing the bus. Moreover, late-model cards that provide DMA (using UDMA or MWDMA) may present problems when used through a passive adapter that does not support DMA.

### Reliability

Original PC Card memory cards used an internal battery to maintain data when power was removed. The rated life of the battery was the only reliability issue. CompactFlash cards that use flash memory, like other flash-memory devices, are rated for a limited number of erase/write cycles for any "block." While NOR flash has higher endurance, ranging from 10,000 to 1,000,000, they have not been adapted for memory card usage. Most mass storage usage flash are NAND based. As of 2015 NAND flash were being scaled down to 16 nm. They are usually rated for 500 to 3,000 write/erase cycles per block before hard failure. This is less reliable than magnetic media. Car PC Hacks suggests disabling the Windows swap file and using its Enhanced Write Filter (EWF) to eliminate unnecessary writes to flash memory. Additionally, when formatting a flash-memory drive, the Quick Format method should be used, to write as little as possible to the device.
Most CompactFlash flash-memory devices limit wear on blocks by varying the physical location to which a block is written. This process is called wear leveling. When using CompactFlash in ATA mode to take the place of the hard disk drive, wear leveling becomes critical because low-numbered blocks contain tables whose contents change frequently. Current CompactFlash cards spread the wear-leveling across the entire drive. The more advanced CompactFlash cards will move data that rarely changes to ensure all blocks wear evenly.
NAND flash memory is prone to frequent soft read errors. The CompactFlash card includes error checking and correction (ECC) that detects the error and re-reads the block. The process is transparent to the user, although it may slow data access.
As a flash memory device is solid-state, it is less affected by physical shock than a spinning disk.
The possibility for electrical damage from upside-down insertion is prevented by asymmetrical side slots, assuming that the host device uses a suitable connector.

#### Power consumption and data transfer rate

Small cards consume around 5% of the power required by small disk drives and still have reasonable transfer rates of over 45 MB/s for the more expensive 'high-speed' cards. However, the manufacturer's warning on the flash memory used for ReadyBoost indicates a current draw in excess of 500 mA.

#### File systems

CompactFlash cards for use in consumer devices are typically formatted as FAT12 (for media up to 16 MB), FAT16 (for media up to 2 GB, sometimes up to 4 GB) and FAT32 (for media larger than 2 GB). This lets the devices be read by personal computers but also suits the limited processing ability of some consumer devices such as cameras.
There are varying levels of compatibility among FAT32-compatible cameras, MP3 players, PDAs, and other devices. While any device that claims FAT32-capability should read and write to a FAT32-formatted card without problems, some devices are tripped up by cards larger than 2 GB that are completely unformatted, while others may take longer to apply a FAT32 format.
The way many digital cameras update the file system as they write to the card creates a FAT32 bottleneck. Writing to a FAT32-formatted card generally takes a little longer than writing to a FAT16-formatted card with similar performance capabilities. For instance, the Canon EOS 10D writes the same photo to a FAT16-formatted 2 GB CompactFlash card somewhat faster than to a same speed 4 GB FAT32-formatted CompactFlash card, although the memory chips in both cards have the same write speed specification. Although FAT16 is more wasteful of disk space with its larger clusters, it works better with the write strategy that flash memory chips require.
The cards themselves can be formatted with any type of file system such as Ext, JFS, NTFS, or by one of the dedicated flash file systems. It can be divided into partitions as long as the host device can read them. CompactFlash cards are often used instead of hard drives in embedded systems, dumb terminals and various small form-factor PCs that are built for low noise output or power consumption. CompactFlash cards are often more readily available and smaller than purpose-built solid-state drives and often have faster seek times than hard drives.

### CF+ and CompactFlash specification revisions

When CompactFlash was first being standardized, even full-sized hard disks were rarely larger than 4 GB in size, and so the limitations of the ATA standard were considered acceptable. However, CF cards manufactured after the original Revision 1.0 specification are available in capacities up to 512 GB. While the current revision 6.0 works in [P]ATA mode, future revisions are expected to implement SATA mode.
* CompactFlash Revision 1.0 (1995), 8.3 MB/s (PIO mode 2), support for up to 128 GB storage space.
* CompactFlash+ aka CompactFlash I/O (1997)
* CF+ and CompactFlash Revision 2.0 (2003) added an increase in speed to 16.6 MB/s data-transfer (PIO mode 4). At the end of 2003, DMA 33 transfers were added as well, available since mid-2004.
* CF+ and CompactFlash Revision 3.0 (2004) added support for up to a 66 MB/s data transfer rate (UDMA 66), 25 MB/s in PC Card mode, added password protection, along with a number of other features. CFA recommends usage of the FAT32 filesystem for storage cards larger than 2 GB.
* CF+ and CompactFlash Revision 4.0 (2006) added support for IDE Ultra DMA Mode 6 for a maximum data transfer rate of 133 MB/s (UDMA 133).
* CF+ and CompactFlash Revision 4.1 (2007) added support for Power Enhanced CF Storage Cards.
* CompactFlash Revision 5.0 (2010) added a number of features, including 48-bit addressing (supporting 128 petabyte of storage), larger block transfers of up to 32 megabytes, quality-of-service and video performance guarantees, and other enhancements
* CompactFlash Revision 6.0 (November 2010) added UltraDMA Mode 7 (167 MB/s), ATA-8/ACS-2 sanitize command, TRIM and an optional card capability to report the operating temperature range of the card.

### CE-ATA

CE-ATA is a serial MMC-compatible interface based on the MultiMediaCard standard.

### CFast

A variant of CompactFlash known as CFast is based on the Serial ATA (SATA) interface, rather than the Parallel ATA/IDE (PATA) bus for which all previous versions of CompactFlash are designed. CFast is also known as CompactFast.
CFast 1.0/1.1 supports a higher maximum transfer rate than current CompactFlash cards, using SATA 2.0 (300 MB/s) interface, while PATA is limited to 167 MB/s using UDMA 7.
CFast cards are not physically or electrically compatible with CompactFlash cards. However, since SATA can emulate the PATA command protocol, existing CompactFlash software drivers can be used, although writing new drivers to use AHCI instead of PATA emulation will almost always result in significant performance gains. CFast cards use a female 7-pin SATA data connector, and a female 17-pin power connector, so an adaptor is required to connect CFast cards in place of standard SATA hard drives which use male connectors.
The first CFast cards reached the market in late 2009. At CES 2009, Pretec showed a 32 GB CFast card and announced that they should reach the market within a few months. Delock began distributing CFast cards in 2010, offering several card readers with USB 3.0 and eSATAp (power over eSATA) ports to support CFast cards.
Seeking higher performance and still keeping a compact storage format, some of the earliest adoptors of CFast cards were in the gaming industry (used in slot machines), as a natural evolution from the by then well-established CF cards. Current gaming industry supporters of the format include both specialist gaming companies (e.g. Aristocrat Leisure) and OEMs such as Innocore (now part of Advantech Co., Ltd.).
The CFast 2.0 specification was released in the second quarter of 2012, updating the electrical interface to SATA 3.0 (600 MB/s). As of 2014, the only product employing CFast 2.0 cards was the Arri Amira digital production camera, allowing frame rates of up to 200 fps; a CFast 2.0 adapter for the Arri Alexa/XT camera was also released.
On 7 April 2014, Blackmagic Design announced the URSA cinema camera, which records to CFast media.
On 8 April 2015, Canon Inc. announced the XC10 video camera, which also makes use of CFast cards. Blackmagic Design also announced that its URSA Mini will use CFast 2.0.
As of October 2016, there are a growing number of cameras, video recorders, and audio recorders that use the faster data rates offered by CFast media.
As of 2017, in the wider embedded electronics industry, transition from CF to CFast is still relatively slow, probably due to hardware cost considerations and some inertia (familiarity with CF) and because a significant part of the industry is satisfied with the lower performance provided by CF cards, thus having no reason to change. A strong incentive to change to CFast for embedded electronics companies using designs based on Intel PC architecture is the fact that Intel has removed native support for the (P)ATA interface a few design platforms ago and the older CPU/PCH generations now have end-of-life status.

### CFexpress

In September 2016, the CompactFlash Association announced a new standard based on PCIe 3.0 and NVMe, CFexpress. In April 2017, the version 1.0 of the CFexpress specification was published, with support for two PCIe 3.0 lanes in an XQD form-factor for up to 2 GB/s.

### Type I and Type II

The only physical difference between the two types is that Type I devices are 3.3 mm thick while Type II devices are 5 mm thick. Electrically, the two interfaces are the same except that Type I devices are permitted to draw up to 70 mA supply current from the interface, while type II devices may draw up to 500 mA.
Most Type II devices are Microdrive devices (see below), other miniature hard drives, and adapters, such as a popular adapter that takes Secure Digital cards. A few flash-based Type II devices were manufactured, but Type I cards are now available in capacities that exceed CF HDDs. Manufacturers of CompactFlash cards such as Sandisk, Toshiba, Alcotek and Hynix offer devices with Type I slots only. Some of the latest DSLR cameras, like the Nikon D800, have also dropped Type II support.

### Microdrives

Microdrive was a brand of tiny hard disks—about 25 mm (1 inch) wide—in a CompactFlash Type II package. The first was developed and released in 1999 by IBM, with a capacity of 170 MB. IBM sold its disk drive division, including the Microdrive trademark, to Hitachi in 2002. Comparable hard disks were also made by other vendors, such as Seagate and Sony. They were available in capacities of up to 8 GB but have been superseded by flash memory in cost, capacity, and reliability, and are no longer manufactured.
As mechanical devices, CF HDDs drew more current than flash memory's 100 mA maximum. Early versions drew up to 500 mA, but more recent ones drew under 200 mA for reads and under 300 mA for writes. CF HDDs were also susceptible to damage from physical shock or temperature changes. However, CF HDDs had a longer lifespan of write cycles than early flash memories.
The iPod mini, Nokia N91, iriver H10 (5 or 6 GB model), LifeDrive, Sony NW-A1000/3000 and Rio Carbon used a Microdrive to store data.

## Compared to other portable storage

* CompactFlash cards that use flash memory are more rugged than some hard drive solutions because they are solid-state. (See also Reliability above.) Separately, CompactFlash cards are thicker than other card formats, which may render them less susceptible to breakage from harsh treatment.
* As CompactFlash cards support the IDE/ATA command protocol with the host device, a passive adapter lets them function as the hard disk drive of a personal computer, as described above.
* CompactFlash does not have any built in digital rights management or cryptographic features found on some USB flash drives and other card formats. The absence of such features contributes to the openness of the standard, as card standards with such features may be subject to restrictive licensing agreements.
* The initial CompactFlash specification envisaged a higher maximum capacity than other card formats. For this reason, many early CompactFlash host devices are usable with modern multi-gigabyte memories, where users of other families such as Secure Digital have had to migrate to SDHC and SDXC.
* CompactFlash lacks the mechanical write protection switch that some other devices have, as seen in a comparison of memory cards.
* CompactFlash is physically larger than other card formats. This limits its use, especially in miniature consumer devices where internal space is limited, such as point-and-shoot digital cameras. (An offsetting benefit of larger size is that the card is easier to insert and remove, and harder to misplace.)

## Counterfeiting

The marketplace for CompactFlash is extensive and includes counterfeits. Off-brand or counterfeit cards may be mislabeled, might not contain the actual amount of memory their controllers report to the host device, and may use types of memory that are not rated for the number of erase/rewrite cycles that the purchaser expects.

## Other devices in the CF form factor

Since CompactFlash interface is electrically identical to the 16-bit PC Card, the CompactFlash form factor is also used for a variety of Input/Output and interface devices. Many standard PC cards have CF counterparts, some examples include:
* Barcode scanner
* Bluetooth
* Digital Camera
* Ethernet
* GPS
* Magnetic stripe reader
* Microdrive
* Modem and GSM Modem, including GPRS, CDMA2000 and EDGE
* Readers for various other Flash media
* RFID
* Sampler (musical instrument)
* Serial port and USB 1.1 host adapters
* Super VGA display adapter
* Wi-Fi

## Pinout

Shown looking into card.
| Function | Function | Function | | | | | Function | Function | Function |
| Mem | I/O | True IDE Mode 4 | | Pin | Pin | | Mem | I/O | True IDE Mode 4 |
| GND | GND | GND | --- | 1 | 26 | --> | CD1 | CD1 | CD1 |
| D03 | D03 | D03 | <-> | 2 | 27 | <-> | D11 | D11 | D11 |
| D04 | D04 | D04 | <-> | 3 | 28 | <-> | D12 | D12 | D12 |
| D05 | D05 | D05 | <-> | 4 | 29 | <-> | D13 | D13 | D13 |
| D06 | D06 | D06 | <-> | 5 | 30 | <-> | D14 | D14 | D14 |
| D07 | D07 | D07 | <-> | 6 | 31 | <-> | D15 | D15 | D15 |
| CE1 | CE1 | CS0 | --> | 7 | 32 | <-- | CE2 | CE2 | CS1 |
| A10 | A10 | L | --> | 8 | 33 | --> | VS1 | VS1 | VS1 |
| OE | OE | ATA_SEL | --> | 9 | 34 | <-- | NU | IORD | IORD |
| A09 | A09 | L | --> | 10 | 35 | <-- | NU | IOWR | IOWR |
| A08 | A08 | L | --> | 11 | 36 | <-- | WE | WE | WE |
| A07 | A07 | L | --> | 12 | 37 | --> | RDY/BSY | IREQ | INTRQ |
| VCC | VCC | VCC | --- | 13 | 38 | --- | VCC | VCC | VCC |
| A06 | A06 | L | --> | 14 | 39 | <-- | CSEL | CSEL | CSEL |
| A05 | A05 | L | --> | 15 | 40 | --> | VS2 | VS2 | VS2 |
| A04 | A04 | L | --> | 16 | 41 | <-- | RESET | RESET | RESET |
| A03 | A03 | L | --> | 17 | 42 | --> | WAIT | WAIT | IORDY |
| A02 | A02 | A02 | --> | 18 | 43 | --> | NU | INPACK | NC |
| A01 | A01 | A01 | --> | 19 | 44 | <-- | REG | REG | H |
| A00 | A00 | A00 | --> | 20 | 45 | <-> | BVD2(H) | SPKR | DASP |
| D00 | D00 | D00 | <-> | 21 | 46 | <-> | BVD1(H) | STSCHG | PDIAG |
| D01 | D01 | D01 | <-> | 22 | 47 | <-> | D08 | D08 | D08 |
| D02 | D02 | D02 | <-> | 23 | 48 | <-> | D09 | D09 | D09 |
| WP | IOIS16 | IOCS16 | --> | 24 | 49 | <-> | D10 | D10 | D10 |
| CD2 | CD2 | CD2 | <-- | 25 | 50 | --- | GND | GND | GND |
* Essential for 8-bit interface.
* Essential for 16-bit interface.