Close

JM20330 Reverse Engineering

A project log for M.2 SATA to 44P IDE Adapter

A JM20330-based adapter to use M.2 SATA SSDs in place of 44-pin IDE DOMs and 2.5" drives.

loudaslifeloudaslife 08/14/2022 at 01:400 Comments

The central component of this project is a PATA to SATA bridge IC. Unfortunately, there doesn't appear to be any suitable chip with (officially) publicly available documentation, so figuring out how to use them can be tricky.

The most common IC for this purpose is the JMicron JM20330. It's been used in other open source hardware projects, and can be purchased in small quantities relatively easily (though you won't find it on DigiKey or other reputable distributors.) You can even find a leaked old revision of its datasheet with some googling. However, the datasheet only gives limited information on the supporting components required. To fill in the gaps, I purchased what appears to be the official product evaluation board, the JM20330 EVB-002-3 "Host Bribge" Adapter.


Considering their secrecy with datasheets, I don't think these are something JMicron authorized to be sold to the public. Rather, I suspect an unscrupulous manufacturer acquired the design files or manually recreated them (misspelling "Bridge" in the process). Regardless, this seemed like the closest thing to an official reference implementation that I could get. After a very barbaric dissection, I had decent pictures of the PCB traces and a spreadsheet of component values measured with my $15 "LCR-T4" component tester. Note that the lower photos are mirrored. I didn't photograph the inner layers, but they only seem to carry power and ground.

It was immediately apparent that many of the component values used in this sample probably weren't faithful to the original design. Some were replaced with cheaper ones, like 0 ohm links instead of ferrite beads. Others just didn't make sense, like having both 10uF tantalum and 10uF ceramic caps.

While I was researching this, I managed to acquire a copy of the official JMicron schematic for this board. It confirmed my suspicions, but also made all of my work so far pointless. Oh well.

Reference designator(s)As purchased from AliExpress
Official schematic value
C1-C410nF10nF
C5100nF1uF
C6(too low for my tester to measure)
5pF
C7(too low for my tester to measure)33pF
C8-C11, C13-C14
10uF10uF/10V
C12, CT6-CT7
10uF tantalum
22uF/16V tantalum
CB1-CB8
100nF100nF
CB9-CB1010uF100nF
FB1-FB20 ohm link
100-450 ohm at 100MHz
R110K12K 1%
R310K47K
R6300330
R7
1K1K
R1410M1M
R1510KNC or 0
R1610K100 or NC
R17300100
R1810K1K
RH10 ohm link
10K
RH210K10K
Y125MHz25MHz
U1JM20330JM20330
U26206A SHC/1.8
APL5508-1V8
U36206A H221HD/33
APL5508-3V3
D1-D2LEDLED

I forgot to test the knockoff board before tearing it apart, so there's no guarantee that the values it used actually work. Other than the values, though, my reverse-engineered schematic matched the official one exactly, so the PCB itself appears to be a faithful duplicate. I updated my schematic with the values used in the official one, and I've added the .kicad_sch file to the project files for whoever wants it. I used a schematic from the S6SSD project as a starting point and general reference, so credit to Wenting Zhang.

Discussions