- USB2.0 for USB1.1-equipped machines
- USB3.0 for USB2.0-equipped machines
- Media card for machines without a card slot
As part of my hobby of sharing knowledge and discussing geeky computer-related stuff, I will convey my findings in a multi-part story.
All pictures can be clicked for larger versions.
Part 1 – CardBus to USB2.0
Some related discussions on the forum:
Add PCMCIA to USB 2.0 CARDBUS + Bluetooth to T23 *PICS*
Flush fitting USB2 card for my T30 *PIC*
PC Card, Cardbus, SD Card adapters, readers & performance
Reasons to get one
- Adding USB2 capabilities to machine otherwise having only USB1 (e.g., A3x/T30 series).
- Adding extra USB ports (e.g., T4x and older laptops had at most two such ports).
- Restoring USB 2 functionality in case where the built-in USB controller has malfunctioned (e.g., Southbridge failures on T4x and other machines often had partial or total USB controller failure as the first and sometimes only symptom).
The most common flush Cardbus-USB2 adapter is the AKE BC168, which exist in two flavors – with a VIA controller or a NEC controller. Both types offer two USB2 ports and a power connector. These adapters are sold by a wide variety of sellers on eBay, Amazon and others. Note that while the manufacturer identifies these two as separate products, they share the same model number, and so many sellers don’t distinguish between the two (some do).
The actual cards you get may look a bit different from the pictures (most likely the high volume of manufacturing accounts for differences in the process). The marking may be a bit different – you may have a black/red triangle next to the “BC168”, the VIA/NEC name may or may not be mentioned on the back of the card, and the 8 studs indicating the card as a 32-bit CardBus (as opposed to 16-bit PCMCIA) may or may not be present. For my testing I had one NEC-based card, and two VIA-based ones, and while all three looked different (see picture), their characteristics stayed similar. No behavioral differences at all could be noticed between the two VIA units. Thus I conclude that these markings are irrelevant.
Three AKE BC168 cards (NEC, VIA, VIA), each with a different look. While only the rightmost one has the official CardBus gold strip and 8 studs, all three are 32-bit cards.
Package and physical properties
All the cards I received came in a flimsy cardboard package, which included the card itself (in a plastic bag), a driver mini-CD (never needed it, although old Win9x distributions might), and a USB power cable. The latter is provided to pull power from an existing built-in USB port on the machine into a DC-5V input socket on the card, in case you need to connect peripherals requiring more power than the CardBus interface can provide. Typically you won’t need it (more on it later).
The cards themselves sit flush with the chassis in all machines I tested them in. That’s good. The bad – since they sit flush and have no spring-loading mechanism, taking them out may be difficult. Sometimes you may need to pry the card out with fingers or pliers. Be careful not to damage the USB port housing, which is made out very flimsy aluminium. Since the typical scenario would be to plug the card into the machine and never take it out, one might ignore the potential extraction difficulty. Nevertheless, if your usage pattern would require you to frequently exchange Cardbus adapters, the issue should not be overlooked.
On systems with dual CardBus slots one might plug two such cards simultaneously, however the USB ports on top of each other will be too close and unusable at the same time anyway, for most typical USB plugs (see picture).
AKE BC168 in X32 (left) and A31p (right). Despite having two slots on the A31p, they are too close to plug any but the slimmest USB devices above one another, so this configuration is impractical.
Code: Select all
Card AKE BC168 - NEC AKE BC168 – VIA Chip NEC uPD720101 VIA VT6214L Ports (External) 5 (2) 4 (2) VID:DID:REV (USB1) 1033:0035:43 1106:3038:62 VID:DID:REV (USB2) 1033:00E0:04 1106:3104:65 Description (USB1) NEC PCI to USB Open Host Controller VIA Rev 5 or later USB Universal Host Controller Description (USB2) Standard Enhanced PCI to USB Host Controller VIA USB Enhanced Host Controller
Both cards appear as standard PCI devices behind the Cardbus bridges which they are connected to. All the information except the controller chip names was obtained through USBView. The controllers actually offer more USB ports than are exposed, but I don’t think they can be used in any way.
Like most USB2 controllers of the time, these also use companion controllers to provide USB1 support. These appear as if they were separate USB controllers in the device list (hence the separate device IDs). VIA, like Intel, uses UHCI. NEC, like the rest, uses OHCI.
For whatever reason, the VIA-based card simply refuses to work on most modern laptops. I’ve tried a few T60s, an X61 and an HP 8510w. These machines use different chipsets and CardBus controllers, so it cannot be a very specific compatibility problem, but a more general thing.
The symptoms can be – card not recognized, card recognized but doesn’t pick up anything plugged into it, and system restarts whenever something is plugged or unplugged. Very rarely some USB1 peripherals like a mouse would work, but I couldn’t get anything USB2 to function at all. To be sure it’s not a software issue I also tried the card under Linux – same problems. As of now, I have no idea what causes this behavior. The NEC-based card, on the other hand, worked well in every laptop I tried it on.
As shoddy as the VIA controller seemed to be with anything T60 and above, it worked without issues on all the older laptops – from A31 to X32/T42 generation. Luckily, that is the kind of machines for which one is most likely to consider such a card in the first place.
Data Transfer Performance
The Cardbus adapters were tested in several laptops, and compared to each other as well as to some onboard USB controllers. The following settings were used in all tests:
- Flash drive - Sandisk Extreme USB3 64GB. This one can hit speeds way above 100MB/s with a USB3.0 connection, so definitely not be a limiting factor in controller benchmarking.
- Utility - CrystalDiskMark with 100MB files and sequential read/write (no change was observed with larger files)
- Operating system – Windows XP SP3, running in safe mode to squeeze the maximum possible performance (experiments showed that in normal mode USB performance can drop by ~10-15%).
- No other USB2 device plugged at the same time – apparently transfer rates can drop 15-30% just because of another device being plugged in, even if only one is being used simultaneously.
Code: Select all
A31P: P4-M 2.0GHz, WinXP PRO SP3 Controller Intel ICH3-M NEC uPD720101 Via VT6214L Interface Onboard(USB1.1) Cardbus Cardbus Read Speed 1.0MB/s 18.7MB/s 25.4MB/s Write Speed 1.0MB/s 10.2MB/s 11.3MB/s
The test clearly shows how poor USB1.1 is. With the theoretical limit of 12Mbps (1.5MB/s), and practical transfer speeds around 1MB/s, it is clearly inadequate for any modern day data transfer. Any of the above CardBus controllers will be a worthy upgrade, with VIA delivering noticeably better speeds than the NEC, especially in reading (surprise?)
Code: Select all
T42: Pentium M 745 1.8GHz, WinXP PRO SP3 Controller Intel ICH4-M NEC uPD720101 Via VT6214L Interface Onboard Cardbus Cardbus Read Speed 32.6MB/s 19.4MB/s 27.4MB/s Write Speed 27.4MB/s 18.8MB/s 16.4MB/s
Comparing to an integrated USB2.0 controller the pictures is very different. The onboard Intel ICH4-M controller delivered much faster read and write speeds, than the CardBus solutions. Interestingly, this test shows that the NEC chip has a small edge over the VIA chip when it comes to write speeds, although the read speeds on the VIA are significantly better.
CardBus Controllers Performance Comparison
It would be interesting to check whether the CardBus controller itself affects performance. For this purpose I ran the test on laptops of comparable hardware, but with different integrated CardBus controllers – A31p vs Evo N610c and T42 vs X32.
Code: Select all
System Compaq Evo N610c, P4-M 1.8GHz Thinkpad A31p, P4-M 2.0GHZ USB Controller NEC uPD720100A NEC uPD720101 Via VT6214L NEC uPD720101 Via VT6214L CardBus Controller None (onboard) Texas Instruments PCI1420 Ricoh R5C552 Read Speed 18.9MB/s 20.2MB/s 26.5MB/s 18.7MB/s 25.4MB/s Write Speed 18.1MB/s 19.5MB/s 15.4MB/s 10.2MB/s 11.3MB/s
The N610c and A31p have almost the same base hardware, so we can assume the performance differences to be related to the CardBus controller itself. We can see a noticeable advantage to the Texas Instruments PCI1420 versus the Ricoh R5C552, especially in the write speed.
Another interesting comparison is to the onboard USB2.0 controller of the Evo N610c, which is a slightly earlier generation NEC chip. The N610c was one of the few laptops that chose to ditch the slow USB1.1 in the Intel ICH3-M chipset, and integrate a separate USB2.0 controller. The performance of the onboard uPD720100A is comparable but slightly lower to that of the CardBus uPD720101, with the VT6214L again showing higher read speeds and lower write speeds. This test clearly shows that the lower performing Ricoh CardBus controller is a bottleneck, while the TI is not.
Code: Select all
System X32, Pentium M 2.0GHz T42, Pentium M 1.8GHz USB Controller NEC uPD720101 Via VT6214L NEC uPD720101 Via VT6214L CardBus Controller Ricoh R5C554 Texas Instruments TI4520A Read Speed 18.9MB/s 25.6MB/s 19.4MB/s 27.4MB/s Write Speed 10.4MB/s 11.6MB/s 18.8MB/s 16.4MB/s
Comparing again similar machines, with other controllers from the same manufacturers (Ricoh and TI) we see again that the Ricoh controller is a serious bottleneck when it comes to writing. In fact, it completely masks the small write speed advantage of the NEC uPD720101 over the VIA VT6214L. The TI also holds a small advantage in the read speed department.
Powering USB Devices
The CardBus interface typically provides enough power for a standard USB device. In practice, it is usually possible to connect two flash drives to both ports and not need extra power. Some devices that are designed to consume more power (like phones/tablets that charge their battery from the USB port) will sometimes not work or work but refuse to charge. In such cases, connecting extra power from an existing USB port on the system (even USB1.1) to the DC-in socket will provide the extra needed for such devices.
Pre-Boot Environment Support
In all of the laptops tested, the CardBus interface is not functioning during the pre-boot environment (BIOS). This means that it is not possible to boot from a USB device attached to the CardBus adapter, and keyboard/mouse will not work in the BIOS, but only after the OS is loaded.
Conclusion and Discussion
The tests showed that the CardBus controllers are good ways to add USB2.0 capabilities to a USB1.1 laptop, such as Thinkpad A3x, R4x, T30, X30 and older. However, if you consider using them to add more USB2.0 ports to a system which already has integrated USB2.0, you should be advised that their performance is lower than of the integrated controller, and they do not work during pre-boot environments.
The two things that surprised me were:
- The VIA controller not working on newer machines, even though it works without a hitch on older ones. This phenomenon is yet unexplained. If you have a T/R/Z6x or newer machine with CardBus and for some reason want to add more USB ports – make sure to get only the NEC variant.
- The VIA controller actually outperforming the NEC significantly in read speeds (NEC, the pioneers of USB2.0, have always enjoyed better reputation). To be fair, the writing performance of the NEC is higher, but only if you have a TI, not Ricoh CardBus controller.
- Both controllers falling short of the integrated Intel USB2.0. It is generally the case that Intel starts integrating late (that’s why ICH3 still only had USB1.1), but once they do – they do it well.
- The Texas Instrument CardBus solutions outperforming the Ricoh ones. Their reputation was always a bit higher. Ricoh’s advantage was in integrating other features such as Firewire in the same chip. In T60 and older T series, IBM/Lenovo decide to exclude Firewire, so they could integrate the TI controllers.