badger707 / m920q-dual-NVME

Lenovo M920Q dual NVME, conversion to M920X.
116 stars 16 forks source link

Interest in working on the M710q/M910Q series as well? #2

Open Overwatching opened 1 year ago

Overwatching commented 1 year ago

The M_10q series are DIRT CHEAP right now and make great HomeLab machines. It would be great if we could expand your mod to get a second M.2 slot on these, and other Lenovo models as well.

I purchased a lot of 5x M710qs for $160 and I'm willing to sacrifice one for The Greater Good™. Plus, if it works, it could be super useful. I can disassemble one and get a bunch of photos, but I have never done a hardware mod this complicated before. I'm really only good as a pair of remote-hands. I've been looking for an excuse to get a hot-air rework station and learn though.

Other possible things.

  1. Break out the extra SATA traces on the board. Also need to find somewhere to harvest SATA power.
  2. Find somewhere to steal 12v from so we can use one of those cheap ADT-Link M.2 to PCIe x4 slot adapters and cram a 10/25/40Gbit ConnectX card into it. The datasheets say they only need 5-10W depending on the card, which is probably doable with the stock 90W power bricks. My units only seem to pull ~48W when I run a torture test. (I'm pretty sure we don't need 5v? The ConnectX datasheets only say 3.3v and 12v, and some of the M.2 adapters only have 12v. I'm not sure the 5v traces on the floppy power connectors that many of these seem to use actually go anywhere.)
  3. Break the A+E key into 2x PCIe x1 slots. I'm pretty sure I see both the x1 lanes run to the A+E socket...
badger707 commented 1 year ago

Hey @Overwatching - yes I could try & look at this. Can you share schematics and BoardView files in .brd or .pdf format to start with? Also, top/bottom view pictures of actual board in hi-res would be great.

Overwatching commented 1 year ago

I'm not sure where to get the schematics and boardview files. Reading through the STH forums, it looks like you got the M_20q files from a seller on Taobao? I can't even see the linked page without making an account. Hrmm...

badger707 commented 1 year ago

I could not find any free schematics for M910q, only paid ones like here unfortunately... If you're up for initial investment in schematics and then share - that would help, however, schematics is one part and BoardView is also must have,unfortunately that site does not have it.
Re: M920q schematics what I've got -- not on Taobao, it was right place & right time & right Reddit user, lucky.

SirNoish commented 1 year ago

ThinkCentre_M710q_LiteON_JC133_IQ270IH1_REVX03_www_DeviceDBxyz.pdf

Hope this can help you

hpxing commented 1 year ago

maybe the m930q or m80 can add the dual nvme? or anyone can share schematics and BoardView files thanks

badger707 commented 1 year ago

@SirNoish -- super, thanks for M710q schematic. Do you have BoardView file for sharing by any chance?

SirNoish commented 1 year ago

I'm sorry, I don't think the boardview exists, I bought this scheme from that Russian page and I haven't found anything else.

systemerror-codenotfound commented 1 year ago

@SirNoish -- super, thanks for M710q schematic. Do you have BoardView file for sharing by any chance?

I guess that if we can provide with pictures of the motherboard that can be useful?

badger707 commented 1 year ago

@SirNoish -- super, thanks for M710q schematic. Do you have BoardView file for sharing by any chance?

I guess that if we can provide with pictures of the motherboard that can be useful?

No, not really. Without BoardView file, these pictures would not be helpful. Goal here is to know components location, so you'd need to have either (a) BoardView or (b) an actual motherboard on hands to trace all components and their location with oscilloscope and multimeter...

systemerror-codenotfound commented 1 year ago

@SirNoish -- super, thanks for M710q schematic. Do you have BoardView file for sharing by any chance?

I guess that if we can provide with pictures of the motherboard that can be useful?

No, not really. Without BoardView file, these pictures would not be helpful. Goal here is to know components location, so you'd need to have either (a) BoardView or (b) an actual motherboard on hands to trace all components and their location with oscilloscope and multimeter...

pfff, i only have M910Q on hand :( That's almost equal to the M710Q but the chipset it's different

Overwatching commented 1 year ago

an actual motherboard on hands to trace all components and their location with oscilloscope and multimeter...

I was wondering if that would be an option. I was planning on disassembling one of the units anyway to get good photos. I could do a bunch of continuity tests on pads/pins if I had a bit of direction.

No scope on hand right now. I really should get one if I'm going to be starting down this road though.

KineticMaintenance commented 1 year ago

an actual motherboard on hands to trace all components and their location with oscilloscope and multimeter...

I was wondering if that would be an option. I was planning on disassembling one of the units anyway to get good photos. I could do a bunch of continuity tests on pads/pins if I had a bit of direction.

No scope on hand right now. I really should get one if I'm going to be starting down this road though.

I expect you’d need the m_X_10x version, if you wanted to determine the components required to get dual m.2 and/or PCIE.

IIRC, there is little difference between the m710q and m910q other than chipset and vPro.

londbell commented 1 year ago

M710Q 129420d0b103497deb354468cce8922e M710Q

666d4855621930152e2b02503b60de3a 45c9f1b1ef1d4a903a53a1375ce536ea 0ac84109353653563b586730ea0de80f

londbell commented 1 year ago

I soldered a second M.2 slot on the M710Q motherboard, but only the sata part was made up, so it only supports M.2 SATA

londbell commented 1 year ago

QQ20230428-0

Overwatching commented 1 year ago

I soldered a second M.2 slot on the M710Q motherboard, but only the sata part was made up, so it only supports M.2 SATA

I'm surprised the SATA traces are connected. I was expecting them to require passives. This might still be a viable mod to add a mSATA drive to the other slot, or even just add a SATA pigtail to those pads and get a second SATA drive in there. We would need to find some external power for it with the pigtail though.

The PCIe pairs definitely don't have the passives though, so it is not surprising that there is no connection to the M.2. That is the reason why we need to get a board view to see what passives go where on the M910x.

Overwatching commented 1 year ago

I purchased 2x M910x boards in "for parts" condition for $15 shipped. They don't seem to be physically damaged, no passives scraped off the board or anything.

They are on a slow-boat, but I'll get some pictures up and I can start tracing the...traces when they get here.

systemerror-codenotfound commented 1 year ago

I soldered a second M.2 slot on the M710Q motherboard, but only the sata part was made up, so it only supports M.2 SATA

I'm surprised the SATA traces are connected. I was expecting them to require passives. This might still be a viable mod to add a mSATA drive to the other slot, or even just add a SATA pigtail to those pads and get a second SATA drive in there. We would need to find some external power for it with the pigtail though.

The PCIe pairs definitely don't have the passives though, so it is not surprising that there is no connection to the M.2. That is the reason why we need to get a board view to see what passives go where on the M910x.

He actually had to solder some components to the board

You can find the components here, just use google translate

https://eoz.lv/showthread.php?55990-mod-upgrade-Lenovo-Thinkcentre-M910Q-M710Q-M-2-otra-ligzda&highlight=m910q

i will pick up tomorrow all the parts and attempt the same operation on a M910Q, so maybe i can get another M.2 NVME slot

from where did you got the boards? We are having problems to locate the PCI-e slot as it's using a propieraty lenovo size

Overwatching commented 1 year ago

from where did you got the boards? We are having problems to locate the PCI-e slot as it's using a propieraty lenovo size

Sketchy Ebay seller.

I wonder how hard it would be to design a daughter board that soldered into the through-holes and provided a regular PCIe slot. The proprietary one doesn't do anything without the proprietary Lenovo board that slots into it anyway.

londbell commented 1 year ago

I soldered a second M.2 slot on the M710Q motherboard, but only the sata part was made up, so it only supports M.2 SATA

I'm surprised the SATA traces are connected. I was expecting them to require passives. This might still be a viable mod to add a mSATA drive to the other slot, or even just add a SATA pigtail to those pads and get a second SATA drive in there. We would need to find some external power for it with the pigtail though.

The PCIe pairs definitely don't have the passives though, so it is not surprising that there is no connection to the M.2. That is the reason why we need to get a board view to see what passives go where on the M910x.

Sorry I forgot to explain, I also soldered the capacitors and resistors. Screenshot-2023-02-25-232447

hpxing commented 1 year ago

well done. thanks the m910q works after this .dual nvme.

londbell commented 1 year ago

well done. thanks the m910q works after this .dual nvme.

like this? 图片

raenye commented 1 year ago
  1. There's an aliexpress listing of an m710q to m910x retrofit kit. It consists of a few caps, an m.2 connector, the 120p PCIe-like proprietary connector, and several unknown ICs (QFN-16 and some more): There's also a screenshot of PCIe x4 related schematics, not sure how it is related to either the PCIe 8x or the m.2. No instructions. image

  2. Inspecting m910x, m910q and m710q images. it seems there are a few changes around this area: image However, these seem not to match the ICs in the alixepress listing. EDIT: according to the schematics this is a buck convertor for +12V. Not sure if for PCIe or for 65W SKUs.

  3. There's also a custom USB3 internal header, instead of the USB2 internal header present on m710q boards: image (Actually having USB2 is a good thing if you're using 2.4GHz nano dongles for wireless mice/keyboards; USB3 has all sorts of interference issues with these.)

  4. @londbell It seems one also needs to tell the PCH to behave in an m910x mode (these are from page 14 in the schematics): image image I couldn't identify the location of the registers in the photos, but for m720q they are left of the metal caps below the PCH.

sms-ebarbeito commented 11 months ago

I soldered a second M.2 slot on the M710Q motherboard, but only the sata part was made up, so it only supports M.2 SATA

I'm surprised the SATA traces are connected. I was expecting them to require passives. This might still be a viable mod to add a mSATA drive to the other slot, or even just add a SATA pigtail to those pads and get a second SATA drive in there. We would need to find some external power for it with the pigtail though. The PCIe pairs definitely don't have the passives though, so it is not surprising that there is no connection to the M.2. That is the reason why we need to get a board view to see what passives go where on the M910x.

Sorry I forgot to explain, I also soldered the capacitors and resistors. Screenshot-2023-02-25-232447

I don't think 10k resistor is place correctly. If I zoom a photo of my board, this two pads are connected with a trace. Maybe this pads are to put components vertically, but I don't have the board view to check.

Screenshot 2023-07-27 at 16 37 44
its-me-ct commented 9 months ago

@SirNoish Thank you for the schematics, they were instrumental for my efforts and it would have taken much longer without them.

@sms-ebarbeito That's because the "instructions" are incorrect. I've partially reverse-engineered the M.2 part of the circuitry and it seems like a few more parts are required. Still waiting for the M.2 connectors to arrive by mail to confirm my findings, then I'll publish my findings.

@Overwatching Can you provide high-res images of the area around the PCH on the m710q? I suspect some config resistors differ between that version and my m910q, an image would be enough information to reverse engineer a solution for you as well.

Edit: The m710q's H250 chipset only supports up to 1 nvme, so the second slot will likely be sata only. Also the A+E key'ed slot only has a single PCIe lane, what you are seeing are the TX, RX and CLK pairs.

raenye commented 9 months ago

@its-me-ct do you think the PCIe x8 socket can be put to use?

its-me-ct commented 9 months ago

@raenye I don't think it's economically feasible. I couldn't find the connector, it's semi-custom variant of a "normal" PCI connector, but with a different key location. And even if you find one, you still would to populate the 12V supply circuitry. You can't even have a custom breakout to 2x m.2 m-key, because they need additional signals that are not present on the 8x connector.

kyxap commented 9 months ago

also why not to use wifi slot for the M.2? it seems like it will work (a lot of extension available)

image

let me know if I'm wrong, because I was thinking to go that root

badger707 commented 9 months ago

@kyxap adapters in wifi slot works very nicely on m920q, but I can not confirm for m710q.

its-me-ct commented 9 months ago

@kyxap The wifi slot is M.2 E key, meaning it only has 1x PCIe lane instead of 4x lanes in a M key slot. PCIe 3.0 4x supports up to 4GB/s, the wifi slot only 1GB/s. If that's enough for you, you could use an adapter.

evil2k2 commented 9 months ago

@raenye I don't think it's economically feasible. I couldn't find the connector, it's semi-custom variant of a "normal" PCI connector, but with a different key location. And even if you find one, you still would to populate the 12V supply circuitry. You can't even have a custom breakout to 2x m.2 m-key, because they need additional signals that are not present on the 8x connector.

In the other issue someone posted this link to a retrofit kit with the pci express slot and some other parts. https://www.aliexpress.com/item/1005005442152013.html

systemerror-codenotfound commented 9 months ago

also why not to use wifi slot for the M.2? it seems like it will work (a lot of extension available)

image

let me know if I'm wrong, because I was thinking to go that root

i can confirm you that you can use the m.2 wifi slot to connect more drives i have 6 hdd's connected over there with an adapters, m.2 to pci and a pci controller

in fact, you can see the voltage points to power the HDD's directly from the board https://www.printables.com/es/model/571792-3d-printed-nas-case-for-tiny-m710q-m910q-m720q-m92

@raenye I don't think it's economically feasible. I couldn't find the connector, it's semi-custom variant of a "normal" PCI connector, but with a different key location. And even if you find one, you still would to populate the 12V supply circuitry. You can't even have a custom breakout to 2x m.2 m-key, because they need additional signals that are not present on the 8x connector.

In the other issue someone posted this link to a retrofit kit with the pci express slot and some other parts. https://www.aliexpress.com/item/1005005442152013.html

That aliexpress listing was our, i mean, there are people on taobao selling those kits and adapters, and we tried to use an aliexpress seller as "bridge" but he actually placed it too expensive

SirNoish commented 9 months ago

@raenye I don't think it's economically feasible. I couldn't find the connector, it's semi-custom variant of a "normal" PCI connector, but with a different key location. And even if you find one, you still would to populate the 12V supply circuitry. You can't even have a custom breakout to 2x m.2 m-key, because they need additional signals that are not present on the 8x connector.

In the other issue someone posted this link to a retrofit kit with the pci express slot and some other parts. https://www.aliexpress.com/item/1005005442152013.html

Be careful with that sale of components, that link was created by the seller after I gave him a Taobao link, to try to get all the components through AliExpress. The seller did not give me confidence in his answers, especially that he could get the special "pcie" connector.

systemerror-codenotfound commented 9 months ago

M710Q images

https://imgur.com/a/EJKkOpu @Overwatching @badger707

This weekend i will receive a M910X and i also have a M910Q so any specific part to focus on ?

sms-ebarbeito commented 9 months ago

s because the "instructions" are incorrect. I've partially reverse-engineered the M.2 part of the circuitry and it seems like a few more parts are required. Still waiting for the M.2 connectors to arrive by mail to confirm my findings, then I'll publish my findings.

I think to get working nvme on second slot, need to populate more components, there are a transistor Q426 use to check if the device plugged in is sata device or nvme

Screenshot 2023-09-27 at 14 49 36 Screenshot 2023-09-27 at 15 00 06
Overwatching commented 9 months ago

The m710q's H250 chipset only supports up to 1 nvme, so the second slot will likely be sata only.

It should be the B250 not H250 chipset. This chipset supports PCIe 3.0 links, up to 12x lanes in x1, x2, and x4 configurations. Intel Ark - B250 Chipset

The CPU also directly supports PCIe 3.0 links. Max 16 lanes in 1x16, 2x8, 1x8+2x4 configuration. This should be where the NVMe drives connect to anyway. Or the primary one at least. Intel Ark - i3-7100t

The difference between the m710q and the m910q/x is the latter uses the Q270 chipset, which has (4) more lanes available, and a bifurcation setting for an x8 link.

If you look at the schematic...

That's only 10x lanes, which less than the 12x the B250 can provide. These boards are clearly shared between the different versions of machine, so if the higher end version has diffpairs routed to the second M.2 slot, the lower end ones should too. It should just be a matter of adding the passives to wire them up.

in fact, you can see the voltage points to power the HDD's directly from the board

You have made my week. I've been wondering where I'm going to steal 12v and 5v from when I get the M.2 to PCIe adapters in!

NOTES:

NOTES_2:

Overwatching commented 9 months ago

Question?

Do we have a pin-to-pin map of the proprietary expansion slot to PCIe x8 slot?

If no one is able to make a convenient drop-in board that adapts the through-holes to a standard slot, it should still be possible to hand-wire the pins from a chopped up PCIe extension cable. It would certainly be more prone to user-error. But it SHOULD work once the passives are installed.

As mentioned earlier, that x8 link should be coming right off the CPU, so it doesn't matter what chipset is on the board.

its-me-ct commented 9 months ago

This should be where the NVMe drives connect to anyway.

Nope, this is where the 8x slot connects. All peripherals (USB3, PCIe, LAN and SATA) are connected to the PCH, so the total bandwidth is limited to the DMI 3.0 4x link, equivalent to PCIe 3.0 4x (32Gbit/s = 4GB/s).

PCH_HSIO

Interestingly enough they chose PCIE lane 17-20, which are not available on the B250, so the missing black slot can only support SATA on the m710q.

Regarding the second M.2 m-key on the m910q: I got it working 🎉

proof

Instructions will be uploaded sometime this week, including high res photos.

@Overwatching get well soon 🫂

Overwatching commented 9 months ago

Odd problem with multiple PCIe devices attached.

Using a M.2 A+E to M.2 B+M adapter in the wifi slot get's the drive to show up in lspci. But with anything in the primary M.2 slot the system only sees whatever is in the primary.

Tried it with an NVMe drive and a CX3 card with an adapter. Strange.

maxl95 commented 9 months ago

Hi guys, I'm also a recent owner of a M910Q and very interested in getting the second NVMe slot working. First of all, thank you very much for your commitment.

My current state is that I already have the second slot soldered on and also the passives, as described in the pictures above. My Samsung 980 is already recognized as such in the BIOS. Unfortunately, bus errors occur in the kernel log immediately after detection and the SSD is disabled.

I am curious whether we get the second slot to run. Attached are a few pictures of my current state: NVMe_dmesg NVMe_lspci NVMe_BIOS

maxl95 commented 8 months ago

@its-me-ct any news regarding the instructions and high-resolution images?

@Overwatching I now also have an M.2 A+E to M.2 B+M adapter running. Both drives are displayed via "lspci" and also "nvme list" shows both devices. I have created a test raid with both drives, which also works. Performance benchmarks showed ~800MB/s for the wifi port SSD. Unfortunately, I have a few PCI errors in between, but they are correctable according to the kernel log.

Overwatching commented 8 months ago

@Overwatching I now also have an M.2 A+E to M.2 B+M adapter running. Both drives are displayed via "lspci" and also "nvme list" shows both devices. I have created a test raid with both drives, which also works. Performance benchmarks showed ~800MB/s for the wifi port SSD. Unfortunately, I have a few PCI errors in between, but they are correctable according to the kernel log.

I haven't been able to kick whatever I've been sick with, but I have done a little troubleshooting of the A+E adapter. It seems to work fine in a different machine, which leads me to believe that the m710 isn't providing it with enough power. My adapter has through-hole spots silk-screened for the 3.3v and ground pins, so I'm thinking I can scrounge more power from the main rails?

I haven't had time to disassemble one of my units for high-res pictures yet though. I'm spending every minute I can stand being out of bed working on the network upgrade so I can swap over to fiber internet (which just became available in my area this week.) It's like...$200 back in my pocket every month so it's my highest priority right now. (Technically I don't NEED to do the networking closet first, but we ALL know that "Temporary" fixes are the longest lasting ones.)

raenye commented 8 months ago

I haven't been able to kick whatever I've been sick with

Get well soon! Looking forward to your findings.

panchex commented 8 months ago

Hi, I have an m710q, and I'm very motivated to carry out the dual M.2 modification. In the schematic shared above, I see that they use 10 capacitors of 0.22uF and 2 of 0.01uF, but I don't understand where those 10 0.22uF capacitors go.I will try to create an image by tracing the available socket to confirm the necessary components in the m710q. It's quite interesting.Apart from this, which integrated PCIe 8x slot do they change in the m710q?

Thank you!!

raenye commented 8 months ago

I don't understand where those 10 0.22uF capacitors go

See here. But where do the 10nF ones go?

panchex commented 8 months ago

I don't understand where those 10 0.22uF capacitors go

See here. But where do the 10nF ones go?

Sorry, there was a misunderstanding because I use a translator. In the schematic on the M2 lines, you can count 6x 0.22uf capacitors and 2x 0.01uf capacitors, but those who performed the mod used 10x 0.22uf. The quantity and values, as I see in the schematic, don't match. Maybe they approximated for convenience when sourcing the components. Nevertheless, I have 2 capacitors left from the 10.That's why I have this doubt. When I get home, I'll disassemble and measure the ones that come from the factory.

its-me-ct commented 7 months ago

Okey guys, took me long enough, but I finally documented the required modifications to get the second slot working. Check the picture to learn which value goes where.

You need following parts:

Optional parts:

board_view

Communication over PCIe always needs one differential pair for the reference clock, and two differential pairs per lane (one RX, one TX). TX lines are connected directly to the socket, while RX lines need DC blocking capacitors. According to the spec anything from 100nF to 220nF is fine, so I choose 8x 100nF. The clock lines also need to be connected, but because it is an output 0R resistors should be used.

Next the auxiliary signals need to be connected with 0R resistors. Without these the PC can't initialize the PCIe protocol. The one 10k in the group is a pull up resistor and must NOT be zero ohm, but the actual value is not critical, anything from 1k to 100k should work fine. The reset input originally uses an RC low pass filter for greater noise immunity (33R + 47pF). I figured it's likely the designers default circuit and not strictly required, and because I didn't have 47pF on hand, I replaced the filter with a 0R jumper, which works fine for me.

The last thing you need to do is to swap one 10k configuration resistor from the upper to the lower footprint. Should you loose it don't worry, any value from 1k-100k is suitable as a replacement. This change tells the bios that entire board is a different version, which happens to have the M.2 slot installed :). After the swap the bios should show "board version C" instead of "board version B" and the additional slot should show up. I'm not sure if this has any unintentional side effects, but the system works fine so far.

There are two larger footprints for 0805 10uF capacitors across the voltage lines to smooth out ripple. In practice they are not required, because the M.2 SSDs are designed to have all required capacitance locally on the drive. If you want to put "weird" expansion cards in this slot, then maybe install the capacitors, otherwise don't bother.

I also found a suitable method to mount the M.2 drives without needing the original plastic retainer. Some brass hot melt inserts for M2 screws have a flange and the perfect size to be installed from the top side without shorting any surrounding components. Add a tiny drop of hot glue to hold them in place, then mount the SSDs from the bottom with a screw.

mounting_nut

Reminder that the second slot on 710q devices is likely SATA only, but I don't have 710q to verify it myself.

pinging @maxl95 @raenye @panchex

kaysond commented 5 months ago

Anyone interested in going in on some of the pci-e update kits from taobao? I want vpro, and an M910q+kit is still about half the price of the M920q. And I want 4 of them so it's a big difference. The only thing that's not clear to me from the schematic is if you need to populate the +12V_PCIE switcher. ctrl+f didn't work great on the pdf so I couldn't find if the rail is connected elsewhere.

raenye commented 5 months ago

@kaysond I'm interested, but the current price makes little sense IMHO for m710q.

kaysond commented 5 months ago

@kaysond I'm interested, but the current price makes little sense IMHO for m710q.

Agreed. Only if you need vPro does it really matter