Simple build in Australia


4’ x 3’ x 4", stainless 25.4mm tubing.
4" x 4" table base for a little extra work room.

X and Y Motors wired in Series.
Makita trimmer router knock-off (Zen)
Printed in PETG Natural.

Made a table clamp…

Still need to make an electronics cover.
Will add spoilboard clamps when t-nuts arrive.


Thanks Ryan.


Cool. I want to know more about that table clamp. That looks like it would be very useful.

Nice build!

I would make sure the lcd cable is not touching the heatsinks and make sure they have plenty of room to breath, they get hot!

1 Like

Hiya Jeff.

I’ve tried to be clear in these photos.

I started with a 1200x1200 25mm tube square frame I welded.
Added a cross beam in the same square tubing at 900mm,
to support under the legs of the machine.

Next I added two 40mm angles for the outside, and a shorter angle for the inside.
This way the clamp clamps against the two angle iron pieces, not the baseboard or spoilboard.

The two outside are welded to the tube frame, and the inside one floats on 1/2’ threaded rod.

The nuts are welded onto the inside floating angle, and two nuts not welded too lock at each end, and some more to hang out to hold some turning knob, I need to print some thumbwheel knobs instead.

The part that slides sits on some overhang from the base board, and is screwed down above that middle angle bracket with welded nuts, the spacer to the angle iron, and the spoilboard screws into the baseboard spacer strip. The spacer is the width of the bracket to pad out height of missing base board.

I also added two little blocks on the top/outside to hold down the spoilboard as it slides out.

To replace the spoilboard I have to cut it at 500mm into two pieces, and screw it down, cuts holes for clamps…

I have my own need for this which is why I did it, and it means clamping will have to be different in this area if I do it it at all, just holes in the spoilboard here with bolts and washers, no t-nut or anything to grab onto, as its hollow underneath in that area where the top moves.

And I should NEVER have put the threaded rods directly UNDER the spoilboard as it gets harder to turn them the more it opens.

Hope that is clear somewhat :slight_smile:


1 Like

That is very clear. Thank you.

In hindsight, it’s very clear that you should have put the rods out the other side, so the knobs wouldn’t be under the spoil board.

For the knobs, you can also cut them out on the CNC. I like the idea of the machine helping itself, and I like wooden knobs. I’ve been meaning to make some replacements for the knobs on my table saw.

When you are cutting something flat, on the top, does the moveable spoil board flex up and down? You might be able to install some screws to hold it down in that position if it does.

Very good design, thanks for sharing. I have never welded anything (and my wife doesn’t yet see the value in me investing in metalworking equipment). So I am envious.

That’s a neat idea!

I think you might want to use some kind of chain or pulley to link both rods, otherwise it must be very time consuming to get it to the right position.

It has not flexed so far.

I also mainly use the non clamping area, or the whole width when I’m routing, and haven’t had much need for the clamp yet, that project is to come :slight_smile:

It is screwed above the floating metal beam, and I have added those tabs on the outside to hold the outside edge corners as well, so its fixed vertically at each of the corners.

I’ve had no issues so far.


To Dui, ni shuo de dui,

Yes it is slow to open and close, but I have time and am mostly patient. as this hobby goes, most time is spent in the preparation… :slight_smile:

A chain or pulley maybe you could use, I cannot even think about the pressure to clamp using a system like that, this is simple, doesn’t make my brain hurt, albeit slow too setup, clamping pressure is direct from the two knobs.

You also cannot clamp non rectangular shapes, as the spoil board cannot twist more than about 2mm, but that was my design requirement.

It was mainly for joins on the end of boards, and also for being able to decorate boxes on any side up to its side being no more than 500mm x 300mm.

Those are my limitations.

I’d also like to try carving on the side of larger logs, so I had to choose between a higher z axis, or a clamp, and the higher z axis means less accuracy… I’ll try that out when I can.

At this point in your life, you should be well aware that it’s easier to ask for forgiveness than ask for permission :slight_smile:

I’m still working off the debt from the last time I tried that.

A small update, because it seems ppl like photos.

I made wooden knobs :slight_smile:
[attachment file=36736]

Next I built a dodgy control box to house all of the electronics, and switches, and a pi zero W.
[attachment file=36737]

