M.2 connector (M key) for SOM + PCB

Hello Vanepp,
I would like to ask you to draw this connector.

(M key page 2) with silkscreen and marked position for screw hole (thin cross ideally) for 3042 size factor

And also the pcb shapefile with golden fingers. (of course M key) Size factor 3042

Thank you.
Best regards, Simon.

This is doable, but difficult. The issue is the slots for the pcb that plug in to the socket. To do that you need to produce a svg with the slots (which can’t have the pins, as it can’t have connectors.) That alone is difficult, but then you have to align the pins for the connector (which are in a part) correctly over the slot in the pcb in the sketch for it to work. I would suggest that your first step is to create the slot svg and see how that goes. A search in the forums for “pcb slots” should find previous posts on how to do this. It may be that another EDA program like Kicad or Eagle may be a better bet for this.


Yes I know, you made a PCIe mini connector and also PCB for me a few years ago. So I know it is possible. Please could you draw it for me again? I will pay you for your time if you want.

Thank you for your help.
Best regards, Simon Hosa.

I missed the slots on the connector on the first pass (circled in red here)

I can’t add slots to a part only the to the pcb outline svg (which then requires the part that is the connector to be aligned to the cutouts in the sketch.) This could be done by aligning to the two holes but will require that you make a new outline svg for the board outline for every new pcb you make. The outline svgs are hard to make because they require a single differential path for the entire board outline which is usually hard to do. The slots get cut by the board house from the contour.gml file in the gerber output but that doesn’t correspond to the part. The same rules apply to the board that plugs in to the connector so the same will happen there (although the board seems to be standard sizes, and it looks like you want the B key 6/5 pins (although the socket seems to have more pins and this document doesn’t list the number of pins nor the mechanical details for the slots so more specs are needed to proceed.) We would need the exact dimensions of each element of the slots circled in red to make the differential path and that information isn’t in the document that I can see.

The position and size of the two slots in the pcb would be needed to make a board and the spacing of the pcb pads from the slots to allow the alignment of the connector on top of the outline svg to take place. As well it used to be (but may not be any more) that the gold plated connector pins needed an electrical connection (essentially a short across all the pins that then got truncated to separate the pins for the final board.) I think I remember someone (perhaps you) saying that was no longer needed these days but you need to verify that.


•I will be using only this one size factor (3042)
•PCB Will be chemically plated, connection between pins is not needed.
There is all pins on the connector 33 on one side and 34 on the second (67 total)

•Thickness of the PCB will be 8mm

•Size 3042 is total size so I made some calculations and it should be like this

•I didn’t notice that it is the hole, but you did something like this with USB C few year ago. I think that you used holes close each other. It is not great solution but it should works.

Thank you,
best regards, Simon.

OK here is the board outline for the pcb as a part (which only has pcb silkscreen.) It would be useful to print the footprint out at 1:1 scale and compare it to a real board to make sure the size is correct.


deleted incorrect part!

The slots can be made either by holes as you suggest in the part, although as noted that is suboptimal as the holes can’t overlap because at least some board houses reject pcbs with overlapping holes because the drills break (and presumably cost money with the downtime to replace the drills.) the other option is to do a board outline as for the board which can cut the needed slots, but needs the size of the board (because it will be the outline of the board), and the position of the connector on it (for the location of the slots) but is more work to change if needed as both the outline svg and the sketch need to be updated. I’d guess that we will only get 2holes each 1.2mm dia and likely in need of manual cutting/filing to enlarge the slot when the boards come back. Like this

3 would be better, but likely have the drill breakage problem

depending on the order they drill the holes (I think sequential is likely) the second hole may wander due to not enough board space to start the drill potentially causing drill breakage. You may want to ask the board house you use what their opinion / policy is. The holes are certainly easier from a Frtizing perspective. I’ll continue on with making the edge connectors and the connector part.


I discovered when I added the connectors this outline isn’t correct. It was made from the first specs above which is only 22mm wide not 33. I’ll use the numbers from the later image which should be more correct I hope.


Nope, the pcb definitions are all for 22mm wide pcbs, we need a connector with M key that supports a 30mm wide pcb and has the drawing with dimensions for a 30mm wide pcb. I can’t find one on the Attend web site all their M connectors seem to be set for a 22mm wide pcb which isn’t what we want. I’ll search other sites and see if I can identify anything (but didn’t have much luck last night.) The problem is here (this is the outline.svg for the 22mm size pcb and the connector you requested which doesn’t fit in the available space!)

The connector looks a little odd because I offset the bottom pins 0.5mm in y because otherwise they overlap and you can’t see the pins (which will likely be an issue with the part too!) We need to find a connector that has the dimensions for a 30mm wide pcb. As you see the pins on the end circled in red are beyond the board outline and will get truncated and the ones on the right are not positioned correctly I expect.


Progress! I found a copy of the M.2 spec here

which has the correct numbers for the outline file, but now there is a Fritzing problem:

the outline file won’t go to the back so the edge connector won’t appear on top of the board outline (which is important because there are alignment lines in the outline.svg which the edge connector needs to line up with to be in the correct position. I’ll poke around a bit and see if I can come up with a solution. Other than that the edge connector appears to work correctly and this should work if we can make the outline go to the back.


Fixed! I had misconfigured the silkscreen in the outline.svg file. Correcting that makes it work.

outline.svg (right click and then save image as to download the svg.)



replace the fzpz file because I forgot to add the required solder mask blockers to the edge connector …

m.2-pcb.fzpz (12.5 KB)

If you click on load image file in pcb, then select outline.svg it will load the outline file like this:

Then you need to drag the edge connector in to the sketch

and set the grid size to .1mm then move the edge connector up til it is between the silkscreen lines on the outline file to position it correctly.

That should give you the edge connector in the correct place ready to route. Then comes the connector for the boards but it isn’t done yet.


OK here are two parts for the connector. One has 3 holes (which overlap) for the slot and I think the board house may not accept. The other has two non overlapping holes but will require more milling to get the slots correct. I can make a third version with a square slot in an outline.svg file if you like (which will produce the specified rectangular slots) if you like.

This is the 3hole version and the preferable one if you board house will make it:

attend-123A-85MA0-connector-3hole.fzpz (11.6 KB)

This produces gerbers that look like this:

and the two hole fall back

attend-123A-85MA0-connector-2hole.fzpz (11.6 KB)

this produces gerbers that look like this:

which will require more work to make the slots correctly.