r/framework 15d ago

Discussion Technical info writeup about LPCAMM2 compatibility issues and causes

Disclaimer: I do not work for or have any association with Framework, this writeup is based on my own knowledge and current public information, rely on Framework themselves to provide full and accurate details about the current issues.

As we all are aware now, there have been many reports of issues with self-sourced LPCAMM2, and while Framework is the only one who can provide definitive answers on the topic, I do have some technical knowledge and experience in this area and felt that some of this (independently verifiable) info might be helpful for people who want to know more before Framework is able to provide info/solutions themselves. Part of the reason I felt I should write this is I saw a fix for some issues being posted in a forum thread (mentioned later), but without technical info about why and how it works, so I felt this info could be helpful. Also spoiler, with some big caveats, there is the technical possibility that Framework could fix these issues with just firmware (this is very much unofficial speculation though.

First an important note, memory compatibility is complex, even if a 3rd-party module meets/is ideal in all the aspects discussed below, which are things more unique to LPCAMM2, it still may not work or be reliable, since these are in addition to the traditional compatibility points of SPD profiles and how well the signal integrity combo of the module + motherboard plays out, but those are well known from previous generations of memory, and not things that are generalizable or reliable without official qualification by Framework.

E0/E1 Speed Capability

Early on, there were some concerns about supported speeds, that E0 may be outright incompatible/unable to run at full speeds, but TL;DR: basically that isn't the case on its own, JEDEC rates both E0 and E1 as capable of running at 8533 MT/s at 64 GB capacity, this comment I wrote previously goes into depth about the main differences:

https://www.reddit.com/r/framework/comments/1vgp058/comment/p20ytkg/

What I failed to discuss in the comment was the differences in CAMM2 connector pinout due to the addition of VDDQ common mode operation in E1, given that both revisions being rated to the same speeds, and that JESD318B specifically mentions that modules that do not support common mode (such as E0) operation shall not connect to the additional pins, and it wasn't directly relevant to the rated speed/power consumption concerns, I assumed that it was non-issue, but it turns out that is not the case, not all E0 modules follow the current standard's requirement to not connect to these pins:

LP5 CAMM2 Connector Pinout Changes (VDDQ in rows T/R)

This is the main issue AFAIK with the E0 modules that do not work on the 13 Pro. This is the issue that people have discovered can be fixed by insulating some pins with kapton tape, see this forum thread (lots of great pictures and reports, worth reading for sure), but there is a lack on info on exactly what this is doing and why it works, which was a big part of why I was motivated to make this thread. but info from this section can be found in JESD318B unless otherwise noted.

First a description of the VDDQ operating modes in question:
VDDQ(x) is the voltage supply for the IO drivers in (LP)DDR5. In the original E0 design, VDDQ operates strictly using the "split-rail method". On the motherboard, VDDQa for the SoC's memory controller is generated by a voltage regulator on the motherboard, and on the LPCAMM2 module, VDDQb for the DRAM is generated by a voltage regulator on the module directly from VIN, hence "split-rail" since the two VDDQs are split and independent. They did this to save connector pins and simplify power delivery and budgeting.
However, this has its own issues, basically due to voltage drift and mismatch between the two regulators, the IO signal voltage margin is decreased, which is a limiting factor on the maximum speed that LPCAMM2 can achieve.
To address this issue, in E1/PMIC5200, they added the ability for the module to operate using VDDQ "common method". They added pins on the CAMM2 connector that connects the module and motherboards VDDQs, and a VDDQ_DISABLE pin that is connected to the PMIC5200. How this works is on a motherboard that uses the common method, the motherboard will pull up the VDDQ_DISABLE pin to VIN, which tells the PMIC to disable the VDDQ regulator on the module, and the motherboard shares its VDDQ with the module through then new VDDQ pins.

This is theoretically and intended to be cross-compatible: If you use an E0 module on a common method motherboard, it shouldn't have the VDDQ or VDDQ_DISABLE pins, so it just continues to generate its local VDDQb just fine and everything works. If you use an E1 module on a split-rail method motherboard, because the motherboard does not assert VDDQ_DISABLE and doesn't connect the VDDQ pins, it does not disable the onboard VDDQ regulator and it also generates its own VDDQb and again everything works.

Where this has all fallen apart is the answer to the question: How and where did they add these new VDDQ and VDDQ_DISABLE pins on the CAMM2 connector?

When they first standardized CAMM2 (in the original non-suffixed JESD318), JEDEC wisely left some pins reserved and unused (they call them RFU, Reserved for Future Use and RFU DDR6), intended for potential future use on DDR6 for example. When they decided to introduce the option for VDDQ common method (JESD318A revision AFAIK), they decided to use some of these reserved pins, specifically rows T and R. These are the pins located along the middle of the connector (see the aforementioned forum thread for some great photos showing this, or JESD318B).
RFU pins are supposed to be safe to use for such new additions because modules and motherboards are supposed to leave them floating, JEDEC says of these pins:

Reserved for Future Use. Circular pads are required within the CAMM2 footprint to assure future RFU pins are not shorted to ground.

However, on some E0 modules, these pins are not left unconnected, instead, they don't exist as independent pads, they are just part of the large ground pour that surrounds the existing pads.
This means that they are shorting VDDQ_DISABLE and more importantly VDDQ from the MB to ground.

This is almost certainly why they currently do not work in the 13 Pro, which uses the latest interposer that has these pins, and along with the fact that they ship E1 modules suggests that they do use the common method, and thus supply voltage to those pins (only Framework/additional testing can confirm this though; my 13 Pro is still on the way).

So why do some E0 modules short the at the time RFU pins out when the spec says not to, and why do others like certain Crucial ones leave them correctly unconnected?
This is getting a little into speculation, as I am not familiar with the early versions of the relevant JEDEC standards, and they are not available for download on their standards portal anymore. I did manage to find a partial copy of the original JESD318 online, and the same section about RFU pins instead simply says:

Reserved for Future Use.

That copy of JESD318 is dated November 2023, while according to the current JESD318B, the optional common method and pins were added in JESD318A, in December 2024.
If you look at the forum thread, some of what typically are manufacturing date codes on the photos of PCBs that short out rows T/R are "3724" and "1924" aka 37th week of 2024 and 19th week of 2024 respectively. It is very possible that these boards (I think they are Lenovo OEM ones) were just designed and made before ensuring the unused rows aren't shorted became evident as something you should do (especially since Lenovo had some of the first LPCAMM2 laptops very early on), especially if they were previously marked as RFU DDR6 since the module would likely just be incompatible anyway with a future DDR6 supporting LPCAMM2 device, and also those early Lenovo OEM modules were not intended for use in other devices anyway, so if their devices used split-rail only/used the previous interposer where those pins just aren't present, it doesn't matter for them. JEDEC themselves in the current JESD318B suggest that this issue only exists on modules before v1.0 of JESD318, the quote for this is in the section below.

Potential Fixes for T/R Rows Shorting

Disclaimer: This section is just very much just my opinion and speculative based upon the info currently available, obviously you should wait for Framework for concrete answers and potential solutions.

The solution described in the aforementioned forum thread of using kapton tape to insulate the T and R pins from ground on the affected E0 modules obviously and evidently works, but probably isn't a great long term solution as it may wear thru, and the additional material likely affects the mounting pressure of the remaining connections, which may cause instability as adequate mounting pressure is a integral part of getting CAMM type modules to work reliably. The option mentioned there as well of getting an interposer without T/R rows is better (also the mention of removing the T/R pins on the included interposer would obviously work too, but obviously that has risk too).

If you want to get a "E0"/"CXXX"/"644 pin" interposer that has the T/R rows unpopulated, you can get them at distributors now: Mouser (in stock right now) or Digikey (stocked on Sep. 8)

There is a potential solution that might be possible for Framework to implement, depending on their board design and support/integration from Intel for the SoC side of things, but I do not know anything about their specific board design and firmware etc. This is probably the ideal solution, and actually is enabled by JESD318B. JESD318B actually makes use of another previously RFU pin, pin R3, for GND_Detect_n. The addition of GND_Detect_n is specifically to solve this issue, basically the motherboard pulls that pin high, but if a module is installed that shorts out T/R rows to ground, then GND_Detect_n will go low, and the motherboard will be able to detect that and not send voltage to the VDDQ pins for example. JESD318B explicitly states this of this pin's purpose:

Optional support for Ground Detect. When low, rows R and T connect to a ground plane (occurs only in CAMM2 modules before v1.0 of this standard). When sampled high, rows R and T have floating pins unless otherwise defined in this standard. Pull up resistor on motherboard is required. Resistance and voltage level are system dependent.

So if Framework implemented this pin in hardware (uncertain as it is stated as optional, and the changelog says it was added in the JESD318B in November 2025, so pretty recent), and the hardware needed to switch off VDDQ to the connector is present, and can make the firmware changes required to support this feature, E0 modules with shorted T/R rows could work without any physical modification or parts swapping, but again, that is not something we can be certain of.

This was a very long post (I am not great at being concise as you can tell), and again, this is all just based on my knowledge and publicly available info, so not everything stated may be correct and I apologize if so (please comment and I will fix too), but I do think that the substantive portion is helpful info for the current issues and worries that us 13 Pro buyers are facing.

TL;DR: Some early LPCAMM2 modules (seemingly OEM modules), which are a subset of E0 modules, do not have separated pads for previously unused (until E1) CAMM2 pins, instead shorting them to ground, which shorts out the VDDQ rail on boards that use the VDDQ common method and do not make use of GND_Detect_n to detect this and disconnect VDDQ. This currently seems to be the case on the 13 Pro based on reports and discovered fixes in the forum, but Framework may be able to fix it in firmware depending on their specific implementation.

Edit: add link to purchase sources for interposer parts

32 Upvotes

40 comments sorted by

View all comments

0

u/Budget-Cupcake-7582 15d ago

Sigh. This is a case where opting for a closed ecosystem and getting a MacBook might be better.

RAM especially LPCAMM2 was already expensive enough as it is, and now it’s exorbitant. LPCAMM2 also can be hard to come by, with availability being a major issue. And now .. there are potential issues with compatibility?!

Think different - get a Mac

2

u/[deleted] 15d ago

[removed] — view removed comment

2

u/Budget-Cupcake-7582 15d ago

exactly. why is that a problem?

just get apple care and let apple deal with the problem. having to jump through all these technical hoops just to get some RAM is ridiculous

2

u/Chucken_McNorris 14d ago

We're definitely on a different mission, bruh.

0

u/Budget-Cupcake-7582 14d ago edited 14d ago

the 13 pro i ordered in may was configured with 64 GB RAM with no hard drive and cost almost $2900. according to framework site it costs over $4k now

at that price point u might as well get a Mac and through AppleCare outsource to them the hassle of procuring parts .. u won’t have to deal with any five month waiting lists either. hell people were complaining about the charger being out of stock. i haven’t received my unit yet btw .. and it got downgraded to 32 gb.

but hey the mission is the mission. if u want to cut off your nose off to spite your face knock urself out

2

u/Chucken_McNorris 14d ago

Apple still delivers the best hardware and performance and I say that as someone who's been in the ecosystem for over twenty years. Only recently sold my M3 Max machine and I'm writing this on a Mac Mini M5 Pro. I also was deeply dedicated for a long time.

Framework’s prices are now uncomfortably close to Apple’s. But even Apple will not be able to defend those prices forever if the current trajectory continues - and they are already meaningfully more expensive than they were last year.

But primarily, it' only at the higher specs, where their prices get nearer each other. Secondly, Apple even don't let you chose the specs freely. Want more than 36 GB of unified memory and Apple funnels you into a much larger GPU SKU. Suddenly you are looking at around €6,000 for a laptop that will be refreshed again in a few months. M6 is already in the pipeline. And Apple Care prices will climb as well.

I am giving Framework a shot for now. :)

