Passifying the USB-A Card

Would anyone have a caliper and be willing to measure the USB-A jack, particularly the location and size of the holes in the sides? And maybe post a picture of how far an inserted plug goes past the back hole.

(Tom_Haslett, hope you don’t mind me using your picture)

The holes look at least 3-4mm wide and couple mm high (starting from the surface of the pcb). Could be enough room for a switch. That way just inserting or removing a device or cable would activate / deactivate the port.

Unfortunately Framework just has a basic pcb file on their github which doesn’t include the USB-A port. I took a look though USB-A jacks on mouser but I didn’t see a matching one.

@Any Framework Staff who might wander by, could you perhaps give the part number of the USB-A jack?

That’s okay @MJ1

I have a caliper. Here are photos of some measurements:

Height from the PCB seems to be about 1.1-1.2mm (couldn’t easily snap a picture of that).
Also, the 2mm measurement could actually be 1.8mm, I can’t quite see it properly (my eyesight…)

As for plugging in a USB device, it does cover both holes:

I suppose you could remove the piece between the holes to get some more room?
Also, the holes span both sides of the PCB, so perhaps remove a section of PCB is an option to allow for a larger switch? I can’t imagine there is anything important in the PCB layers in that corner?

PCB looks slightly bowed, may have been from the de-soldering of the tabs.

Hopefully somebody finds above useful.


I would have opened one of mine this evening :slight_smile:
I see you didn’t fix the tabs to some thing like perfboard - that might not be good for long time stability but I guess since the socket is inside the card so snugly its probably fine.

Yeah that was my thinking, figured I would risk it. After those photos I actually put a blob on solder on each side of the connector. So it now can’t be pulled out and off the pcb.


It looks like that might not be needed. There are some very small switches with absolutely tiny actuators.

The screw on one side, holding the pcb to the case, would be in the way. But there would still be other screw to hold the pcb down. Plus the plastic alignment pins in the notches next to the screws.

It is possible to add a button in there.

I have trimed the button use a knife to form a ramp and it actuates correctly but I end up ripping off the cc line solder pad when soldering wires on them. really hated those (smaller than 0402) components and working with them without a microsope is just a nightmare.

To framework, I don’t know why it is used but please use 0402 or above unless there is a reason, soldering on to anything smaller than that is horrifying.


Cool - I could not find a switch small enoughI could buy so I rolled my own. This is actually the best solution IMHO. Please tell us the manufacturer/model or serial number of the switch so people can buy their own.

Yes the componments are very small in these cards but i guess they used them for BOM reasons.

1 Like

Just a note on this overall. If you’re running the latest BIOS (and if you use HDMI or DP, you modify the HDMI or DP Expansion Cards following the new instructions), you should no longer see higher power consumption with USB-A plugged in.



yeah I should have

I got it from this switch kit on amazon, which is priced pretty reasonably for a collection of buttons

I cannot find the specific part number of the one I used but essentially any switch that is small enough and have a long stem would work, I step upon this this in particular and imo it should work

also, I have a feeling that a 3d printed compliant arm can be used to allow larger switches, like this

Another method I considered is just sticking a wire in there in just the right way so that it would act as a switch when something is inserted, but that is most definitely not reliable in the long run.

I thought of about the same thing but figured that there should be enough volume in the expansion card alone to justify using larger passives. maybe those smaller component are cheaper as everyone else are using them, idk.


Cool to see! Is this 3.17 for 11th gen, or an upcoming version? I don’t remember seeing this in the change log :slight_smile:

1 Like

Yeah, nothing in the 12th gen’s 3.06 beta bios, nor the 11th gen’s 3.17 bios release notes.

Confirmation would be useful here, though it’s promising to hear the USB-A power issues are solvable in software.


Yes, the system side firmware modifications that we made on 13th Gen are similar to what we rolled out in those BIOS updates, allowing the retimers to go into suspend while USB-A is in.


Which BIOS update are you refering to here?

I ran benchmarks against the 3.06 beta upgrade on the 12th gen and didn’t see significant changes, see Framework 12th gen laptop review - anarcat

I was still seeing a 300-500mW power drain on standby for USB-A ports…


Thanks for the detailed testing. We’re looking into this.



11th Gen Intel(R) Core™ i7-1165G7 @ 2.80GHz with 16 Gb memory
Sandisk Corp WD Black SN750 / PC SN730 NVMe SSD.with:
BIOS Information
Vendor: INSYDE Corp.
Version: 03.17
Release Date: 10/27/2022

running: Fedora release 36 (Thirty Six)

Tested s2idle; taking readings from /sys/class/power_supply/BAT1/charge_now just before and after suspend; converted to Watts on the assumption of the design voltage:

-0.79W (s2idle HDMI+ USBA)
-0.68W (s2idle just USBA)
-0.54W (s2idle just HDMI)
-0.32W (s2idle nothing)

Normal idle of the system is about 3-4 W (system on, but screen blacked, nothing particularly running).

These are workable parameters with a 55Wh battery but I think it’s definitely showing that the USB-A problems have not been solved at all. It does seem things have improved a bit over what we had about a year ago:

but it seems having a USB-A plugged in still leads to considerably more power usage under s2idle than when not. In fact, on par with what HDMI causes!


@Nils Just a nitpick but, shouldn’t you use s2ram instead of s2idle?

Isn’t s2idle just telling the system to go in very shallow sleep?

Instead, you may want your system to go in “deep” sleep state. There are kernel parameters to check for that.

See for example 20.04 - Entrie battery drains even [s2idle] deep is available - Ask Ubuntu

Previous comparisons showed that with nvme_noacpi=1, the difference between s2idle and deep in terms of power use was very small (some people found s2idle perform better), and wake-up from s2idle is instantaneous whereas it took a long while from deep. See Framework 12th gen laptop review - anarcat (and various posts by @anarcat on this forum) for rather extensive tests of “deep” on a 12th gen.

Those tests are from a while ago so improved support in the kernel may have improved the situation on the 12th gen as well. Just comparing the raw numbers suggests that deep on 12th might perform a little better that s2idle on 11th (but this may be within the margin of error), and that performance with USBA and/or HDMI card inserted is basically the same between s2idle on 11th and deep on 12th.



Just wanted to share this as it seemed relevant. I am in batch 1 for the new AMD board. They emailed just now about this:

The back two slots have retimers that remain in higher power states when used with HDMI, DP, or USB-A Expansion Cards. We’re actively working on firmware solutions for HDMI and DP, and exploring hardware options for a new USB-A Expansion Card for the future.

In other news. I ordered those buttons @Clover3077 so will give that a go anyway if I get some time.


Did the button mod to one of mine. Works like a charm.

I managed to destroy 3 buttons with superglue. Got there in the end!

It’s not pretty but it works.


Has anyone heard any news on a mass-production version of this available for sale?