Sorry about the simple design of this page. I just wanted to get it out there with a minimum of fuss.
DISCLAIMER: I don't warrant or assume any legal liability or responsibility for any of the software mentioned on this site. Everything should be considered as alpha software and not fully tested. All I warrant is that it is currently working on my computer with no discernable unwanted side-effects. If you want to try the software for yourself, feel free to, but if you managed to corrupt all your data or destroy your computer while doing so, it's your choice. Always backup fully before anything like this. USE AT YOUR OWN RISK.
Contact me at: Max128k@newsguy.com
Yet another kindly visitor to the site, Tom, has supplied some more updated Prolific firmwares(Prolific PL-3507 firmware), which seem to be dated 6th of October, and 9th of November. He mentioned that the November update has made has finally made him a "happy camper". Credits go to Tom, Stresa and shoarthing@burningissues.net for the firmwares. Note: please read the readme's included with the firmwares to determine which updater to use with the firmware. There was a new updater included with the firmwares which has also been uploaded so remember to update your "updaters" :)
Have a Happy New Year!
PS. Am still in holiday mode, so haven't got around to answering all the emails to this site yet..will get to it soon(my New Years resolution!)
A visitor to the site, David, has kindly supplied some new Prolific firmware(Prolific PL-3507 firmware) dated 7 September, which had fixed some of his problems. I've uploaded it to the site, but as I haven't been able to test it, I can't vouch for anything.
Sorry about the late replies to any emails people have sent me but I've been busy with work in the real life(ie. stuff I actually get paid for), so I haven't been able to check my mailbox at all. Am endeavouring to go through the backlog now. Also, I've pretty much given up on my Prolific PL-3507 enclosure. It just wasn't reliable enough for me, even with the fix I wrote. There was problems with other aspects of the firmware that it just wasn't worth the hassle. I bit the bullet and bought another enclosure, this time using an Oxford 911 chipset, and have not had one problem since.
I've been using hard drives housed in external enclosures for a while now and have been having some recurring problems with the dreaded "Delayed Write Failure" error in Windows(you'll know what I mean if you made it to this page). I've only ever had this happen when I've been using the Firewire(IEEE 1394) interface(all my enclosures are both USB2 and Firewire) but since I've found that the Firewire interface is inherently faster than the USB interface, I've been looking for a fix for it.
3 of my enclosures use the Oxford 911 chipset(in my opinion, the chipset with the most stability and performance) and one of my enclosures use the Prolific PL-3507 chipset. I've managed to fix the "Delayed Write" failures on the Oxford 911 enclosures by using a firmware uploader to either just change a setting on the chip(the maximum transmission setting to 2048) and/or upgrading the firmware to the latest. If you need the uploader/firmware/instructions for the Oxford 911 chipset, mail me and I'll add a page for it.
My latest enclosure uses the Prolific PL-3507 chipset and I've been getting constant "Delayed Write Failure" errors with this one, and it was easily reproducible as well. The BusTrace website has some good stuff on diagnosing this problem(http://www.bustrace.com/products/delayedwrite.htm) and they seem to serve as a good place to start if you're getting "Delayed Write Failure" with external enclosures. Based on what they found and my own testing, I established that my particular chipset had problems dealing with single transfers which were larger than 128kb. This doesn't mean copying files that are larger than 128kb, but the way that programs try to write to the hd. BusTrace have a good utility they've called the 1394Test utility which can be used to see if the particular reason why you are getting "Delayed Write Failure" errors is due to the fact that it can't handle transfers over 128kb. If you find that is the reason why you are getting the error then you may be in luck, because I've written a filter driver to try and fix this problem. BusTrace themselves had written a similar filter driver but have decided to keep it in-house(understandble,seeing as they are a commercial company) NOTE: My particular PL-3507 chip is a A revision chip(it's written on the chip itself). There are other PL-3507 chips out there which are B and C revisions. Based on what I've seen, any PL-3507 chip other than an A revision can be flashed to a newer firmware which might fix your problems. As A revision chips couldn't have their firmware flash upgraded, I had to write a software fix instead.
As there have been a lot of requests from users, I've included the Prolific PL-3507 firmware on my site here. Please download from there if you need it.
The reason why some "Delayed Write Failure" errors(not all Delayed Write Failure errors are because of this) occur on external hard drives connected via firewire is that they can't handle more than 128kb in a single transfer. The reasons are varied as to why a program would try to transfer more than 128kb in one transfer but suffice to say, some programs tend to do it more often than others(Microsoft Virtual PC 2004for one) which is why when using certain programs or copying large files(ie. > 500 mb), the "Delayed Write Failure" errors occur more often. What is interesting is that it seems that the Windows programs are trying to transfer more than 128kb in one transfer to the external hd because Windows seems to be telling it that it can, and that is what the Filter driver fixes.
I've written another very simple program(called IOCTL) to try and determine the limits of the hardware. It just sends device control commands to the device and its adapter to try and determine what the device and adapter are capable of. When I run this program on my internal hard disk connected via IDE(device named PhysicalDrive0) it tells me(amongst other things) that the MaxTransferLength for the adapter it is connected to(IDE) is 131072 bytes(ie. 128 kilobytes). So when Windows asks the adapter its limits, it will report the MaxTransferLength as 128kb and the Windows-supplied disk drivers will know to split anything above than size to smaller bits so that the IDE adapter can handle it properly.
When I run the IOCTL utility on my external hard disk connected via Firewire(device named PhysicalDrive1 on my computer), it tells me that the MaxTransferLength for the adapter it is connected to(Firewire) is 2093056 bytes(2044 kb). This is normal for devices connected to the Firewire bus BUT only works properly if the device connected can handle transfers of that size. My enclosure using the PL-3507 chip definitely can't so the solution is to write a filter driver and insert it between the disk driver and the Firewire driver so that it can override the MaxTransferLength value returned from the firewire adapter with a value of 131072(128kb) so that any transfers above that size is split up appropriately.
So far I've been running my filter driver for a few days now and the "Delayed Write Failure" errors have disappeared and I've been rigorously testing the external hd. I'm currently running Windows XP SP1, but the filter driver should work in Windows 2000 and XP as well(but hasn't been tested in those environments, so try at your own risk). I've tried to make the installation process as simple as possible, but because I'm not a commercial developer, it's not the most streamlined process and I have no current plans to make it easier to install.
If you find that the filter driver does help you with your "Delayed Write Failure" errors, please email me(max128k@newsguy.com) and let me know as the only reason why I wrote the filter driver was because I wanted to give something back to the community. It's not exactly the most trivial thing in the world either, the world of Windows Device Drivers. To even contemplate writing the filter driver, I ended up going through quite a few books, had to obtain the Windows 2003 Server DDK, setup test machines, etc... so yeah, it's taken me a few weeks to write this relatively simplistic driver. Would definitely like to hear of any bugs, or anything else. Like I said, I'm am by no means an expert on this stuff, so I wouldn't expect a bug-free release first time.
Max128k Filter Driver and Instructions