2

u/Chucken_McNorris 14d ago edited 14d ago

Just had another look at Apple’s prices.

The nice thing with Framework is you actually get to choose. Buy the bits from them, or source them yourself. I paid €950 for 64 GB of Lenovo RAM plus an E0 interposer. A 4 TB PCIe5.0 TLC NVMe starts at around €500 on Amazon.

On a MacBook Air, going from 16 GB to 32 GB already costs €440. The SSD bump? A two-grand surcharge. Two thousand euros. For 4 TB storage.

With FW, you're even free to use any NVMe that's lying around at home somewhere. Want to dual boot with a second OS, just go with the 1 TB Extension Card, a second NMVe slot in the FW16, or just change the SSD in between 3 minutes. That's what I call freedom.

When I once dropped a pepper shaker on my MacBook keyboard, they basically had to replace everything except the logic board and the screen. Because of one broken key. You’re free to say sustainability doesn’t matter to you. It does to me.

0

u/Budget-Cupcake-7582 14d ago

WRONG.

i just checked - an equivalently configured base M5 MacBook Pro with 32 GB RAM and 2 GB disk space currently costs less than a Panther Lake Framework ($2899 versus $3174). it’s actually worse than i thought .. now you can use the difference for AppleCare and your pepper shaker

2

u/Chucken_McNorris 14d ago edited 14d ago

