Description

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.

Details

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.

Project Logs

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.

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.

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:

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.

The first real pcb made with the mill is for a tiny robot. It includes such milling challenges as 0603 smd resistors and SOT-23 transistors, as well as a narrow trace running between two 2.45mm pitch holes with pads.

As intended, this shows the limits of precision with this tool. It is certainly far from perfect, and there are some almost fatal bits of sloppyness, but the board is perfectly functional. All of the scratches and cuts came from trying to cut the board out from a larger piece and from running a small screwdriver along the cuts to clear debris. I quickly tested for continuity between all neighboring parts, but everything is properly isolated.

First, here is the intended pattern which was made in Inkscape after laying things out in Eagle.

And here is the result

Also, I have uploaded the Arduino code here. It is very similar to the code for the plotter, but altered to work with the new z-axis and such.

From here I would like to find a way to improve precision, but I doubt it will get a lot better. That's OK. This is functional and thus much better than nothing. On the other hand, I might do as well by drawing the pattern in ink and then cutting it by hand with a dremel. But where's the fun in that.

Side note: This is a good x,y platform for thin, flat objects that don't impose large side loads. I'm thinking cnc glass engraving, laser etching, ... any other ideas?

Not perfect, of course, but considering the quality and cost of the tool I am completely satisfied with this result. This precision should be plenty for the through-hole and larger smd circuits I build. I am overjoyed that I finally have a chemical free way to make pcbs at home.

Thanks to the people who gave me feedback and followed this project. It's not over yet, though. I still need to finalize schematics and clean the code before I post them here, but that will come in the next few days I hope. Also, I need to produce an actual pcb. I'm thinking a small celebratory robot.

Before you get too excited, that first cut was just in dense cardboard, not the real thing. But we'll get to that shortly.

As I mentioned before, I really needed a new z-axis design, so I went to the place where I can really concentrate and piece things together in my mind, the hardware store. I eventually decided on the following:

I think the picture is pretty self explanatory, but I'll try to describe it. Note that everything is temporarily tacked together with hot glue. The idea is that the final device will be held together with a much more permanent and strong adhesive, but you know, sometimes I get lazy and the hot glue stays if it works. The top motor is a 7.5degree/step, 4-winding, unipolar stepper that I probably got from a fax machine. It is coupled via a 3mm screw and long nut to the cutting motor. Both of these run on 12V.

The bottom motor is snugly fixed between four bushings that ride up and down 6mm bolts. I was really careful with positioning, so there is almost no lateral play in the motor, and the bushings slide with ease.

The white structure is made from a cutting board pulled out of the garbage. I love working with that stuff. If you ever find such a chunk of plastic, don't pass it up.

The stepper is driven with a convenient darlington array with built in clamping diodes. I don't remember what I pulled that out of, but it was a lucky find. Here is the updated controller (I'll post schematics once they are finalized):

Notice that I have now switched to a stand alone microcontroller, but it still makes use of Arduino. The smaller chip is the darlington array.

What is the cost of this new z-axis? The only things I had to buy were some of the screws, nuts and bushings. It came to 200 yen (about $2).

And here it is in place:

And finally, the part you've all been waiting for. I just had to give it a test drive to see what happens, so I stuck some dense cardboard in it and cut a little 1cm square thing. Everything worked smoothly and the result looks great. Now if i can get a similar result on an actual pcb I will be filled with joy.

Before you glance at the pictures and laugh at my poor engineering skills, read the log.

I trimmed several bits of plastic off the print head carriage , made an adapter out of a piece of plastic cutting board from the garbage, and tacked everything together with a little hot glue to test the fit. It all went together well, and you can see that the rollers nicely accept a 1.6mm protoboard, even with the blue plastic backing sheet.

But then I took a look at what I had built and started pushing things around. I started having doubts. There is a little too much slop and I don't know how well the z-axis motor and gear set will perform. It works perfectly for moving a pen across some paper, but there will be significant forces on the bit.

