CNC Circuit Mill Discussion

From Open Source Ecology
Jump to: navigation, search

CNC Circuit Mill
   Home  |  Research & Development  |  Bill of Materials  |  Manufacturing Instructions  |  User's Manual  |  User Reviews    CNC Circuit Mill.png


From an email conversation with Christian Starkjohann:



The machine can move at ca. 15 to 20 mm/s, but for milling PCBs, I use only ca. 5 mm/s. You can compute how long it takes to mill a PCB from that. If you like, I can mail you the control software, this software has an emulation mode where you can find out how long a particular sequence of G-code commands takes.

In practice: Things like the UV dosimeter take half an hour to mill. The electronics for the machine itself takes almost 2 hours per layer and board (two boards, each with two layers). But there's plenty of room for improvements. The PCB to Gcode algorithm is far from perfect.

You can replicate it, of course. I have eagle schematics and PCBs (unfortunately dual layer) for the electronics. There are some parametric drawings for mechanical components, but this part is not yet complete. If you start building such a thing, I can continue the drawings...

Note, though, that the Z axis needs improvement. It's a bit too elastic now, if there is a force on the mill (not when milling PCBs, but when cutting boards, engraving etc), it may bend by half a millimeter. I have a sketch for a better version, but that has not been built and tested.

Regarding the mills: I have never seen one wear off, all have been damaged before that happens. My spindle motor (a Dremel) is not well balanced and if it goes off-center, the mill breaks. Also if I forget to configure the backlash compensation, the initial acceleration may be so high that the mill breaks when it starts moving. All this happens easily with epoxy boards. The mills should last "forever" on hard paper boards.


The total time of milling + soldering vs. building on breadboard/stripboard is probably in the same order of magnitude. The big advantage of milling is that you can do something else while the mill works and that you can be reasonably sure that the circuit matches the schematics. You don't have to debug wiring errors.

The machine is good for prototyping, but not for production, not even for small scale production. The competing technology for production is a photo/etching process. The advantage of the photo/etching process is that it takes the same time, regardless of complexity of the board(s). For production, you can combine several boards to increase complexity so that the photo/etching process wins. For prototyping, you always want to build only one board. And a low complexity board (such as the UV dosimeter) is ready in 40 minutes.

You can use the same mechanics for the RepRap and the PCB milling, and time is not an issue for those who have little money. If you can break down the designs to single sided boards (even with a lot of wire bridges), you cut the milling time in half.

Stripboard is not an option. Somebody who is not experienced with electronics won't be able to do the debugging. And there IS debugging. Count the connections, then multiply by the human error rate (probably around 1%) and you have the number of expected errors.

On throughholes: Is this machine capable of doing throughholes with CNC, or do you do that manually? Do you think it makes sense to do it CNC, or does manual drilling typically suffice?

It's definitely capable of that, of course! And it DOES make sense. Even for etched boards, I would prefer to do the drilling on the CNC. It may be an option to drill all holes in 0.8 mm with the machine and then drill only a couple of them to the desired diameter by hand. This saves the tool change procedure which must be done manually.

More Discussion on RepRap

To convert RepRap to milling - Note that milling requires a force, contrary to plastic extrusion. Even a 1 mm diameter tool may produce 50 N force when milling. PCB milling produces almost no force, though, since the milling depth is only ~ 0.2 mm and the effective diameter is in the same order of magnitude.

If you go slowly on RepRap, do you think this would still allow for any meanigful PCB milling, or is that impractical?

I think it should work, even with "normal speed". But only experiments can tell you. I have no idea how much the actual force is when some micrometers of copper are milled.

Construction Notes

Q: Did you use simple threaded rod and tensioned nuts, not ball screws, on all the axes? What kind of lifetime are you expecting on your rod/nut system, and do you oil that?

A: I've used simple threaded rods (the more expensive ones, somewhat harder steel) and ordinary long nuts (not spring loaded). We have a reversal backlash between 0.1 and 0.2 mm and the software compensates for that. Don't know what lifetime this will give, but the components are cheap and easy to change, so I don't really care. I have to use oil, though, which is a bit of a mess. I used normal bicycle oil and that works great. Did not try teflon spray, but I tried silicon oil which failed miserably.

Q: What was your materials breakdown for the control electronics, motors, structure, mechanical drive, and router? What is the expected router lifetime?

