JM20337 read data corruption – solution

December 8, 2008

Some time ago I bought hard drive enclosure. To my surprise recently I’ve found out that read operation is giving random corrupted data, in other words if you copy data from IDE HD connected to that enclosure, your fill will be corrupted on target media. Without any hope that I will get some answer, I wrote an e-mail to enclosure chipset vendor – JMicron. To my second surprise I got immediate response from very kind person Alex Lee working in that company. He was very prompt and professional and eventually helped to fix the problem, which was enclosure vendor design issue rather than chipset. I will share with this information just in case if some one else need it.

The enclosure box I bought is below. The model NTY-M35HD. I bought it from South Korean local market online, through gmarket.co.kr.

boxThe chipset used is JM20337.
Some PCB pictures of my enclosure.

enc13

enc2

And here goes recommended patch, click on the picture to see full size. Basically you have to remove resistor R15 4.72k.

image0011Click on the picture to zoom and see that resistor.

Right after patch I have created a batch file for continuous reading / comparing over 2 days and not a single error.

So I want to thank Alex Lee for his great work and JMicron company for amazing products which I believe are leading in the market.

Update March 16, 2009
Here is very tiny batch file to help you test your adapter and/or hard drive. It will continuously copy/compare large file [provided by you] and terminate either when data mismatch found or you press Ctrl+C. You can leave it run overnight.
Copy the following into datacheck.bat (use view plain link at the top of script) and save it anywhere in your hard drive.

@echo off
echo checking data
echo [press ctrl+c to terminate script]
:Loop

copy %1 %2 >nul
fc /b %1 %2 > nul
if ERRORLEVEL 1 GOTO Fail

GOTO Loop

:Fail
echo sorry, data corrupted...

Then goto Start -> Run -> cmd
type

cd path_where_you_copied_datacheck.bat 
datacheck.bat c:\bigfile.dat e:\bigfile.dat
c:\bigfile.dat - some really big file over 500MB
e:\bigfile.dat - your USB drive connected through adapter with name of the target file

Now the script will continuously check data. Grab some tea, sit back, cross your fingers and relax 😉

Cheers!