Does this project spark your interest?

Become a member to follow this project and don't miss any updates

PCB mill for under $10

pcb mill built from garbage using basic hand tools and little money

Similar projects worth following

This project was created on 03/04/2014 and last updated a year ago.

A gradually improving attempt to make a useful pcb mill out of a printer and other assorted garbage, with a minimal budget and no fancy tools. It works!, but let's see how much better it can be.

NOTE: This project is gradually improving. It is fully functional at this point, but it could be better.

It started as a pen plotter based on the entrails of a printer. It uses a pen to draw paths from a vector graphics file(SVG file). I wanted to make it do something that I couldn't do by hand, so I fed it a complicated image, a pcb layout. I then thought "Why can't I replace the pen with a small router and make something truly useful?" So I'm setting out to do just that.

There are numerous DIY pcb mills out there, but their router bits alone cost more than the planned budget of this project. It's not that I can't afford it, I just want to see if this is possible. I'm open to ideas and criticism, so let me know what you think.

  • 1 × Printer skeleton from a long dead Epson printer
  • 1 × TD62003AP darlington array for the z-axis motor
  • 1 × Motor driver circuitry from the same printer as the skeleton
  • 1 × stepper motor 4-winding unipolar 12V, for z-axis
  • 1 × DC motor - 12V for spinning the bit
  • 1 × tact switches for manually setting z-axis
  • 1 × ATMega 328-P
  • 1 × PC power supply
  • 1 × 0.8mm drill bit the dollar store variety. designed for hand held router
  • 1 × various wires, screws, resistors, bits of metal See the schematics and pictures for details

See all components

Project logs
  • Some problems and limitations

    11 months ago • 6 comments

    Although this mill has produced some good results, it has also made some garbage. It would be naive of me to expect this mix of dumpster parts to perform as well or reliably as a proper mill. I don't want to make this sound too discouraging, but I'll try to describe some of the weak points of this project.

    The X and Y axes behave exactly as they did in the printer. One motor moves the print head along a shaft using a toothed belt, while the other turns a roller that moves the object via friction. I have not had any real problems with the print head axis, but the paper axis is not as reliable. There were no problems when I was simply drawing on nice, flat paper. When milling, however, I produce lots of chips, dust and bumps in the surface. Usually these are able to go through the rollers just fine, but sometimes something gets caught and the board slips slightly. Unfortunately, even a slight shift can completely mess up the result. Here is a picture of a pcb for which there was a little slip that caused the drilled holes to be off. As a result, this pcb is no longer functional.

    I also had a problem with friction wearing out the plastic "bearing" that guides the bit. It is not actually a bearing, but simply a tight hole in the plastic base of the Z-axis. While milling parts for the stargate project, the mill had to work for rather long periods of time. After a while I noticed that the bit had enlarged the hole in the plastic. It probably melted slightly from friction. I started applying a little oil each time I use it, but the enlarged hole has thrown the precision way off. Of course this could be fixed by replacing the plastic part and remembering to oil it.

    A third problem is with cut depth. At this point I have to calibrate the cut depth each time by eye. I've looked at zeroing methods used on other designs, but they would not work here due to slop in the Z-axis. I'm usually able to eyeball a reasonable depth, but sometimes it is just a little too shallow, causing poor electrical isolation, or too deep, causing too much loading on the bit that results in poor precision.

    This project has been very educational and a ton of fun. I'm pleased with the way it has turned out, considering the cost and parts used. But with these problems, pcb production has been a long and wasteful process. I'm looking for an alternative and these are some of the options I'm looking at:

    • A properly designed and funded mill.
    • Chemical etching, which I am trying to avoid.
    • Buying them from a fab house. This gives the best result, but lacks fun, education and the feeling of hacking.
    • An entirely new experimental method. This is by far the most difficult and educational way. If I can do it, maybe I'll enter it in the hackaday contest.

    Do you have any other ideas?

  • A new use and big software updates

    a year ago • 0 comments

    It is always satisfying to find more uses for projects. I guess that's because so many of them just end up on a shelf collecting dust, not that that will likely happen to this tool.

    I am working on a stargate for the sci-fi contest (shameless plug for our entry) and was faced with the task of carving lots of tiny details into thin, flat plastic. What an ideal task for this mill. I drew up some svg images of the stargate details and tried milling them into some 1.2mm polypropylene sheet. Here are some of the results.

    It was a great success. It also led to several significant software changes listed below.

    • Cut depth is adjustable on the fly via the processing sketch.
    • All important parameters on the controller can be set via processing.
    • The math was rewritten to solve some accuracy bugs and be more efficient.

    The updated code is in the usual places:

  • Accuracy improvement and drilling capability

    a year ago • 2 comments

    I was not very impressed with the sloppyness, so I decided to redesign the Z-axis to reduce lateral play in the bit. I also thought it would be great if I could drill holes at the same time. I spent another $2 and got some new threded rod and a 0.8mm bit designed for a hand held router(dremel type thing).

    The bit now travels through a snug, but not tight, hole in two layers of 5mm HDPE. Yes, that would be the cutting board again. This takes the side loading off of the motor and holds the bit much more steadily.

    The new bit is much longer and needs more travel for drilling, so I lengthened the z-axis with some new threaded rod. Other than the new bit, new plate with hole for the bit, and new threaded rod, the hardware is pretty much the same.

    The software needed some upgrades to handle drilling. Since there is no single point object in the SVG language, I just made tiny line segments with length below some threshold value. The code interprets these tiny segments as drilling locations and sends a drill command to the arduino. The updated code is here:

    SVGMill.ino - the arduino code

    SVGReader2.pde - the processing code

    And here is the result. I made the pcb a bit more traditional in style this time. The result is still far from perfect, and there is one trace that is just barely surviving and probably needs a good solder coat, but it is far more precise than the last version. Oh, and it has holes automatically drilled. That's a huge improvement. First is the ideal image, then the actual result.

