Teardown: Iomega Zip 250 USB Drive, ATAPI Benchmarks & Defect Analysis

In the last post, I documented the haul of gear donated by a generous reader. In this post, I take the time to see if I can make things better, do some experiments on the Zip ecosystem and report on the results.

Zip 250 USB Teardown

When I encounter a Zip drive that isn’t particularly co-operative, the first thing I think of is to clean the heads. This can be done with a head cleaning cartridge, but as they are exceedingly rare, my go-to method is just to disassemble the drive. To actually clean the heads, undo the springs that provide the auto-parking force for the heads, fold a scrap of clean paper, saturate it in high purity ethanol, manually load the heads onto the paper and gently move the paper from side to side before retracting the heads.

The big challenge was to open the unit. As it turns out, there are no screws holding the exterior casing together – a thin piece of wire in the strategically located holes pushes the latches apart allowing the casing to come apart.

The unit is very tightly put together – the drive and controller PCB are secured to the rear case simply by a piece of plastic and two screws. After removing these, it’s still a struggle to slide it out of the casing – the side grips sustained slight damage as a result.

Unfortunately for me, even with the drive assembly freed, I had no access to the drive heads.

It seems the drive has been designed without serviceability in mind – mainly for cost reduction. The top shield cover is spot-welded along the edges to the base, making it difficult to remove without damaging it and almost impossible to reinstall. As a result, I had to abort my disassembly at this point.

That being said, the underside of the drive does have an amazing array of test points and a few alignment holes. The rear PCMCIA cable connector and USB socket also seems to be hand soldered.

I decided that the only way to clean it might well be to sacrifice a ZIP-100 cartridge by removing the media and replacing it with a fixed sheet of paper that covers the area where the heads insert into the cartridge. That way the drive should load the heads onto the paper, seek back and forth a little and give up. But seeing as I didn’t want to sacrifice a disk … I decided to leave it for now and reassembled the drive to no change in performance.

Supplied Zip 100 Cartridges

I turned my attention to the supplied Zip 100 cartridges just to see if they were readable. To do this required me to go to my recovery box which hadn’t been used since the move. The first thing I had to fix was a flat CMOS battery, then a loose SATA cable, then a ZIP 100 drive with dirty heads, then a broken Windows 2000 install. It was worth it though.

Rather surprisingly, I had problems with them no matter which drive of mine I used, even though my own cartridges written on the ATAPI drive read just fine on all of the drives.

I started with the Zip Tools cartridge and tried to get a read on any of the drives. No dice. Admitting defeat, I decided to see what would happen if I tried to format the cartridge. Using sg_format in Linux, I encountered this error with the ATAPI Zip 100 drive:

This seems to imply something may have gone wrong with the low-level format of the disk which may not be recoverable. Putting the same disk into the ATAPI Zip 250 drive seemed to go a little further as the size of the disk was correctly detected but I couldn’t format it either:

This time, it said it was write protected but I didn’t believe that. That’s when I remembered that Zip 250 drives cannot long format Zip 100 cartridges due to their different head widths. They can’t even write to Zip 100 cartridges at “full speed”.

I decided to check with Windows as IomegaWare might be able to tell me more. On the ATAPI Zip 100, it really was unknown and giving “strange” values.

On the ATAPI Zip 250, it managed to identify some information but the format is unknown and it claims to recommend a long format meaning the data is basically in danger.

Trying a long format on the Zip 250 results in the expected error –

… so I tried to format it in the ATAPI Zip 100 … but …it didn’t work either. This sounds like a disk with a damaged Z-track which might become a cleaning disk sooner or later. But I gave it another shot – this time with the PocketZIP 100.

That drive was able to identify the disk like the Zip 250 drive, but best of all, it actually began to format the disk.

At the end, it failed to set the volume label and the disk was in limbo with an Unknown PC Format.But once I stuffed it back into the ATAPI Zip 100 drive, I was able to format it completely and bring it to health. The disk has been saved! As a result, I suspect that the disks themselves are fine but either the recording on them was dodgy due to a wonky drive or due to poor storage and the passage of time.