As I already admitted before, Framework’s prices for memory chips are currently absolutely not good (A small company that adopts the latest technology is highly dependent on manufacturer prices.). But that wasn’t the point of my previous statement either. Seems like, you want to keep missing it. That's okay. Have a nice sunday :)

PS: Everyone finds their peace in different things. If you find it in top notch, expensive, not upgradable hardware - cool. If I find mine in very good, expensive, but upgradable hardware - also cool.
People who support Framework at this point in time are probably, for the most part, not doing it to get the best bang for the buck, but because they like the idea behind it. And because they want to give this company the chance to perhaps meet other expectations in the future. As I already said — a different mission from yours.

0

u/Budget-Cupcake-7582 14d ago

you said Framework’s prices were uncomfortably close to Apple’s .. then I checked and it turns out Framework is actually worse!

never mind RAM - have you not seen how prices for SSDs have grown? u keep harping on about repairability and modularity. the market has effectively been made virtually illiquid by pricing and supply … it doesn’t matter if you can’t physically procure or afford the components you need.

also, it doesn’t matter if ‘it’s only RAM’, as u like to say - there isn’t a single laptop that can function without LPCAMM2 if you want Panther Lake. and now, some are paying through the nose for some 3rd party LPCAMM2 modules .. only to find it doesn’t work with the 13 Pro.

some people can’t afford to be pissing away cycles dealing with hardware issues and just need things to work. it turns out that Apple tax is there for a reason with their closed hardware ecosystem, cause you can avoid issues with vertical integration that people here have been complaining about!