Self replicating CNC for 194 (or more) countries

Creating a design for a CNC that is easy to replicate and suitable for diverse drives.

Similar projects worth following
I have created multiple CNC machines using low tech tools and commonly available materials that were replicated in many countries of this planet. I was often asked what motors or electronics could be used instead of those in the templates I have published, especially in places with no access to 24h delivery. Furthermore people want a fully functional 3 axis machine rather than the servo driven third axis I was using in some designs:
1. Composed of commonly available materials
2. Suitable for diverse drive technologies
3. Build with low tech tools (so that you can replicate it by yourself, thus self replicating)
4. Can be used to build another copy of that machine (self replicating)
5. USB with a commonly available microcontroller

Follow new updates of this machine series in my 2018 Hackaday Prize submission:

The project is not a straight forward construction of a CNC machine. It's making people understand where the weak points are and how things work in general. The series of machines will end with a CNC that can process aluminium and eventually even harder materials.

The first machine of the 3.x series is made of cardboard and paperclips:

CNC v3.0 on YouTube

At the end of the video you can see a prototype of the mechanics using 3mm fibreboard. The work area is around 20x20cm which is the largest type of machine I have (currently) in mind.

The second machine is a DIY printer:

The video is about linear drives and motion sensing with the printer at the end.

CNC v3.1, the DIY printer on YouTube

I have made a deal with a local printer repair shop: I can get devices that are definitely not worth repairing for free. The DIY printer is mostly made of old printer parts.

Citizen scientist

During the Citizen Scientist section of this year's HackadayPrize I was evaluating what kind of motion sensing is best for the first CNC router. I will use the "classic" approach and mount a sensor wheel on the thread of the linear drive. I got a lot of feedback (especially on YouTube) and there are options available that I will test some later when the mechanics runs.


To my mind, a CNC router is the mother of automation. I will build the mechanics during this section of the HackadayPrize that lasts until August 22nd. A lot of manual work comes before automation starts...

Assistive technology

My personal assistant made it's first run very close to the deadline of this year's HackadayPrize.

CNC v3.2 lives!

More machines will follow...


Framework of the CNC router, designed with OpenSCAD. Version 2016-10-11

application/x-openscad - 85.57 kB - 10/11/2016 at 14:52


Parts list, circuit and software. Keep in mind that it all is in an experimental state!

application/zip - 1.60 MB - 10/11/2016 at 14:52


  • 20 × Steel square tubes 20x20x2000mm, 2mm wall thickness 100,-€
  • 10 × Flat iron bars 20x4x2000mm 30,-€
  • 400 × Screws M6x10mm 25,-€ Preferably with round head for hex or torx tools
  • 100 × Nuts M6 10,-€
  • 400 × Split washers M6 10,-€

View all 16 components

  • Development continues in the 2018 Hackaday Prize

    Norbert Heinz03/12/2018 at 21:58 0 comments

    My CNC v3.2.1 that came to life during the Hackaday Prize 2016 works fine for me, however there are still improvements in my mind. To give the development of this machine a new push I have added a new project for this year's Hackaday Prize:

    Please follow that project to stay up to day about changes of this machine series.

    I will declare this project being finished even if it isn't, but I must create a new project to participate in the 2018 Hackaday Prize with the ideas I have in mind for my CNC series.

  • Another test run formed WinchBot 1.5

    Norbert Heinz12/04/2017 at 15:45 0 comments

    I did some minor modifications on the coolant flow and wrote a couple of code lines to speed up the machine. As a test run I have cut the parts for an new WinchBot v1.5:

  • My little Helper

    Norbert Heinz05/22/2017 at 07:11 0 comments

    Many square tubes have to be cut and drilled for the mechanics of CNC v3.2. To make things easier for me I have build a digital ruler:

    I will create a second frame with improved design, soon. With this little helper, I can hopefully save some time.

    The second frame is not only needed to make the machine better, but also to write a detailed build instruction. The existing documentation is just a very rough one...

  • My first commercial CNC "router"

    Norbert Heinz03/28/2017 at 19:00 1 comment

    From a sponsor I got a very cheap CNC machine. It's sold as CNC engraver (I guess because the mechanics is too weak to really route through a material...).

    My part of the deal was to record a review video and I agreed to do so because:

    -I was curious what this machine can do.

    -It is a compact device with an Arduino clone running grbl, thus I can use the machine to test the software of my CNC 3.2 in my office instead of doing coding in my uncomfortable workshop.

    -Cheap machines are meant to do experiments and to improve the design - tinkering at it's best!

    -Compact, cheap machines are great to get young people in touch with computer controlled devices without being afraid they could break expensive parts.

    Here's the video (more a general introduction in CAM than a classic review):

    The output of my CNC v3.2 or 2.x is clearly better, but let's see what simple modifications can lift this engraver to a higher level of machining...

  • Machine evolution formed WinchBot

    Norbert Heinz03/02/2017 at 10:21 0 comments

    As a long test run I used CNC v3.2.1 to carve parts from 5mm polycarbonate needed to build my WinchBot:

    I was grinding a lot of solid plastics to dust with a 1.5mm two flutes miller:

    The machine performed very well, but the filter system definitely needs a redesign. I will use a reservoir outsides the bowl, so I can remove chips even while the machine is running.

  • Stay cool

    Norbert Heinz12/23/2016 at 15:13 0 comments

    I have overhauled the coolant flow of CNC v3.2:

    The next big thing is to upgrade the software so that G-code can be processed. With constant machine parameters I will be able to see what type of coolant works best.

  • Quality check of my spindle motors

    Norbert Heinz12/07/2016 at 10:53 0 comments

    I had a closer look at my spindle motors:

    Seems like buying the 400W motor from the HackadayPrize money was a bad investment. Well, let me do the mistakes, so that you finally get a build instruction that will save your money...

    Test on my CNC v3.2 will follow.

  • How the compact rotary encoder works

    Norbert Heinz11/30/2016 at 20:30 0 comments

    I have recorded a video about the working principle of my newly installed sensor wheel:

  • Electronics of CNC v3.2.1 - DC motors

    Norbert Heinz11/29/2016 at 09:38 0 comments

    In a video I am explaining in detail how to wire and check the electronics of my CNC v3.2 using DC motors and sensor discs:

    Machine evolution started!

    In the video I am cutting gears cut from acrylic plastics and an aluminium sensor wheel to improve the design of this CNC.

  • CNC v3.0 running on a Python Interpreter

    Norbert Heinz10/24/2016 at 12:06 0 comments

    Andew is teaching computing with a Raspberry Pi in South Korea and will make several copies of my CNC v3.0 with his students in November. He has finished a first prototype and converted the Arduino sketch I am using into Python to make it run on the Pi. You can get his version on Github. The advantage of using a Raspberry Pi is that you can add more comfort to the software and CNC v3.0 will become a new playground for his students.

    He gave me lots of feedback of his build process which enabled me to improve the documentation (e.g. the part numbers were not readable on black & white prints).

    The documentation of my CNC v3.2 build goes on. I am currently recording the video sequences about the electronics. In course of that part of the documentation I did improvements in machine speed. I still recommend to wait with starting your copy of that machine until I had enough time to make errors that you should not repeat during your build process. For example I have modified the sensors to avoid them from collecting all the dust on the sensor disc. The current state of the build instruction is just enough to give you an idea of how things work and it is not easy to handle for beginners. Be patient and stay tuned!