View all 9 project logs


Emil wrote 2 months ago point

Very interesting, can you give me a little help so i can build one my self.

Are you sure? [yes] / [no]

shlonkin wrote 2 months ago point

Perhaps. If you have any questions, I'd be happy to try answering them.

Are you sure? [yes] / [no]

axf33480 wrote 2 months ago point

superbe proroger trais baux travaille

Are you sure? [yes] / [no]

esot.eric.wazhung wrote 3 months ago point

Wow, I'm really impressed with the precision you're getting with this setup. The z-axis took me quite a while to figure-out, but now that I get it... it's awesome. I think I might even be able to build that with the tools and junk I've got sitting-around.

Sounds like you've resolved most of the slippage and vertical-alignment problems, but I'm sure you're plenty-apt to figure out some fix... just stand in a hardware-store for a while :) And let us know when you do!

I hope you'll keep this project up, even if you decide to use another method for your PCB designs.

Are you sure? [yes] / [no]

shlonkin wrote 3 months ago point

Thanks for the encouraging words. Sadly I've been taking an extended leave from hacking due to family and work issues, but I'll be back. I will.

Are you sure? [yes] / [no]

Hacker404 wrote 3 months ago point

I think the low spindle motor speed to axis motor speed ratio is causing most of your problems. Using a bearing at the lower end of the bit and a proper "V" bit would ease most of this but ultimately you will either have to speed up the spindle or slow down the axises. A second pressure roller for the feed would also be a solution.

Are you sure? [yes] / [no]

counter.culture wrote 3 months ago point

skull for re-purposing old tech. when the financial collapse and the zomb-pocalypse comes, you will be a four star general.

Are you sure? [yes] / [no]

Rebelj12a wrote 5 months ago point
I like this, never thought of using an old printer... I have an old printer... which is fantastic....

Ok so a few questions. You are limiting this to a PCB board? Just to save time etching? Making sure, if you wanted to do a full mill, customizing a 3d printer, I have alot of tips I could send your way.

Otherwise I cant see from the pictures.... how are you controlling the Z axis?

Ok nevermind saw the post below.... alright... well i guess do you have video of it working? Still not quite understanding how the Zaxis is working in this.

Anyways sometihng to look at offhand (just saw your comment about target budget)... You could try using the parts to make the z axis on the plate plane. Yes it would limit drilling area depending on the plane possibly, however It woul allow you to fix the motor directly to something solid... More stability in cutting from the motor itself instead of having it move. It might slow down cut time and youd have to configure a Zaxis bed, but... its an idea especially since you are just making shallow cuts here for pcb board.

Are you sure? [yes] / [no]

shlonkin wrote 5 months ago point
Thanks for the comment. Of course it would be nice to make a regular mill, but that is so far beyond the capability of the hardware. It can barely make a pcb with reasonable accuracy. Really it is more suited to drawing with a pen. The Z axis works by turning a screw into a long nut. The screw is attached to a stepper motor and the nut is attached to the spindle.
Your Z axis bed idea is interesting and might work well, but would require a lot more effort. If I were hoping to make this much better I would ditch the printer frame and make something from scratch like everyone else, but that would be throwing out the whole purpose of this project.

