Friday, July 11, 2025

Solving the HP16500 Compact Flash card mystery

The HP16500 series of logic analyzers comes in three versions: the HP16500A which only runs from LIF formatted floppies and the HP16500B and HP16500C which also incorporate an IDE hard drive, can use MSDOS formatted floppies and where the HP16500C has the most powerful CPU, supports the most memory (mine runs with 64MB now) and has added networking capabilities out of the box.


By now all the original IDE drives are either failing after such a long time or they make rather strange sounds indicating that their end is rather near too. The immediate idea is to replace them with solid state storage, either in the form of an IDE SSD or using compact flash cards which have an electrical interface that is compatible to IDE/ATA.


IDE SSD are rare and/or expensive and you need to take into account that the HP16500B/C operating system only supports FAT12 or FAT16 formatted drives and is thus limited to a drive size of 2GB. 


So the easiest way to replace the aging spinning disks is to use a 40-pin IDE to CF adapter and a compact flash card. Sadly a quirk in the 16500 OS makes this not such an easy task.


Many users have found out that the 16500 are very picky about which CF cards actually work, some are rejected outright and the unit does not even boot, others can seemingly be formatted but then no files can be written to the cards. Some people assume it’s due to the specific brand of the IDE to CF adapter, others think that the 16500 issues some special IDE commands that certain cards don’t support. The real reason is much simpler and unfortunately makes finding a supported card a real game of trial and error.


Out of the whole IDE/ATA specification, the HP16500B/C only uses three commands, namely Read Sector (20h), Write Sector (30h) and Identify Drive (ECh). The Identify Drive command returns information about the drive parameters, like model name and serial number but most importantly the drive size and geometry. Amongst the data returned is also one field named “Number of unformatted bytes per sector” which has been present in the earliest versions of the ATA specifications that I could find but for which there was never given any explanation is to what it actually means. 


At the time the HP16500B/C were made all hard drives had a sector size of 512 bytes and this number is mentioned explicitly in the specifications several times, without referring to “Number of unformatted bytes per sector”. This field is present up to the official ATA-1 specification but was then quickly retired in the ATA-2 spec of 1996 marking it as “Vendor specific (obsolete)”


When the HP16500B came out in 1994, I assume all hard drives would report the “number of unformatted bytes per sector” as 512 and so the 16500 OS uses that number in order to format and operate the connected hard disk (or SSD or CF card)


Sadly old and current compact flash cards report all kinds of sector sizes. Out of the random collection of cards I acquired over the years or bought specifically in the past weeks, I have seen sizes of 512 (correct), 64, 528, 576 and even 0. For some cards I could find the data sheets and confirm these number there too.


The 16500 dutifully tries to create a FAT16 filesystem using the number as reported by the card but then fails to create a file. Only if the card reports a correct sector size of 512 the card will work.


I have also tried to outsmart the 16500 by using SD cards and an SD to CF adapter of which I have two, one bought in the early 2000s for which I can find no reference on the net and one acquired recently and which uses the common FC1307A chip inside. The early SD to CF adapter gives a sector size of 512 for all SD cards and works, the newer model sadly always reports 576 and thus cannot be used either.


here are all the cards and adapters I tried:



  • old SD to CF adapter:
    • 32 MB SD Sandisk: works
    • 512 MB MMC extrememory: works
    • 1 GB SD Sandisk: works
    • 4 GB SD: not recognized by the adapter (2GB limit?)
  • new SD to CF adapter: 
    • reports 576, does not work with any SD card 

  • 16 MB CF Canon: works
  • 32 MB CF Unknown: works
  • 64 MB CF HITACHI: works
  • 64 MB CF extrememory: reports 0, unit does not boot
  • 256 MB CF DANE-ELEC: reports 528, does not work
  • 256 MB CF Sandisk: reports 576, does not work
  • 512 MB CF Sandisk: reports 576, does not work
  • 1 GB CF iCF4000 Innodisk (bought in 2025): reports 512, works!
  • 1 GB CF MemoryPartner (AliExpress, 2025): reports 512, works!
  • 2 GB CF MemoryPartner (AliExpress, 2025): reports 64, does not work
  • 4 GB CF MemoryPartner (AliExpress, 2025): reports 512, but is larger than 2 GB so does not work


As the Innodisk iCF4000 has been reported to work by others before, is reasonably sized and seems to be easily available at the time of writing (July 2025), it’s the card I would recommend to get and use with the HP16500B/C. I got a few of them recently and paid ~$7 per card