Dremel CNC
I made a small desktop 3 axis CNC milling machine during the xmas holidays in 2008 and completed it sometime in Jan 2009. The project was inspired by another homemade desktop CNC project and motivated by boredom. The cutting area is about the size of an A4 paper.
Hardware
The general work area is shown in Figure 1. The milling machine was made from common parts that can be found at Bunnings (Australia) or automotive stores. I’m using stepper motors from an old laser jet printer, a computer power supply for 12V output, an off the shelf stepper motor controller from the US, and a Dremel 300 as the milling tool.
Figure 2 shows the milling machine from the front.
Figure 3 shows how the threaded rod is connected to the stepper motor using a rubber hose for the coupling. I stole this idea from the Easy Desktop CNC mill mentioned in the intro, pretty clever.
The threaded rod and nut are mounted to the base using plumbing copper brackets, as shown in Figure 4. There was a noticeable backlash using one nut so I used two nuts. Originally, I used a plastic base but the compression due to the bracket on the nut caused a slight bulge and created an uneven working surface. I replaced it with a 4mm thick aluminium sheet.
Figure 5 shows the ball bearing support for the x-axis rod. The ball bearing is needed because the long rod wobbles quite significantly, where as the other axis are short enough to remain rigid. I used a piece of rubber hose to make a tight fitting between the rod and ball bearing. I appeared to have misaligned the bracket slightly in this picture.
The parallel port stepper motor controller is shown in Figure 6. I used 3 EasyDriver controllers for each motor. These controllers really are easy (like shooting fish in a barrel). They accept step and direction as input, 4 wire output for the bipolar stepper motor and 2 input for power (from 7V to 30V). On the board is an adjustable current limiter, which means you don’t need to build a separate voltage regulator for the stepper motor. The controller is set to 1/8 micro stepping by default. The controller works without a heatsink but I added two fans to make sure they run cool. There was a time when the motors were acting funny and jittering randomly on a hot day. I didn’t figure out if it was the motor controller or power supply. The two holes for the fan was cut using the milling machine but due to the plastic melting they came out pretty rough
Figure 7 shows some of the Dremel tool bits I have been experimenting with. Some have been burnt due to some rather ‘ambitious’ milling of the MDF wood.
Figure 8 shows Tux (Linux penguin mascot) engraved on wood, one of my first tests.
Software
- Ubuntu LiveCD with EMC2
- QCAD (for doing 2D designs)
- dxf2gcode (for converting the 2D designs to G-CODE used by EMC2)
The milling machine was controlled using EMC2 (Enhanced Machine Controller). It runs on the Linux platform and requires a real-time kernel to be installed. I used their LiveCD (Ubuntu) and did a fresh install on to the desktop computer. I found that turning off non-essentials like the soundcard improved the latency a bit. For doing 2D designs I used QCAD. To convert the DXF format from QCAD to G-CODE (used by EMC2) I used dxf2gcode. The workflow can be summarised as
Design in QCAD -> dxf2gcode -> EMC2 -> Final milled product
I decided to test my machine out by choosing to make a gift for a friend’s birthday. I wanted to engrave a happy birthday message plus an anime character (Luffy) from One Piece, which appears to be her favourite anime because she would not stop raving about it. I wanted the engraving to be able to stand upright so would require a separate base to be milled. The first step was to hunt around the net for a suitable image. I chose the following image below
The next step was to import the image into QCAD and trace over it and add the happy birthday message as shown below.
Having designed the engraving, I now needed to make the cut out shape. I chose a simple design with some curves to test how well the machine can handle them. This piece will be mounted onto an oval wood piece.
The design is now converted to G-CODE using dxf2gcode. I made two separate files for the engraving and cut out shape because dxf2gcode doesn’t handle different layers individually (engraving and cut out shape).
Here is the final product. The hardest part was milling the MDF wood! MDF is quite tough and harsh on the tool bits and creates a lot of dust. I had to wear a dust mask and have a vacuum cleaner nearby to clean the mess it left. The oval piece had to be cut across multiple passes. I initially used 2mm per depth pass but found it would leave burn marks on the wood and tool. 1mm was found to work well but not perfect. The problem was mainly due to MDF dust accumulating in the cut grooves. I either need to mount a vacuum hose or air gun near the Dremel to remove the dust. I sanded the oval shape down using the Dremel sanding bit but didn’t come out even, Would have been better to use sandpaper.
I should have also chosen a tool bit with a round head because the one I used, which had a somewhat pointy tip, left white residue marks in the grooves. Other than the problems mentioned, the results are not bad for a first project.











Really Cool! Awesome work man!
Thanks!
HI,
very good project!!
Here my question for you: do you need only easy driver for send Gcode from Parallel port to Bipolar steppers or do you need on another chipset as arduino ?
For power can i use PC POWER 230V – 12V/5V or i need to build a dedicated power station ?
Thank a lot
Pool
Hi,
You only need the EasyDriver, don’t need an extra chip. Just make sure it’s a desktop computer and not a laptop.
A PC Power should be fine. In fact, I originally used a PC power and it seems to work fine.
Hi, i wanted to know, using just easy driver, how did u conect it to the pc? usb port or parallel port?.
Hi
I used the parallel port.
Hello nice project!!!
I am currently collecting info and materials to build my own table top cnc. My steppers are much smaller than yours. I noticed that your machine does not have any bearings at the gantry or on any other moving surfaces.
My question is; How fluidly does this set up work? my machine will most likely have 3x the cutting surface of yours and need to maneuver heavier materials i.e 3/4″ MDF.
I was using that CNC to cut mostly acrylic/perspex and PVC plastic. The thickest piece I’ve cut is 20mm (close to 3/4″) perspex at about 300x200mm. The work piece is not that heavy so the motors had no problem. The friction between the perspex/aluminium and aluminium/aluminium is very minimal because of the U-channels used, and smoothness.
I’m not sure I would go for a stepper motor smaller than what I used for a larger cutting surface. But that’s a guess. Maybe you can make a generic motor mount hole so you can swap in a bigger one if needed
Hi bro,
I’m from Vietnam, I wanna setup a DIY CNC machine like this, I intend to choose Linux EMC2 as a software, could you please provide me some comment or document on how to setup the environment. like yours.
Thank you bro
Hi,
It’s been a long time but I remember it wasn’t difficult. I downloaded the ISO from http://www.linuxcnc.org/index.php/english/download.
Followed their instructions on setting up the machine, was straight forward enough. I used a parallel port, so the the only tricky part was knowing exactly which pin controlled what. The second part was to calibrate the stepper motors eg. degrees per step and maximum rotation speed. And that’s it. I don’t have any safety switches on my CNC so didn’t have to setup for that.
Hi. I am experimenting with a similar CNC router. Could you tell me which bit you are using to cut MDF and plastic at which RPM and what feedrate? A few tests I’ve made I ended up burning my bits
Thanks.
I mostly worked on perspex and PVC plastic. Those two plastic I found I could run at 15,000 RPM and the highest feedrate my machine could do, which was something like 300mm / minute (not that fast). This was using a 2 flute end mill. However, there was a time when I was cutting a hole inside a pre-made plastic box to house electronic stuff. I have no idea what type of plastic it was and remember seeing it melt quite easily.
Thanks, what z-depth you were using for each passage on the plastics?
1mm