Zip 100 & Zip 250 Cross-System Benchmarks

This naturally leads to the question – what is the performance like with native Zip 100 drive + Zip 100 disk versus a Zip 250 drive + Zip 100 disk combination and how does the Zip 250 performance compare to Zip 100 performance. Having previously established the the ATAPI drives are practically as good as you can get, I decided to run the tests on the recovery box which has an ATAPI Zip 250 as master and ATAPI Zip 100 as slave on the onboard Intel 945GC chipset IDE controller.

Zip 100 drive + Zip 100 media

The baseline for our test is Zip 100 drive with Zip 100 media. Read performance averages about 1MB/s with performance varying from 0.7MB/s to 1.4MB/s. Write performance averages about 1MB/s with performance varying between 0.7MB/s to 1.1MB/s.

Zip 250 drive + Zip 250 media

This test was done with Disk #4 (see next section) which had a high media quality according to Iomega’s tools. This provided an average read of 1.7MB/s ranging between 1.1MB/s to 2.3MB/s. Writes averaged 1.1MB/s, ranging between 0.4MB/s to 1.4MB/s. As some of the dips seem to be media related, I decided to try again with Disk #5 which also had high media quality.

Aside from the loss of dips, the performance was still much the same. It seems that the drive retains the side-zero first followed by side-one approach of recording as the Zip 100 but now has more zones and increased speed due to increased density. Access times are very similar, although slightly slower, but the drive is much lighter on CPU usage possibly due to DMA support. Writing on the innermost zone seems to be the biggest bottleneck on the Zip 250 system.

Zip 250 drive + Zip 100 media

While backward compatibility was one of the big selling points to the Zip 250 system, this compatibility is not complete and comes at a cost. As discovered earlier, the Zip 250 drive is unable to long format Zip 100 cartridges. Here, we can see that while the Zip 250 is equally fast when reading Zip 100 disks, it is significantly slower than the Zip 100 when writing to the cartridges. It only achieved an average of 0.2MB/s write ranging between 0.1MB/s to 0.2MB/s. It’s so slow that this tool doesn’t give us a good accurate measure, but we can infer that it is approximately five times slower.

The reason behind this is likely due to the head geometry which is optimised for thinner tracks used in the Zip 250, resulting in the write process being a complex multi-pass process to ensure the old “wide” track is properly fully erased and writing adequate signal in return to ensure interchangeability. Indeed, I found that Zip 100 disks written by the Zip 250 were readable in the Zip 100 drives.

Zip 250 Defect List Analysis

Compared to Zip 100 disks, my experience with Zip 250 disks recently seems to show that they are more troublesome when it comes to data recovery and less reliable. Whereas the Zip 100 seemed almost bulletproof, I am yet to come across a Zip 250 with its original data that would read through without having to go through a long multiple-retry process.

As a result of an earlier discovery that I could read out the ZIP disk defect lists using sginfo and some debate about how or if this correlates to the IomegaWare reported media life and format life, I thought this would be a good time to put that to the test. I grabbed all six ZIP250 disks, recovered as much data as possible, then put them through a long format. Then I read out the defect list and the relevant data through the IomegaWare properties.

The summary is in the table below, with the raw defect list data is in an appendix at the end of the article.

At a glance, we can see:

  • The PLIST defect data usually has no invalid tracks in it from the six disks formatted. The GLIST data can have invalid tracks.
  • The Iomega Media Life and Format Life values do not correlate with the total entries in either PLIST or GLIST. In fact, Disk #4 I used for testing due to the high media and format life has the highest defect list total, whereas Disk #5 which I also used in testing has the lowest defect list total.
  • Despite a lack of correlation, the PLIST and GLIST data seems to be accurate if judging from the throughput from HDTune in the previous section – Disk #4 exhibited a large number of throughput dips compared to Disk #5 despite both disks having the same Iomega Life values.
  • I suspect the Iomega Life parameters also counts pending/weak sectors and possibly has other metrics about the media signal response to weigh in on its reported value. It may also be related to how many times the cartridge has been formatted, how much reading/writing it has endured, the time spent with heads loaded – I have no idea exactly what metrics are used. However, whether the Iomega metrics are more accurate is not certain either.
  • The cartridges have a manufacture date ranging from Day 330 in 1999 through to Day 64 of 2002.