I made it so that there is two power leads, one to power the control box, and the other is an out with a female socket to act as a controllable power source for the router or for a laser or something else eventually.

The two light switches control the output power lead, mains turns it on/off, and manual/relay toggle between directly on, or relay controlled via a 12v 240v/10a relay that’s connected to D9/Fan on the ramps board, so the router can turn on and off as the job executes with a ‘M106 S255/S0’.

The white round button is on top of the LCD kill button, which turns out is using PIN 41 in the Marlin firmware, and I could change that to not kill the job, but to reset the origin by sending a ‘G92 X0 Y0 Z0’ and navigating back to the status screen any time it is pressed whilst a job is not in progress.

[attachment file=36739]

I added an emergency stop switch, that I built into an extension cable I made.
So it can be used for other purposes if need be.

Inside the box is a Pi Zero W as well, powered off of the 12v/5a power supply that is powering the arduino/RAMPS board, running a nightly build of OctoPi, and its connected to the arduino/RAMPS via USB externally to the box as seen above.

[attachment file=36738]

The USB cable might seem weird, but it enables me to plug either device into a PC if need be to flash them. You can also not use the Pi this way and go back to repetier host or something similar.

Wiring it this way and driving it from the Pi means the emergency stop switch kills everything, no laptop holding stepper drivers locked, switch kills everything.


Thats a great setup. Nice find with the pin41. I had a power strip with a built-in relay but it doesn’t fit on my low rider, so maybe I’ll go this route.


I blew up the voltage controller on my arduino trying to get a 5v relay to work first by using 5v signal from the servo pins, still powers from USB and the PSU powers the steppers fine on the ramps, but it would no longer work stand alone away from a USB power source, the power jack port or vcc pins wouldn’t start the micro controller on the arduino but USB power would start it fine… Oh well, had another mega 2650, so used that instead and got a 12v relay to work much more easily from the D9 fan after testing its output with a multi=meter, and didn’t have to change the firmware, only adding M106 commands to the start/stop gcodes in repetier host or OctoPi.

I’ll use my slightly fried arduino for another project one day…

For reference, here is my changes to Marlin for the reset origin button…

in pins_RAMPS.h

[scode lang="{language}"]

#define SD_DETECT_PIN 49
#define KILL_PIN 41

in Marlin_main.cpp

just above void manage_inactivity(…)

[scode lang="{language}"]

void reset_origin() {
if (!(planner.movesplanned() || IS_SD_PRINTING)) {
enqueue_and_echo_commands_P(PSTR(“G92 X0 Y0 Z0”));
BUZZ(100, 659);
BUZZ(100, 698);


within void manage_inactivity(…)
instead of #if HAS_KILL

[scode lang="{language}"]
// Check to see if we have to reset the origin
// ---------------------------------------------------------
static int resetOriginCount = 0; // make the inactivity button a bit less responsive
static bool resetOriginTrigger = false;
const int RESET_ORIGIN_DELAY = 500;
else if (resetOriginCount > 0)
resetOriginTrigger = false;

// Exceeded threshold and we can confirm that it was not accidental
// ----------------------------------------------------------------
if (resetOriginCount >= RESET_ORIGIN_DELAY && !resetOriginTrigger) {
  resetOriginTrigger = true;

#elif HAS_KILL
added RESET_ORIGIN_PIN section…


You can probably fix it by replacing the 5V regulator on it. It’s not a super tiny part, so you can do it with mortal soldering skills.

Thanks for sharing that mod. Looks like you even did it pretty cleanly. You said it wouldn’t do it while you were in a job, what restricts that?

That is a pretty solid set of “mods”. A little advance for a beginner but I hope to see these pop up in more builds, I appreciate you sharing them, thanks.


You were right, it would stuff up if a job was running.

I’ve corrected the code in the post up above.

It now only resets the origin when not running.

It turns out that this is somewhat tricky.
The only real test is whether a move is scheduled or planned for…

I also tried to do something else with the button whilst the job was running, like a cancel and move back to origin, but I couldn’t do this.

Any host software just keeps sending commands unless you disable the interrupts to stop receiving commands from the serial port, and doing this kills the arduino completely, so I could not find a way to tell the remote software to stop sending commands… Oh well…

Maybe another day.