Are you sure? [yes] / [no]

Rebelj12a wrote 5 months ago point
I honestly think most of the stability issues you are having is possibly both the plastic part on the bottom and the fact that you dont have a secondary support rod on the other side of the drilling platform.

You really need both to make sure it doesn't slip while drilling. That extra point of stability does alot of good.

The closer the bit is to the motor the better. Less play overall. Also different bit maybe? Something with a wider base possibly... That way it can be set shallower on the pcb and still have enough torque to cut decently.

Also, have you regreased the rods? Non mineral bearing grease. That might help.

Are you sure? [yes] / [no]

Valentin Heinitz wrote 6 months ago point
It's a cool idea for using threaded bar attached directly to the shaft of the stepper and using distance piece for controlling Z-movement! The Z-range should be sufficient for PCB-mill indeed! It took me a while to understand how your Z-movement works.

How did you attach the drill to the DC-motor shaft?

Concerning the depth of Z-milling I would recommend to calibrate the Z-level. One should define zero Z-position on 3 points building a right triangle. So you could calculate later zhe zero Z-level for any other X/Y point. I do it like this while micro-scoping the surface of large areas, where the object is placed not necessarily orthogonally to the Z-axis of the microscope.

Are you sure? [yes] / [no]

shlonkin wrote 6 months ago point
Thanks for the interest. The drill is attached to the shaft using a sleeve with set screws. It's the thicker aluminum cylinder between the motor and bit.
My main problem with Z-level is that the material is not on a rigid surface. There is a significant amount of flex in the roller mechanism that supports it. There is also a bit of vertical play in the Z axis. Fortunately orthogonality is not much of a problem, so I can get pretty consistent cuts across the board.

Are you sure? [yes] / [no]