I decided to go further and graph the defect lists to determine whether they could be plausible – they return consistent data as established prior, but does the spatial characteristics of defects suggest that the data is reliable?

With the defect data from all six disks overlaid, we can see that the physical geometry has >= 2843 cylinders (highest observed value), with each cylinder having two heads and >= 119 sectors in each track (highest observed value). The highest value for sectors decreases as a function of track number, which validates that a multi-zoned recording strategy is being used, consistent with throughput graph information. Some clustering can be seen which suggests that the defect data is genuine.

Disk 1

Disk 1 seems to have most of its defects in localised areas on Head 0 with random locations for Head 1. The localised areas display a different straight line “walk” from cylinder to cylinder, which suggests these are radial defects but due to the offset skew of which sector is 0 from cylinder to cylinder, this causes the defects to appear as if they are “moving” up or down. The “walk” pattern is different in different zones, which is expected due to the different sectors per track.

Disk 2

Disk 2 shows similar behaviour, although the localized defect patches are more towards the inside radius. So far there is no correlation between errors across sides of the disk, which is expected of manufacturing problems whereas physical damage would show correlation.

Disk 3

Disk 3 shows a stationary pattern around cylinder 1600 – this may be an indication that at that point there are four defect points equally spaced in a revolution and the skew is exactly a multiple of 1/4 revolution. So far, all defect regions seem to exhibit a periodicity of four per revolution, so maybe some of these defects are not truly defects but a problem with servo positioning data depending on how it is laid out.

Disk 4

The most defective disk of the bunch shows a reversed trend where the surface for Head 1 is definitely more defective. This also helps us validate the data as being probably genuine.

Disk 5

The least defective disk with only two patches, but mostly on Head 1.

Disk 6


Tearing down the Zip 250 USB drive was not particularly productive as it was not designed to be repaired or serviced, making it impossible to manually clean the heads. Maybe I could attempt doing so with a modified/sacrificed Zip 100 cartridge in the future.

The Zip 250 system is faster than the Zip 100 system using their own respective media, achieving average read of 1.7MB/s versus 1.0MB/s. However, the Zip 250’s write speed takes a hit, especially in the inner zone, averaging 1.1MB/s, practically identical to the 1.0MB/s of the Zip 100. While the Zip 250 drive has backward compatibility, it comes at the cost of not being able to long format Zip 100 disks and being about five times slower to write to Zip 100 cartridges.

It was found that the defect lists from sginfo did not correlate with the reported readings from IomegaWare in terms of Media Life and Format Life. It is possible that the IomegaWare values take into account other parameters not exposed, however, this is not to say that the defect lists reported by sginfo are useless.

In fact, the defect lists reported by sginfo seems plausible based on error distribution – they correlate with increased read/write throughput disturbances, their spatial distribution clusters spatially and “walks” due to cylinder skew as expected, the maximum sector number decreases as a function of cylinder number as expected with a multi-zone recording system and the most-errored-side is exactly a 50/50 split in the sample of six disks. The errors also have a periodicity of four errors per revolution, which may indicate something about the servo design of the Zip system and it seems that the PLIST never has any defective whole-tracks.

In all, another fascinating experiment made possible by a kind reader. Thanks!

Continue reading

Posted in Computing, Tech Flashback | Tagged , , , , , | Leave a comment

Tech Donation: Iomega Zip 250 USB Drive & Assorted Disks

Blogging seems to be like playing a game of catch-up … I’m always behind on posts. Around a month ago, a very generous reader happened to have some Zip 250 equipment that they were done with and wanted to send it on to someone who might appreciate it. As it turns out – that person was me! It was with great honour and gratefulness that I accepted – which resulted in this post (and another to follow).

