Complete electrical and wire management for Primo

This thread will take me a little bit to get all the details together but I wanted to share my approach for modifying the MPCNC Primo to provide as comprehensive of a walkthrough of how to wire the electronics for the CNC but also how to safely and reliably manage the cables. This has taken me a few months to prototype and test everything. Prior to this I was running an original MPCNC design for several years. It worked ok but had some issues and some of my parts were cracking and needed replacement. When my trim router finally went belly up I decided it was time to rebuild everything.

Presented here is the, mostly, final result of my efforts except I still am waiting on some barrier terminals and a new usb-c cable so I can finish the electronics cabinet. My modifications have been adapted along the way from ideas I found in multiple places. In the end, I modeled and built everything from the ground up. I don’t remember some of my original sources so forgive me for not citing them. The one exception is @randysteck as he and I are friends in the real world. He is largely responsible for getting me into the cnc and 3D printing world and I drew inspiration from his original cable mount that attaches to the stepper motors.

First the final product:

In the next few posts I will go through some of the design and modification details. I will eventually include all of the 3D files so you guys can use them if you find this helpful. I will also include a tutorial on the physical wiring of the machine at some point as that still has a lot of missing details in the assembly instructions.


The first feature I will zoom in on is the cable mounts and strain relief at the steppers. @randysteck came up with an excellent original design where he attached the mount to the stepper motors with zip ties. I modified this a bit and ended up building a new design that attaches by replacing two of the original screws on the stepper motor with longer screws that are used to mount cable support. I also changed the zip tie mounting to allow the device to act as train relief and to secure the cable cover if you are using one.

3D Rendering:

STL and STEP Files:

Motor Strain (72.8 KB)


M3 x 45mm socket head screws

Cable ties

Another feature you can see in the above photos are end caps for the steel tubing and grommets where wire passes through the tubing.

Here is an additional photo of the end caps. This isn’t as much functional but adds a finished look and keeps stuff out of the tubing.

3D Rendering:

STL and STEP Files:

Tube Grommet (143.9 KB)


The next feature is a modification of the stock tubing clamp for the x-axis. This is intended to work with an aluminum U-channel. I will come back and edit this in the near future to add the specific parts used for this. All hardware was purchased at McMaster of Puppets Carr except the drag chains, they were purchased from Amazon.

3D Rendering:

STL and STEP Files:

Drag Chain (289.7 KB)


M3 x 8mm flat head screw This screw is used to attach the U channel to the bracket via heat set threaded insert.

M3 heat set threaded insert Use a soldering iron with the tip recommended by McMaster Carr to install.

8 feet of this aluminum U-channel was enough for me for the entire project. My MPCNC is the minimum size though, you may need more based on your machine size.

M4 x 8mm flathead screw for attaching the drag chain to the aluminum channel. You will need an aluminum tap to do this.

A set of transfer screws is also something you should own, not just for this, but in general. It makes this job much easier.

Drag chain

Assembling everything is pretty easy, just print the brackets instead of two of the stock tube clamps. I used PLA with no supports. The same hardware is used as stock to attach the bracket. The U channel will need to be cut to length. Position the lower end of the drag chain where you are comfortable, drill and tap the U-channel and use the M4 x 8mm flathead screws to attach the lower drag chain to the U-channel.


The upper drag chain mount took me several prototypes to figure out. This design seems to work pretty well although I may be able to improve upon it further depending on how motivated I am.

3D Rendering:

STL and STEP Files:

Drag Chain (284.5 KB)

Printing this is pretty straight forward, PLA with no supports, I had success printing it on the long flat side closest to the camera on the lower render.


M5 x 30mm socket head screw The socket head screw has to be used here instead of the button head screw that is used everywhere else because there wasn’t enough room for the latter.

M5 lock nut. This fits into the nut trap that can be seen on the underside.

M4 x 8mm flathead screw to attach the drag chain to the underside of the bracket via heat set threaded inserts. These are the same screws used on the step above.

M4 heat set threaded insert to be used on the underside of the bracket


In addition to the tubing grommets I designed some table grommets where the wiring passes through. Nothing crazy here, but for the sake of being complete I will include them. In the first photo below don’t pay attention to the extra two holes, I reused this board from my original MPCNC and this was the old drag chain mounting location.

3D rendering:

STL and STEP file:

Table Grommet 3D (63.9 KB)


The other feature that was somewhat of a challenge and required multiple prototypes to figure out was the lower drag chain mounts. There are actually two separate designs here because I had to use two different drag chains. For the MPCNC minimum Z height, which I used here, I could not fit the larger drag chain under the lowest rail. I reused my old, smaller drag chain and, as a result, had to redo the mounting points for the unit as they are different. Overall pretty simple modifications. In the end, you can customize the lower mounts to match your use case.

I would not recommend using the smaller drag chain I did though. It’s a pain to use because the top doesn’t open to run the cable though like it does in the larger ones. Again, links to everything will come.

3D Rendering:

Bracket for the larger drag chain:

Bracket for the smaller drag chain:

STL and STEP Files:

Truck (279.6 KB)

Truck Bracket (295.2 KB)