Mitchell Lowther wrote 7 months ago point
For the stabilization of the drill bit, I recommend a small bearing fitted into a small wooden piece/panel (instead of the small white plastic you mention here:

To prevent the outer rim of the bearing from spinning, with a sander, dremel or file, flatten one, two or four sides (not entirely) enough so that a small set-screw or bolt can be used to secure it through the side of the wooden block. If you wish to skip the bolts altogether, then level the bearing(s) as indicated and cut a small square in the center of the thin wooden panel the exact size of the outer shape of the squared or altered bearing. The flat sides will not spin as the hole is not round in the wood. This will prevent it from spinning on the circumference of the bearing yet will allow the internal ring to still spin nicely ... securing the bit from wobble. It will also allow it to gain strength to resist lateral movement when cutting.

I have a vinyl cutter (nothing fancy at all) and last night I disassembled it to maintain the moving pieces, replace nylon consumables and lubricate bearings. I saw some cool things they've done with bearings to secure rotating shafts and drive mechanisms while also providing the stability needed to ensure accurate cutting.

Hope this helps... The bearings I speak of come in various sizes and can be gotten online fairly cheaply. I would recommend a local supplier though since you will want to try it out on the bit(s) shaft first.

Neat project... Love it. All the best to you.

Are you sure? [yes] / [no]

shlonkin wrote 7 months ago point
Thanks. I wanted to do just what you suggest, but I was having trouble sourcing a bearing with a usable size hole, so I settled for the tight fitting plastic hole. I think the bearing idea would really improve things as long as the hole and bit size were just right. Of course this would be possible if I were willing to break the 10 dollar target budget.

Are you sure? [yes] / [no]

andyhull wrote 8 months ago point
Cheap drill bits... try ...
.. when I was in my teens, making PCBs I used to ask the local dentist for them... used, but autoclaved... probably all sorts of healh and safety law prohibits that these days.

Are you sure? [yes] / [no]

Paulo Castro wrote 8 months ago point
It's a nice project, but PCB machining is not the best option for making circuit boards. I have a big CNC mill and the accuracy it`s not a the real problem. PCB boards are not uniform, the copper thickness is variable. It's almost impossible to make smooth thin paths.
After giving up, tried chemical etching and it was faster and easier.

Are you sure? [yes] / [no]

shlonkin wrote 8 months ago 1 point
Yeah. Chemical etching is a good way to do it. Coincidentally, this machine is actually well suited to boards that are slightly not uniform because the cut depth is not so rigidly set. It depends somewhat on the force of the bit on the board. Anyway, It's fun to try something different. It's edumacational too.

Are you sure? [yes] / [no]

tamberg wrote 9 months ago point
Great project. Reminds me of Woelab's W.Afate 3D printer made from trash that was on display at Fab10 ( and

Are you sure? [yes] / [no]

Jibmo wrote 9 months ago point
this website has some cheap used but apparently still good pcb router/drill bits:
never ordered from there but I think I may have found the link somewhere else here on hackaday.

Are you sure? [yes] / [no]

shlonkin wrote 9 months ago point
Never seen that site before. Thanks for the link.

Are you sure? [yes] / [no]

samern wrote 9 months ago point
Deburring might be resolved if you could mount something behind your surface to polish the surface so that as you move forward, you remove the burrs. A vacuum or blower mounted on the same arm can keep the debris to a minimum (I would vacuum instead of blow because this way you eliminate blown parts from just being redistributed somewhere else on the surface). Of course a 'polishing' add-on like this would need its own motor and only address surface burrs.

Are you sure? [yes] / [no]

shlonkin wrote 9 months ago point
hmm. That would probably work. I doubt I'll put that much more effort into it, but thanks for the idea.

Are you sure? [yes] / [no]

kris wrote 9 months ago point
What you think, to use this hack diferent way... there is a paint for repairing heating on car windshields.
Maybe it will be good idea to print pcb ?
Problem is in resistance of paint, in heating it is ok but not on pcb...

got an idea....
maby "printing" with glue all of the drawing, and then on the paths pours a copper powder.
or maybe high amperage short circuit pulses can make little holes in copper.
Two electrodes close to each other, completed with a mechanical pencil graphite in order to prevent the electrodes from welding

Are you sure? [yes] / [no]

kris wrote 9 months ago point
Instead of a drill, you can use a cutter to a Dremel, which ends with ball serrated like a file.

Are you sure? [yes] / [no]

Frenchcanadianflyfishing wrote 9 months ago point
A proper cutting tool would go a long way in improving not only the cut appearance, but would leave less burr and most likely would reduce side loading. But where to get them cheap, cheap, cheap... I wish I knew. What about experimenting with the drill bit cutting angles?

Are you sure? [yes] / [no]

shlonkin wrote 9 months ago 1 point
That's the first thing I would invest in if I really wanted to improve this tool. I can see the cut quality degrading as the bit wears. I can sharpen it and play with angles, but this is a 0.8mm bit being shaped with an angle grinder. I'm amazed it came out as well as it did.
Thanks for the input.

Are you sure? [yes] / [no]

regiscruzbr wrote 9 months ago point
An authentic hack...

Are you sure? [yes] / [no]

Deadbot1 wrote 9 months ago point
Have you considered either a blower to sweep away debris or a vacum to suck them up and prevent the chips from getting to the rollers?

Are you sure? [yes] / [no]

shlonkin wrote 9 months ago point
That would help with the loose debris. I also had issues with burrs around the cuts. I might try sticking a vacuum near it next time I get around to using it.

Are you sure? [yes] / [no]

vishnubob wrote 10 months ago point
Hi, great project. Your results look really promising. I was thinking, have you thought about swapping in a fine tipped sharpie in substitution for the router, and electro-eteching the results?

Are you sure? [yes] / [no]

shlonkin wrote 10 months ago point
Electro-etching is something I want to try, but do you think ink from a marker would be a sufficient insulator? Have you seen anyone try it? Maybe I'll have to experiment.

Are you sure? [yes] / [no]

laith.tariq wrote 11 months ago point
i salvaged 6 axis from dead inkjet printers from different brands i am trying to operate though i wonder if we can hack their control boards to control the new axis for say a 3d printer from junk printers?!

Are you sure? [yes] / [no]

shlonkin wrote 11 months ago 1 point
If you have the control boards it is easy to find the motor driving circuits. Then you need to find a datasheet for the driver ICs and solder some wires in the right spots. If you are trying to hack the controllers on the boards to do what you want, that is A LOT more work and probably not worth the time it would take.

The useful parts would be motors, precision rods and bushings, belts and pulleys, and the motor driver circuits. If you get something working, let us know.

Are you sure? [yes] / [no]

CaptainSerious wrote a year ago point
This is a great project. I am very interested in watching it progress. I like the new z-axis design for it's simplicity and small size. Having milled my own boards I can say that any looseness in the spindle or backlash in the xy portion will result in poor boards. The z-axis looks like it could be a little loose but your cardboard test cut looks surprisingly good.

Keep up the good work.

Are you sure? [yes] / [no]

Similar projects