The Goodies

In my numerous posts about the Iomega ZIP system in the past, I may have mentioned that the Zip 250 system was never really that popular by comparison to the earlier ZIP-100. I rarely ever encountered the Zip 250 drives or media as CD-RW drives were gaining in popularity and the Iomega company was struggling, but by comparison, the Zip 750 system is even more rarely encountered. While I do have two or possibly three functioning Zip 250 drives, a USB one would be a nice addition … so I couldn’t resist.

Rather unfortunately, the ham-fisted postman in my area decided to fumble and drop the package while delivering it, so decided to ring the bell and do a runner. The only reason I knew was because I installed a surveillance camera … oh well. At least it was well packaged, so hopefully it survived.

To my surprise, the unit came with its original box, which makes it even more interesting. Advertising a ultra-thin, easy-to-use design, this drive connects via USB and is suitable for use with PC or Mac. An optional PCMCIA adapter and cable can also be used. Based on the badge which illustrates support for Windows 2000, we can already guess as to its vintage.

The rear is surprisingly uninspiring, painting iomegaware as the “solution” to all your problems. That just seems like putting all your eggs in one basket … assuming the basket even worked in the first place. There are a few tools which it also came with, on a CD-ROM including Quik Sync, RecordIt, 1-Step Backup, CopyMachine and Password Protect. The unit comes with an installation CD-ROM and a single 250MB disk to get started with.

Looking at the top of the box, it’s clear this unit was made around 06/09/2000 (American date?), making it around 18 years old. Gosh how time flies! On the top, it shows other products from Iomega’s lineup including the Clik! (later renamed to PocketZip, also something I rarely encountered), the ZipCD (which was nothing more than a regular CD-RW drive) and the Jaz 2Gb removable hard drive cartridge system.

The underside lists the modest system requirements – for PC, a Pentium 100 with USB controller, Windows 9x or NT 4.0 (note 2000 isn’t listed here) and a 2X CD-ROM or higher. The software needed 8MB RAM, 31MB of hard drive storage.

Performance is listed in the fine print as up to 0.9MB/s read and 0.8MB/s write on Zip 250 media, with 0.8MB/s read and 0.17MB/s write on ZIP-100 media. That’s not the fastest ZIP drive on the block, but part of this is down to the USB 1.1 interface which realistically limits throughput to about 1MB/s and the backwards-compatibility issue of write head track-width.

The side of the box just summarises some of this information. Nothing new here.

Inside, there’s a few documentation pieces including a Zip Install floppy from a ZIP-100 drive. The CD-ROM for the Zip 250 wasn’t included, but that’s fine, still I have an archived copy of IomegaWare and the drivers lying around for Windows 2000 and XP.

Even more unusual was this box, which seems to be from a Zip CD package – I suppose the donor had quite a bit of Iomega gear.

Inside was a blue-coloured USB A to B lead and a 5.2V 1A power supply. Unfortunately, unlike the PocketZIP 100 which was bus powered, this unit requires an external power supply making it less convenient. But if we consider the modern abuse of USB port power by other bus-powered drives, running the drive from a double-headed USB cable could be possible in theory.

The star of the show is this curvy, translucent, slim device with a clear window to view the cartridge inside. The unit has an internal shield, which has the zip branding on it for that extra aesthetic appeal. Given the prevalence of the Apple iMac at the time, this would have been very fitting.

The drive is model Z250USBPCM with part number 04160D01, Made in Malaysia. The underside has captive rubber feet which prevent the drive sliding around on the desk – it’s not particularly weighty.

Unlike the older parallel port/SCSI and early USB ZIP-100 drives, this one is slim. It’s even slimmer than the PocketZIP 100.

The rear has all of the ports – a strange modified barrel jack port on the left (but the plug from the power supply is standard), a USB-B Female socket and an interface for the optional PCMCIA adapter.

Both sides have a tactile rubber surface which makes it easier to keep a firm grip on the drive … but as to why you might need it, I’m not so sure. It’s not like I’d go jogging with the drive in hand …