View all 28 project logs

  • 1
    Step 1

    I have created a video showing the basic steps of the build process:

    The components list, drill scheme and more documentation is part of the download package.

    The machine is still in an experimental state and so is the documentation. More videos, especially about the electronics will follow - stay tuned!

View all instructions

Enjoy this project?



Logan wrote 04/29/2016 at 20:23 point

Love your project.  For optical feedback, I saw a neat method a few years back that you may want to look into that should provide cheap absolute positioning.

  Are you sure? yes | no

Norbert Heinz wrote 04/29/2016 at 20:54 point

Really interesting positioning encoder - thanks for sharing!

  Are you sure? yes | no

Ira wrote 04/16/2016 at 14:42 point

Canon Pixma MP230 Printer and lll Canon Pixma MP*** Series Printers,

Each 1 Have 2 - 4 Photo Sensors , Each Photo Sensor Have it's Own Current Limit Resistor for the Emmiter Anode.

And 2 Geared DC Motors 12V/1.3A


DC And PhotoSensors - Canon Pixma MP230 Printer.rar | 2.508MB

P.S : I will upload full Tutorial about Salvaging these Parts and add more printers and Info.

As Norbert said: Stay Tuned !! :D

  Are you sure? yes | no

Norbert Heinz wrote 04/16/2016 at 15:40 point

Great! That's the kind of info needed to use printer parts for new projects. Currently I am soldering the electronics for a first, veeery simple CNC. After that I will start investigations of what printers give you what kind of electronics. Hope to see your tutorial soon!


  Are you sure? yes | no

Jake Little wrote 03/22/2016 at 22:31 point

Suggestion, build it modular. Integrate a mounting interface for the motors and drive systems that will allow easy replacement or upgrading. Elements like the motors would get bolted to a standard size block of wood. The wood, after the motor is in place, is bolted into position for each axis. If a motor needs to be upgraded or altered, a new plate can be made and bolted into place without using epoxy/glue/or wood screws to make this final connection. This design element should increase the machine's long-term value both as an ongoing learning platform and in terms of serviceability.

  Are you sure? yes | no

Norbert Heinz wrote 03/23/2016 at 12:23 point

Yes, making motor replacements or upgrades as easy as possible is in fact something to be considered - thanks!

  Are you sure? yes | no

Yvan256 wrote 11/30/2016 at 22:01 point

Maybe use the standard NEMA17/NEMA23 mounting holes?

  Are you sure? yes | no

leandro wrote 03/20/2016 at 12:41 point

Hi, i've just disassembled an HP Deskjet D2360, it has two dc motors with encoder disc and strip, 3 photosensors and 1 mechanical endstop. If you want i can send pictures with details.

I have another but i have to find out the model.

P.S: i follow your channel on youtube, it's really great. The projects are awesome and ich übe Deutsch auch.

  Are you sure? yes | no

Norbert Heinz wrote 03/20/2016 at 13:07 point

Yes pictures of those sensors and endstop would be great. Did you discover how to connect the photo sensors and what's the operating voltage of the DC motors?


Mach weiter so!

  Are you sure? yes | no

leandro wrote 03/20/2016 at 13:19 point

I didn't tinker with them yet. I don't  have much idea for now on how to use them, i was planning on watching your tutorials again and then give them a try when i finish my first 3d printer with dvd motors and then evolve with these.

The sensors are Agillent

If you like, you can pm me your email so i can send uou the pictures

  Are you sure? yes | no

chaosbc wrote 03/16/2016 at 11:54 point

looks  interesting ! Actually I saw your video about DC motors encoders few days ago...very clear. I will follow this project closely :-)

  Are you sure? yes | no

Norbert Heinz wrote 03/17/2016 at 06:29 point

If you start converting DC motors
into steppers by yourself, tell me about the results. It will be useful
for this project, especially if you obtain parts from broken printers,
scanners or so.

  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