Feeds and Speeds - Try This

I’ll try to keep this brief, but I need to start by saying my journey with my LR2 has not been pleasant … until tonight!

I built this thing about a year ago, cut some small stuff, burned some MDF, broke some bits, asked some questions, swore, swore some more, etc. etc. I couldn’t get any performance… I had to run at 1mm DOC at 2400mm/min, single flute, slowest RPM, blah blah to not make smoke. I couldn’t even cut PVC or ABS without a ton of skipped steps and melted blobs.

I read on this forum about someone who wrote a small GCode routine to help find the perfect Z height to use a laser at. I applied the same technique (more on this below) to easily trial different DOCs and different feedrates so I could stop setting off the smoke detector. This worked, but I was only able to determine that my LR2 was gutless and cursed as mentioned above.

Now to the punchline / moment of clarity: I noticed something odd when I shut the router off a few days ago. “Is this thing turning backwards?!?!” [insert long loud profanity laced shoutfest]

So, what happened was that when I first built my LR2, I wanted to include a Z-Probe (very smart). But I didn’t want to clip the probe clamp to the bit each time, so I disassembled the router, had a couple beer, went to bed, came back a week later, carefully ran wires inside the router and ground them to the bottom bearing, had some more beer, wired the motor up backwards, and put the router back together, and started making smoke. The beer, sleep, and passing time prevented me from realizing until a few days ago that I royally f’d the motor wiring part. 10 months of trials, errors, and disappointment later, and I’m now happy to report, that turning the router bits the in right direction makes a huge difference!

Now, in those past ten months, I’ve learned a lot. And much of it from here (except no one here mentioned to check router rotation, but that’s probably on me)! So, I’m hoping to share something I’ve made that has helped me in the past few days get a better handle on feeds and speeds. Building on the GCode routine to dial in laser focus, I made a GCode macro that runs in CNCjs. You position the bit at the lower left corner of a piece of test material, edit the macro variables to your desired DOC, initial feedrate, and step feedrate in the macro, and CNCjs will make 5 - 5cm long cuts in the x-dir at progressive faster feedrates. If all is well, don’t move the router, edit the variables again, and re-run the test. Keep repeating until the stepper start skipping, or you max out the depth or feedrate of the machine. Super easy! Here’s couple pics of a F&S test I did on a piece of 3/4" Baltic Birch. I’m pretty pleased with 12mm DOC at 1900mm/min! 14mm DOC would have worked too if the bit cutting length was more then 12.7mm.

If you think this would help you or anyone get a handle on F&S, or more quickly find out what the limits of your machine is, please feel free to use this small GCode file. It works with CNCjs, but I’m not sure, maybe other server software can use GCode scripts with macros too… If I could make this script any better, please let me know.

FSMacro.gcode (3.9 KB)

TLDR: Make sure your router bits turn in the correct direction so you don’t waste 10 months hating your LR2. Also, try this simple GCode script with CNCjs to help figure out your F&S.


So I better not go drinking too much beer while I’m building my LowRider :wink: Thnks for this… I’ll utilise it when setting up as I’m very green to all things CNC


I wasted 12-months because a bolt was imperial while the printed part was metric. You’re in the right place.

Great to hear you’re persistence paid off. Those are some awesome feeds for the DOC.

1 Like


Don’t feel bad. I work with custom very large cnc routers for aluminum and vinyl… I had just finished upgrading the spindle drives and motors. Tested after checking rotation and all was well. The router was shipped back to our other plant, only to have it not cut for shit… the other plant was using different style bits. The twist was reverse of the bits they gave me to test with. Machine runs beautifully now after reversing rotation.

Sorry to hear about your rotation issues.
On the other hand, your FS test is exactly what I have been looking for.
Will all controller be able to use variables?

It’s CNCjs that handles the variables, not the controller. The important stuff in the script is normal gcode, so as long as your controller is running Marlin (and maybe other board firmware too), CNCjs will do the heavy lifting.

Just came across this post. Thats a great tool you have made! Well done. Will give it a run in the coming days as I am still getting my fead around feed/speed and so this would gived me a good indiciation of where my machine sits.

Thanks for the share.