Zip Disk Media Showcase

That was not all – I was also lucky enough to receive a bundle of media, some of which is worthy of coverage because it’s somehow different from what I’ve already shown.

I haven’t seen such a clean Zip Tools disk in the past – these were bundled with ZIP-100 drives from memory, with a cut-out in the cover card where the barcode would have been. I’ve never had the data from one of these disks because most users format them and reuse them almost immediately, so it will be interesting to see if this one still has the original data.

Zip disks did come from a limited number of brands, but I haven’t had a Fujifilm branded disk cross my desk before. This one has the colourful ring design which is very much like what was on the DLT tapes I saw in the past.

It also came in the ATOMM banding, with an unused label sheet at the bottom. I saved the rear part of the inlay card to show in greater detail, as it tries to explain the technicalities of Zip disk technology:

A titanium non-magnetic layer? I didn’t know it had one at all. Fujifilm claims that this is what “made Zip disk performance a reality” and it’s not a big secret that all brands of Zip disk are basically made from the same factories.

This one caught my eye for being a clean example, but also without the formatting type on the label. In the past, I’ve seen a mass of PC100 marked disks, but this one has a black dot and just “100”.

It also seemed that some earlier products had various verbs coloured – I’m more familiar with the “red” one of the bottom.

The main attraction is the Zip 250 media, this one in a “yellow” colouration stuffed with text … almost screams late 1990’s.

And this version of Zip 250 media with a more “stylish” silver and red colour cover. Text on the label has been mosaiced to protect the user data. The earlier ones seem to be Made in Belgium, with the later ones Made in Malaysia.

Getting it Up and Running … or not?

With very little thought, I decided to plug it into my Windows 10 machine and the unit came to life.

Unfortunately, this is where the good news ends. I’m not sure if it’s because of transit damage, clogged heads, a bad power supply or simply due to ageing of components but the drive exhibited worrying behaviour of “clicking” (i.e. unloading the heads) which shows why recovery of data can be problematic especially where read operations can lead to automated writes and further damage to the data.

I started with one of the Zip 250 disks and tried to image it so I could re-use the cartridge for later testing. The cartridge wouldn’t mount due to a read error, raw imaging led to 43 unrecoverable sectors. I decided to try imaging it again – by default, ZIP drives will correct weak data and rewrite it to the media, so I was expecting the originally marginal sectors to clear and subsequent retries may lead to a reduction in unrecoverable sectors. Instead, the exact opposite happened and the drive lost data – now 75 sectors were unrecoverable. After an eject and reinsert cycle, the disk couldn’t even be recognised.

Figuring that things would not get better, I tried to read the cartridge in my reference Zip 250 ATAPI drive. It wouldn’t read even as much as the USB drive did as the drive complained of being unable to read the defect list, so I gave up on the data and decided to long format the cartridge. The cartridge was recovered. With the reference Zip 250 ATAPI drive, I filled the cartridge with random data and read it back with no faults.

But going back to the USB drive resulted in occasional clicking and a read error during rate benchmarking.

I decided to check using a surface test and it seems the drive was happy with everything as written by the reference Zip 250 ATAPI except one sector. The location was different, however. Figuring that this drive might be misaligned, I decided to let it write its own data to the cartridge.

Two attempts and we saw six write errors the first time, and six on the second. The drive claims to have written everything else just fine …

But in reality it has trashed the cartridge so badly that it wouldn’t read it at all. This is probably what was happening during reallocations/weak sector rewrites – the drive was writing the recovered data back to the cartridge and instead failing to do so properly, causing the data to be lost.

My personal suspicion is that the drive itself is wonky and may have been wonky for a while. The reason for this is that I checked a sample of the cartridges provided using my reference Zip 100 ATAPI and Zip 250 ATAPI on my recovery box and none of the cartridges were fully readable with a good proportion not even passing the physical format checks that let the drive recognise the cartridge and format it.