A: I've attached the Eagle files for the control electronics. You should be able to generate a list form that. The motors are the cheapest NEMA17 motors I could get. I don't have a good documentation for the mechanical parts (yet). If you want, I can make one. The mechanics consists of the threaded rods, the steel profiles, the MDF groundplane, some aluminum profiles, teflon bearings and the skater ball bearings. (available upon request)

The Dremel I used was inherited from my father. It's lifetime is long over, I guess. At least it behaves this way.... Seriously speaking: The router is the critical part. A Dremel works, but won't last very long. Maybe a brushless motor for a model racing car can be used, but I have not checked that out.


Q: Tell me more about the software that you are using for generating images and processing them for backlash. Are you using LinuxCNC?

A: No, I'm software developer. I write my own software :-) Well, not entirely: The PCB software I use is EAGLE. And there's a freeware plugin "pcb-gcode" which exports the PCB as G-code milling instructions. It's not efficient (it should be possible to write something which mills 3 times faster), but at least it works.

Q: I don't understand this point. Don't you have to slow down the router anyway, so you don't break bits?

A: The G-Code runs through my software which converts it to a stream of parameters for quadratic motion equations (speed + acceleration in 3 axes). This conversion includes (among other things) the backlash compensation. The stream of parameters is sent over USB and interpreted by the motor controller. The motor controller computes the desired motor positions as a function of time and generates pulse widths for the L298 drivers accordingly. This includes microstepping (dividing one motor step of 1.8 degrees into sub-steps).

Q: Ok. How effective is the backlash compensation? Can you get it basically perfect by software compensation? Is this a practical route that can be applied for high precision, such as, .02 mm (~1/1000 inch)? Is the limit the irregularities in the threaded rod, or step size of motors? I am wondering how effective it would be to produce a dirt-cheap cnc system by using software compensation with threaded rod. What are the limits to that?

A: Yes and no. I can see a difference in backlash compensation values of 0.12 and 0.15 mm. However, when milling hard material (~ 50 N force), the deviation due to the machine's elasticity is almost 1 mm. And there's also a deviation due to wobbling of the threaded rods (this could be improved, though).

Q: Is the limit the irregularities in the threaded rod, or step size of motors?

A: It's the wobbling of the rods (they are not exactly straight and the nuts don't fasten them perpendicularly on the bearings).

Q: I am wondering how effective it would be to produce a dirt-cheap cnc system by using software compensation with threaded rod. What are the limits to that?

A: The precision depends on what you mean by that term. If you want to run to a point, you can be quite precise (I guess several micrometers). However, if you want to DO something there (produce some force), you need a more stable design. I have some ideas for improving the Z axis stability, but for a really stable machine you need big profiles for all axes, not just 2 cm x 2 cm steel.

Comparison to RepRap Mendel

Q: Do you think that a RepRap Mendel-like triangular design would be good for an improved prototype of your mill?

A: The Mendel design is built for high Z range. Most mills have only a small range for Z as a concession to stability. The problem with my design is not the stability of the frame corner points, which would benefit from diagonal elements, but the stability in the middle of the slide. If you need stability in the middle of a rod, you need a big and stable rod. Unless, of course, you add diagonal elements which grow and shrink in order to accommodate the moving carriage, e.g. with an additional motor...

Peer Review

From Leo Dearden

I have the following concerns with the design as I remember it:

  • I didn't see any way to preload the linear guides. The rails aren't precision ground. If there is no way to preload the contact between the ralils and the ball races, then the ball races can't follow the variations in the width of the rails, and won't grip the rails without slop. You could address this by adding a bolt that presses the carridges of opposing bearings together through a large rubber washer.
  • The linear drives appear to be studding (allthread) and normal nuts. This is a common minimum cost linear drive, but has both large backlash and relatively limited mechanical lifespan. You can address the backlash with a pair of nuts loaded against each other, though that will increase friction and reduce mechanical lifespan. Lifespan may not matter much since replacement nuts and rods are very cheap. Friction can be reduced by using plenty of good grease and keeping it clean.
  • The axis guides are overconstrained (which is normal practice in machine tool design where rigidity is needed). In order to work adequately, without looseness or binding, the machine will have to be quite precisely made (eg: the frame will have to flex by whatever the parallelism error between each pair guide rails is). You could sacrifice some stiffness and get a more precise and easily built machine by switching to a kinematitcally constrained set of guides for each axis (like the RepRap Mendel guides). This would be easier if you used round bar stock for the rails, rather than square.

Hopefully, these concerns would prove to be unimportant in practice, or adequately easy to overcome.

Bitmap PCB to G-code for CNC