If somebody asked you to visualize a CNC router, you’d probably think of some type of overhead gantry that moves a cutting tool over a stationary workpiece. It’s a straightforward enough design, but it’s not without some shortcomings. For one thing, the scale of such a machine can quickly become an issue if you want to work on large pieces.
But what if you deleted the traditional motion system, and instead let the cutting tool roam freely? That’s the idea behind the open source Compass Handheld CNC. Looking a bit more like a combat robot than a traditional woodworking tool, the Compass tracks its movement over the workpiece using a Teensy 4.1 microcontroller and four PMW3360 optical flow sensors. With a pair of handles that look like a flight yoke and a display that shows the router’s current position versus where it should be, the user can “drive” the tool to cut or carve the desired design.
Admittedly, the Compass doesn’t pack quite the same punch as a more traditional setup. Rather than a beefy spindle motor or a full-sized consumer router clamped up in the gantry, the Compass uses a Dremel 3000. It’s fine for routing out an engraving and other fine work, but you wouldn’t want to use it for cutting thick stock. To help keep the work area clear and prevent dust and chips from jamming up the works, the 3D printed body for the tool includes a connection for a dust collection system.
If this all seems familiar, you may be remembering a tool we first covered nearly a decade ago — the Shaper Origin. That router, which is still on the market incidentally, utilizes optical tracking and fiducial markers to keep track of its position. We’d be interested in seeing how well the Compass compares over large distances without similar reference points.
Looks interesting; For those interested, there is a more in depth article on: https://makezine.com/projects/get-your-bearings-with-compass-handheld-cnc-router/
Video?
I find both the description here on hackaday, and on the “compass router” website confusing (I’m also allergic to scrolling banners, so I have to scroll though web pages to get those parts off screen.
My initial thought was that it was a router with an open bottom, so you can put the thing on a bigger work piece, but the photographs excluded that. I think it’s stepcraft that has a CNC router in which the bed can be removed for this purpose.
But I did figure it out. They use 4 mouse sensors (the PWM3360 mentioned here on hackaday) to sense the position on your work piece and from that calculate and execute movements for the router. So it’s an open sourced / DIY version of the “Shaper Origin” (Which is quite expensive (Almost USD 3k), and uses “domino tape” to sense the position). I am curious about drift from these mouse (mini camera) sensors, but I guess they have become quite good over the years.
And as usual, I’m a bit skeptical about the stiffness of constructions such as used here. Maybe it’s adequate for a small dremel, but it can also be improved quite easily. First the unsupported round rails. Those are always a big cause for flex. And really, rails like MGN12 (or MGN15) are not much more expensive, especially when considering the time, effort and other materials used.
Another improvement would be to print the plastic in hollow sections, and then glue in steel rebar. Epoxy would be great, but even with some relatively flexible hot glue stiffness would be improved because it only has to fill relatively small gaps. A similar method was used in a lathe: https://hackaday.com/2025/01/20/modulathe-is-cnc-ready-and-will-machine-what-you-want/
Not sure how important stiffness is, as the dremel shaft of this model has it’s bearings hanging in rubber and will flex anyhow, independent on how stiff the frame is.
video here
https://www.youtube.com/watch?v=ynNGwO7-uZ4&t=2s
I’ve read that mouse sensors aren’t accurate enough to be good position sensors. They occasionally skip and so the position, integrated from the Mickeys counted, can be in error. This coming from an attempt to use them to get position truth in a 3D printer.
Has anyone looked at a 2D version of Lighthouse for this type of position determination? Sure you’d then need a workspace/table with known, fixed reference points but I don’t see that as a big drawback. One things MCUs do very well is timing and turning the timing of lasers “hits” into angles and then into position should be easy and accurate. Moving the the cutting endmill is the hard part. If all you wanted was cutting, vs 2.5D routing, then maybe a laser module would do ??