M4 x 8mm flathead screw to attach the large drag chain to the underside of the bracket via heat set threaded inserts. These are the same screws used on the step above.

M4 x 5mm socket head screw to attach the smaller drag chain to the small bracket.

M4 heat set threaded insert to be used on the underside of the bracket, the same ones used in the upper bracket.

Larger drag chain (same one as used for the Z axis above)

Smaller drag chain (I don’t recommend this one but it does work just fine for the Y axis that is closer to the workbench).

It is worth noting that the drag chain mounts I designed will reduce your useable cut area. This was a non-issue for me because it didn’t reduce the area any more than the vacuum attachment I also printed. The router mount and vacuum attachment is not my design although I did remix the vacuum attachment so it can be secured with screws and threaded inserts.


Lastly, my electronics cabinet and switches. I’ll include the principles I used and a wiring diagram but the actual construction and particulars of this part is really dependent on your table.

I did have to replace my original power supply at one point as the one that came with my mpcnc kit stopped working. I’ll include links to all the boards I went with including the buck converter to power the raspberry pie off the 12v power supply that handles the rest of the CNC. you may also notice I am running the mini Rambo board which has worked well for me. I have never required or missed the end stops.

I’ll add some pictures of the control box later this week after I get a few odds and ends in and clean up the wiring.


All looking very good.

My only negative comment would be that it’s not a good idea to anchor anything to the top of the Z tower. Anything connected there has a very large mechanical advantage on the Z axis to produce tilt and affect perpendicularity of the tower. Even the resistance offered by a good drag chain has a potential with such a large mechanical advantage.


It is worth noting that the drag chain mounts I designed will reduce your useable cut area. This was a non-issue for me because it didn’t reduce the area any more than the vacuum attachment I also printed. The router mount and vacuum attachment is not my design although I did remix the vacuum attachment so it can be secured with screws and threaded inserts.

This is remixed from this design:

3D rendering of the updated component:

STL file of remixed vacuum (231.8 KB)


M3 x 6mm button head screw

M3 heat set threaded insert the same ones used above in previous steps.

Brush for vacuum

1 Like

Continuing from above, the electrical cabinet


Power supply

Raspberry Pi 4 8g to run OctoPrint

Fan for Raspberry Pi

USB-C cable for Raspberry Pi Power

Buck converter 12v to 5v to power Raspberry Pi

3D Renderings:

Raspberry Pi Case, I remixed this from another design but only use the bottom since this is already in an electrical box

Buck Converter case, this is a very simple design, there are no mount points on the buck converter I posted so I simply epoxied the board into this case and then was able to screw it into the electrical enclosure.

STL and STEP Files:

Raspberry Pi (185.9 KB)

Buck Converter (8.7 KB)


M2.5 heat set threaded insert for the Raspberry Pi case

M2.5 x 8mm screw to attach Raspberry Pi in case

PowerCon power inlet chassis connector

PowerCon power connector, if you have never used a PowerCon connector you should try it, they are awesome.

EtherCon chassis connector I had never used this before I’m not sure it was worth the hassle as it ended up being pretty fiddly. I like it now that it is complete though.

EtherCon connector

Toggle Switches

Toggle Switch Flip Cover

I can’t remember the relay I ordered, but something like this works great.

I had an emergency safety switch already but it is probably overkill. Great quality, but also a high price. Any e-stop switch will work.


This is written in really great detail, thanks for sharing.

1 Like

This is ridiculous, which I mean in the best way. Nicely done, I love it! If I can make mine half as pretty as yours, I’ll be tickled!


Incredible! Thank you for sharing.

1 Like

WOW! I’ve just ordered parts. don’t think I’ll reach this level… very nice and thank you for sharing.

1 Like

I really like this clean look!
Maybe I will integrate some of those parts into my project, too. Thanks a lot for sharing!

1 Like

Great work! I’m working on the same issues right now. Did you choose to reverse your trucks on the X axis for a particular reason?

1 Like

Yes, I forgot I had done that. I thought it worked better for mounting the drag chain bracket. As I was messing with different bracket options it was much easier to flip the trucks and balance the bracket over the top of the stepper motor than to have the bracket on the other side flapping in the wind.

Something else I have been working on is a new mount for the Bosch Colt router that I use. I wasn’t happy with the one I got from Thingiverse just because it doesn’t seem very sturdy. Also, access to the spindle lock to change bits is not good. Rather than reworking it, I designed one from the ground up. It is a 20 hour print so it should be done sometime this evening. I embedded four neodymium magnets into the base and will make a custom vacuum attachment for it as well.


I cleaned up my electrical cabinet, I rand out of spade connectors though so I have some on the way and I will be able to finish this up. I am also working on creating a schematic for how everything is wired but I haven’t gotten to that yet. I may just go pen and paper with that for simplicity.


I have been prototyping the router mount now for the last week and I think I have settled on the final design. I am 24 hours into the 30 hour print that is the router mount and then I will start printing the vacuum attachment tomorrow. There are 5 10mm x 3mm neodymium magnets printed into the bottom of the bracket and 5 corresponding magnets embedded into the vacuum attachment. I have some spindle brush material that will slide into the channel. Hopefully it works!