It's time to rethink this part. I am currently pondering some other designs. A bolt attached to a stepper and a long nut attached to the cutting motor would give me the strength and z-axis precision I need. How about a piece of PVC slightly sanded and lubed sliding inside a PVC coupler, with the motor glued in the moving piece and the other held rigid. That would take care of lateral forces. I can think of a lot of other setups that may work better, but I'm sticking to minimal money and no fancy tools.

As always, tell me what you think of these ideas and share your own ideas.

I started with a 2mm cheap drill bit and turned it into something a little more appropriate. The only tool I used for this was an angle grinder with a cutoff wheel. I intended to use a small file to finish it, but the angle grinder did such a nice job, I didn't bother.

First I shortened it to about 15mm in length. Then I carefully spun the bit between my fingers while holding it against the wheel at an angle. If you try this, be sure to wear gloves since your fingers are so close to the spinning death wheel(I don't have to mention eye protection, right? That one's obvious I hope). Anyway, that gave me the taper and the result looked similar to the original bit end. I was planning on a steeper taper, but I stopped at this point. Then I stuck the bit in a vice and very carefully gave it a gentle touch with the grinder to shape the flutes(Is that what they're called?) into something that would be better for this purpose. I think. I'm not an expert. here are some pictures:

The finished bit

Compared to the original bit end.

Attached to the motor.

Of course all of this work would be for nothing if it doesn't do the job. To test it I found a junk pcb with a wide area of copper. Holding the spinning motor carefully in my hands, I tried to cut a small line. The result looks sloppy because I was just holding the motor in my shaky hands while trying to maintain a consistent depth. It works! It cuts right through the copper and into the substrate without noticeable strain on the motor.

It's capable of fairly precise drawing. Certainly precise enough for a simple pcb. The z-axis, on the other hand, is just a dc motor that I pulse on for a few hundred ms. I may need more precise control for milling, so I might swap it for a similar dvd player part that uses a stepper motor. But I've been wondering, since I'm only working with one type of material with consistent thickness, and I'm only trying to mill off a very thin layer of copper, I really only need two z-axis positions: up and down. The up position doesn't even need to be precise at all. I could, perhaps, just set a tightly adjustable stop for the down position and run the tool down until it hits the stop. What do you think?

The next thought is the spindle and bit. I have a whole box full of DC motors from various junk. I picked out a 12V one that spins quickly with decent torque. I even had a little coupler, a sleeve with two set screws, that snugly fits the shaft and a 2mm drill bit. I tried it out by drilling some plastic. It works as long as I don't put a ton of pressure on it. Of course a drill bit is far too long and not designed for this sort of thing. I have an angle grinder and files. Could I chop the bit down to a short piece and carefully shape the end into about a 60 degree taper? I know the metal quality will be a significant factor, but it doesn't hurt to experiment with dollar store drill bits.

Oh, I had another idea. Rather than a milling bit, how about an abrasive "diamond" bit with a tiny ball end. I've seen those in the dollar store too. If I mounted it at an angle, it could grind away the copper. Hmm... It doesn't sound too precise, but it's an idea.

You might try epoxying a washer to the cutting board to reduce wear caused by the bit. Or if you can find a metal grommet the right size, you could press the barrel half through the cutting board. Both of these would cause metal on metal friction so you would want to lube prior (and maybe during) each use. Great project!

Thanks. I agree that a laser would be much more suitable for this machine than a cutter. I actually put a CD burner laser on it and burned some pictures on paper. It worked great and had very fine resolution. Too bad I didn't take pictures.

Taking another look at your cut, you have a backlash problem. You can see that in the cuts that cause the bit to approach the target line from different directions as in the area of the 4 holes on the left mid way up. You can measure backlash. You'll either need to fix the backlash in software, hardware, or increase the size of the pattern so the amount of backlash doesn't cause the traces to contact one another. Best is to take care of the hardware making it as backlash free as possible. Backlash will make a routed circle oval in shape. The source of the backlash is usually based the way threads are made. There must be a certain amount of play or every nut wouldn't fit every bolt. This looseness is usually not a problem because nuts are tightened which takes up the slack. In your case you don't tighten the nuts, you let them rattle along the threaded rod. You need to provide a system that takes out the slack as much as possible or you need to use it to route patterns where the backlash is less than the allowable error in the pattern.

You also have a problem with lack of rigidity causing the bit to migrate into and follow a previous cut as in the cut at the top. If you are using the motor shaft as the holder for the cutter, you'll probably need to more rigidly confine the cutter. You'll need a bearing of some sort so the cutter is held in the right position and cannot wander.

There's another problem with the above. As the cutter encounters different forces, the slackness in the system allows the cutter to shift so instead of taking a tiny consistent bite each time, sometimes it takes a little bite and sometimes it takes a much bigger bite. That causes the cutter to encounter different forces as it cuts and it contributes to wobble. It also affects the speed of the cutter. In extreme cases it can cause the cutter to bind.

Thank you for the advice. I don't have any plans to make major improvements to this project, but the information is useful for anyone who wants to try it. Some time I hope to make a better mill with a larger budget, but this was just a fun, educational project.

Chip control: Vacuum or blow chips as you cut. If blowing, a fan from a copier (long squirrel cage fan, 24V but most will run at 12V) produces a lot of air. If vacuuming, you'll likely need a collar around the cutter.

Lack of precision: I'd try the cut in several passes instead of just the one. That will decrease the load on the milling bit. With less load, hopefully there'll be less error. More passes should average the error. If it is backlash in the system, you'll need to try to eliminate it. If it is backlash from threads, I've had good luck passing threaded rods through a die which cleans them up. Then if using standard nuts, run a tap through them, you can slit them and tighten, you can cut them in half and use a clamp type arrangement to eliminate play, or you can use a medium strength threadlocker, to bed the inside of the nut. Repeatedly running the rod back and forth will make it turn fairly easily. Other mechanisms, cut nuts from self lubricating plastic (UHMW polyethylene or use "Delrin"). Finally you can use two plastic nuts on the threaded bar, using counterpressure between the nuts to take up the slack.

Thanks. It is also an option for cutting threaded rod. Slitting two nuts then clamping the nuts in a vise so the nuts are compressed both holds the rod securely and protects the threads. Sometimes rod held between hardwood blocks in a vise will turn with strong rotational torque as in cleaning up threads with a die, but the compressed slitted nuts don't allow the rod to turn. While on the subject, a threaded rod connector (just a long nut) can be cut in half lengthways with a hack saw, then can be used as a ghetto micrometer. A 1/4-20 threaded rod with a nut can be indexed to better than 1/12 turn so 1/240 inch, or 0.004 inch. I sometimes use one on a jig for my table saw to precisely set the fence, which isn't bad for under $5 in parts.

you've inspired me to use an old printer for same project. if debris is still an issue I was thinking a battery powered solder pump would suck up or even cheaper a $6 12v tire pump modified to blow debris away from rollers/track hooked up to your desktop power supply. Also maybe rubberbands sized to fit around PCB/work piece & track rollers could help in keeping work piece movement to a minimum while respecting the monetary limitations you've set for this awesome project (maybe not:). Thank you for posting this project!

Thanks. I hope you can build something cool and post your own project. The pump idea might help. I've heard lots of good tips here, but I've kind of set this project aside to focus on new ones. If I ever need to use this to make pcbs again I'll try improving it a bit.

is it possible to replace the drilling bit with a burning laser? this cancels the need for motor at the writing/milling head..it will also avoid mechanical slippage you were talking about..I am not good in code writing otherwise I would give it a run...

Yes, you could do that and it would make things much easier. Unfortunately such a laser would cost a whole lot more than I'm willing to spend on this. You should try it. The code would be much simpler since you wouldn't need to think about driving a Z-axis stepper.

very impressive work. I have two printer-scanner in great condition. I just don t wanna spend money on the ink. So I guess building this is great. Yet I do not think title of 10$ is true. it is more than that.

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.

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.

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.

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.

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.

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.

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.