Thanks to a generous donation from a reader, I now have some Zip 250 media to play with and a Zip 250 USB drive that’s not very healthy. I guess this illustrates some of the dangers of the Zip format, as reading a disk with weak sectors being rewritten can cause the disk to be even more damaged. It also illustrates exactly the type of interchange issues that can arise with “wonky” drives. It also gave me a chance to document some of the other packaging designs for Zip disks.

Of course, this opens the door to even more experimentation with my recovery box … coming up in the next post!

Posted in Computing, Tech Flashback | Tagged , , , , | Leave a comment

Note: Bosch Sensortec BMP280 vs BME280 Sensor Confusion

While looking around for some cheap environmental sensors, I came across the seemingly ideal and relatively popular Bosch Sensortec BME280. This is a digital I2C sensor that can operate at 1.8 or 3.3V, providing temperature, humidity and barometric pressure measurements with high accuracy, low energy consumption and at low cost. This makes it ideal for weather stations, temperature monitoring for comfort, etc.

As a result, I sought out a few of these BME280 sensors from sellers on eBay, but ended up receiving the lesser BMP280 on two separate occasions. The BMP280 differs from the BME280 in lacking humidity measurement and having a different ID, so it didn’t work as I expected and I thought I did something wrong. So I decided I might as well write a note to help others in case they have been supplied incorrect products and how to diagnose it.

The Products

I purchased two different listings with two different-looking PCBs, both claiming to be BME280 modules with humidity function. I soldered some pins to it immediately and tried to get to work.

Test 1: By Software

The units are 1.8/3.3V capable and are not directly compatible with 5V interfaces without an appropriately configured level shifter. As a result, I connected it to a 3.3V Arduino Pro Micro. I downloaded the Adafruit BME280 library and tried the demo sketch.

Trying both 0x76 and 0x77 I2C addresses by modifying the library .h file, I knew there was a problem. I suspected it was a BMP280, so I tried the Adafruit BMP280 library which worked right away.

To me, this was a smoking gun indication that the unit is not a BME280 as described, but the seller wasn’t pleased with the explanation.

Test 2: By Visual Inspection of the PCB

Looking at the rear of the PCB, it seems the purple PCB may be the “genuine” and the blue PCB a “clone” – notice the poor printing by comparison and the M which became I1. Regardless, it seems the PCB was designed for BME280 and BMP280 – the black dot on the left module on the P text indicates it’s a BMP280. This was, however, confusing to the seller who insisted this meant it was a BME280 as the E was showing. The purple module on the right didn’t have any mark.

Test 3: By Visual Inspection of the Package

The sellers, being absolutely annoying, demanded to see the markings that say BMP280 to substantiate my claims. Unfortunately, that’s not how small electronics work – on a package which measures under 3x3mm, they use coded markings. In this case, it says DTC KW.

In the case of the purple board, it was 133 KN.

This is the smoking gun. If you look at the BME280 datasheet, on Page 44, the markings for mass production devices is shown. The marking should be in the format ??? U? where the U indicates BME280. The final ? is only a P according to this revision of the datasheet as there is only one subcontractor, so the last two characters should be UP.

Comparing this with the BMP280 datasheet, on Page 41, the format should be ??? K?, where the last ? is either P, U, N, W. Thus KP, KU, KN, KW are all BMP280 devices.

It’s not easy getting good images of something this small – so I suspected the sellers were just being unreasonable for the sake of it and even then, only in one case I managed a partial refund. The other was left at leaving negative feedback.


If you try to buy a Bosch Sensortec BME280 module on eBay, there’s a good chance you will get the lesser BMP280 instead. The reason seems to be sellers that don’t know what they are selling, a supply chain that doesn’t understand the difference between a BME280 and the BMP280 and a PCB break-out design that is shared between the two types of sensors. As a result, buying these sensors can get quite frustrating, as the sellers often get away with it.

If you want to be sure you get what you ordered, you’ll probably have to spend quite a bit more for a proper module from the likes of Adafruit, where everything is clearly labelled and controlled.

Posted in Electronics | Tagged , , , , | 8 Comments