Simple & Cheaper CNC Shaper

I love the Shaper Origin, it could solve many needs for the home maker and care taker. But at the price many can't afford it.

Similar projects worth following
If you don't know what the Shaper Origin is you can see it here: You can pre-order them now (try here to save $100) but it will still be 1 year before you can get it in your hands. I'm am a sucker for cool tools so I pre-orderd one anyways. My hope is to allow you to build it before you can get it and for under $300. By removing the smart computer, camera, screen and some speed we can do this. This will allow anyone to automate the making of an infinite number of things from plywood like shelves, chairs, tables and even a wheelchair.

To keep this simple I'm going to use some existing designs that are proven to work.

The Z-axis will be copied from the Mostly Printed CNC from It uses 3/4 inch conduit, screw drive and standard nema 76oz motor.

Next we are going to mount that to the same system that was used by the shaper to move the CNC (see image posted by Most of the parts around this will be cut out of the 6x8 plywood

The steppers will be driven by an mega and ramps 1.4 board. The SD-Card will have the full depth map file (For every x,y position a number for Z height will be specified). The mega will place the Z depth based on the bit's current location and will move the two shaper style steppers to compensate for error. If you get closer to the outside edge of the limit it will begin to pull up the z-axis to make it out in time.

Lastly how does the mega know it's location? Easy picture a draw bot but a little backwards. The 5m (16ft) of GT2 belts are wound up around a 3D printed spool that is spring loaded. It then travels around the GT2 pulley attached to the encoder then out the 3D printed guides. This end is attached to a screw. There are two opposite facing ones in the bottom left and right corners.


Place the depth map file on the SD card and insert into LCD smart controller. Screw the location tracking belts to the bottom left and right of work surface. Power on the mega and pull the Shaper to the center of the work surface. Power on the DeWalt drill (momentary power foot switch suggested). Use the LCD screen to start the cutting in the Z-axis direction and set the x,y position to 0,0. Based on your current position the router will move to the correct Z height. Just move it around until it drops into the cutting surface, try your best to follow where it is cutting. If you go out it will come up, move it around again until it drops back into the work surface. I would like for the screen to give you hinters of the next closest cut point. Cut till the job is completed.

Hopefully this all makes sense. I have a few things that are left to be figured out.

1. I suggested a 400 pulse encoder (for price $9 each) is that enough precision for a 16 tooth gt2 pulley?

2. Programming the mega to drive the LCD screen, get map from SD-card, control z-axis, and calculate coordinates

3. Auto adjust for x and y axis (v2)

4. Could the mega have trouble completing all these tasks?

5. Figure out how to convert a g-code file into a depth map file. (v3)

6. Compensate for rotation of the device.

  • 1 × 6x8 sheet 1/2 plywood ($35) this will be used to make most of the base and handles for the shaper parts
  • 2 × 400 pulse rotary encoder ($18) Used to relatively locate the part
  • 2 × 16 tooth gt2 pully ($4) Used to relatively locate the part
  • 2 × 5m gt2 belt ($12) Used to relatively locate the part
  • 1 × Arduino Mega Sainsmart ($13)

View all 17 components

  • 32bit Brain with a measureKing?

    konkop04/20/2020 at 20:45 1 comment

    New thoughts:

    So the trouble has been getting the triangulation to work. What if we upgraded the brain to a 32 bit controller like the bigTechTree SKR V1.3 with the bigTechTreeTFT35 to use as user input.

    Next I wanted a cheap way to measure the distance from two points. My new thought was to use the Measure King. So I bought one and ... not amazing. It isn't a laser range finder at all but instead a sonic range finder so that won't work. But the string measure might work as a range of 11ft (ok with me). I would need to pull it apart and find a way to read out the measurement. Take two of them and put the two cords as close to the bit and as close together as possible (to decrease wrong measurements if the device is rotated). Next Make sure the string are a straight line to some arbitrary points in the upper right and left hand corners of the work piece.

    I'll have to work on getting in the guts of a measureking. I also have an SKR on its way to my house :-).

  • Cheap Triangulation

    konkop07/12/2018 at 17:38 0 comments

    So some further thoughts. this project is mostly stuck on an efficient/cheap triangulation methods. My rotary encoders are not working :-(. I thought I fried the transistors by hooking it up wrong. But after replacing them it still doesn't work.

    More on infrastructure thoughts would be to use the same ramps board but use kilipper with a rasberry pi to control the steppers. Next put all the logic on the PI. 

    For triangulation I could use two usb mice mounted to the shaper. Then two tape measures mounted with the ends connected to the corners. Next run the tape in front of the mouse to get accurate x/y triangulation.

    Another thought would be to use two echo locators to triangulate the shapers position:

  • Can Anyone Help?

    konkop10/16/2016 at 17:12 0 comments

    So I have put together most of the electronics. I was working on the encoders first. I can wire + - A (Signal) into the +X endstop and the B into the -X signal. I have started the code but can't seem to get a good signal from the encoder.

    I was using J.Carter(of Earth) from Arduino Rotary Encoders but it was never showing a change in direction. When I changed the code to just print A or B I get a bunch of A and every once in a great while a B. It does the same for both encoders. I don't know if I have a bad encoder or not wired correctly. Anyone have any ideas?

    #include "U8glib.h"
    #include <SPI.h>
    #include <SD.h>
      #define LCD_PINS_RS 27
      #define LCD_PINS_ENABLE 29
      #define LCD_PINS_D4 37
      #define LCD_PINS_D5 35
      #define LCD_PINS_D6 33
      #define LCD_PINS_D7 31
    // Change this constructor to match your display!!!
    //U8GLIB_SH1106_128X64 u8g(LCD_PINS_D4, LCD_PINS_D5, LCD_PINS_D6, LCD_PINS_D7);
    void int0()
    void int1()
    void setup()
              //setting up encoder A
            digitalWrite(2, HIGH);
            digitalWrite(3, HIGH);
            attachInterrupt(0, int0, CHANGE);
            attachInterrupt(1, int1, CHANGE);
    void loop()

  • Started construction on ZXY axis

    konkop09/27/2016 at 14:31 0 comments

    I have build the Z, X and Y axis for the shaper. The z is build using the mostly printed CNC Z. It is probably too tall but I wasn't certain what the max height would be so I will wait till then to trim it. As for the X and Y it was made out of wood and primitive tools (jig saw, router and sander) so it is not a very tight fit but it will work for a proof of concept. Next I need to 3D print the encoder mounts as well and the X and Y motor mounts.

  • Parts Ordered

    konkop09/20/2016 at 18:05 0 comments

    I ordered all of the parts I needed from the standard bay (cause I'm cheap). I should have all the parts I need here in 5 days to 6 weeks. I have finished 3D printing most of the parts I need for the Z setup borrowed from the Mostly Printed CNC. When I get the chance I was going to start building the shaper like x-y auto correction system.

  • Using mice for X Y offset

    konkop09/14/2016 at 18:38 0 comments

    In further investigation (thanks to PointyOintment's suggestion) it may be simpler to use multiple PS2 mice instead of the belts. You can do deadest reckoning with two mice read and But this always assumes you haven't cut large lines out of your working surface. This means many mice would have to be used and ignore the extreame values.

  • X Y calculations

    konkop09/13/2016 at 12:09 0 comments

    It looks like the XY calculations are quite easy. Its called forward kinematics and can be seen calculated here Next I have to do interrupts on the encoder rotation to make sure I get every tick. For version 0 I think I'm going to put the encoders on the work surface and weights on the belt like a draw bot for simplicity. Then all I need is power to the drill and z stepper. For v0 the electronics will be kept off the shaper and won't have auto correct .

  • Further Problems

    konkop09/12/2016 at 18:31 0 comments

    It was brought to my attention that a large problem with the encoder input for positioning is that when a person rotates the router it looks like a move left or right instead of a rotate. To keep the simplicity there I would like to keep the encoder for positioning, so here are my thoughts. Move the GT2 belts to the bottom. Make sure there is nothing to get in the way of them for 180 degrees. Find some way to move the first point that the belt touches on the shaper as close to the bit as possible. Then they need to do their best to keep it straight.

  • Removed Raspberry PI

    konkop09/12/2016 at 18:26 0 comments

    I know we all love our Raspberry PI but it was simply adding complexity to feed data to the mega. Further searching I was able to find an LCD smart display with SD card. I can simply read the data I need from the SD card and the complexity is all gone. I also add the feature of a screen for user feedback as well as user input.

View all 9 project logs

Enjoy this project?



Andrei MORARU wrote 10/14/2017 at 01:15 point


Awesome project.

Have you tried these ideas :

 - a computer vision solution using a mehtod similar to their encoded sticking paper ? (a nice feature would be to be able to attach your smartphone to the mobile CNC and use it as they do as an augmented reality / input device - even if I putting an expensive smartphone near a vibration source is a bit risky)

 - using at least two optical mouse diodes to measure precise translation and rotation ? (even if as mentioned before it won't be a reliable solution on a dusted surface)

links :

  Are you sure? yes | no

jongscx wrote 05/10/2017 at 13:31 point

Have you thought of using String pots for this?  You could adapt Retracting key chains and attach your encoders to that to make DIY Versions.

  Are you sure? yes | no

konkop wrote 05/10/2017 at 13:51 point

Thats what I was thinking but had never heard of these. I would like them to be mounted on the machine, then pulled and hooked on to a screw. I would be a lot farther on the project but I can't get my arduino to read my encoder accurately. I can plug the encoder right into the ramps endstops but even if I turn it slowly I don't get very many counts :(. Would I be able to use an Arduino and get an fine resolution and accurate count on it?

  Are you sure? yes | no

konkop wrote 05/10/2017 at 14:59 point

wow those are expensive like $150 a piece. That compared to two 400 pulse rotary encoder and two 5m GT2 belts. That comes out to $30. But of course the $30 version isn't working :-P.

  Are you sure? yes | no

Loki wrote 03/03/2017 at 11:45 point

Have you considered skipping to more modern positioning tech?  The Vive Lighthouse devices provide ~2mm positional accuracy at room level, and the sensor devices are both simple and relatively easy to build.  A complete breakdown of the tech can be found at - but for hacking on it, a vive controller could essentially be mounted to the shaper, then software can provide the known offset to the controller.

As the lighthouse tech gives 3D positioning, this even opens up the possibility of engraving on curved surfaces; run the shaper over the surface without milling to map it, then warp the cutting image to the surface, then mill it.

You should be able to get away with just one lighthouse base station + vive locator, ~$180 for both, iirc.  Then you can drop the base station anywhere, run the shaper around your work piece to calibrate your position, and start cutting.

I'm potentially interested in working on this...

  Are you sure? yes | no

PointyOintment wrote 09/12/2016 at 20:54 point

Location tracking by using belts with encoders seems a bit complicated to me. (And encoders are almost always lower-resolution than you want, unless you use either really expensive or magnetic ones, but in this application, geared with the belts, that might not be a problem.) I'd start with optical mouse sensors if I was designing this.

  Are you sure? yes | no

konkop wrote 09/12/2016 at 21:05 point

That thought crossed my mind but with a surface that is getting cut up by a bit and dust everywhere I needed something away from the surface to measure the distance. I have no idea how shaper origin keeps the dust from disabling their camera. Maybe you have to have a vacuum on theirs. I really wanted to put the gt2 pulley right on the encoder for rigidity and simplicity. Maybe this one would be enough to do the job at 400 P/R and $9

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates