CNC PCB milling

Anyway, once I do get the firmware upgraded and it wired up, what's the best way to start testing it? Do I need to learn GRBL as execuval seems to imply, or are there some simple tests I can run? I imagine some kind of calibration would be the need step, but I haven't read that far ahead because there's nothing to read (well, haven't googled it out yet either).

Anyway, once I do get the firmware upgraded and it wired up, what's the best way to start testing it? Do I need to learn GRBL as execuval seems to imply, or are there some simple tests I can run? I imagine some kind of calibration would be the need step, but I haven't read that far ahead because there's nothing to read (well, haven't googled it out yet either).

Thanks! That provided exactly what I was looking for. I ran the demo with no etching bit installed, and at first both X and Y seemed to be working, but the adapter coupling eventually loosened on both of them to the point where there was no longer X and Y movement. I've re-tightened tem, and it's working again. I hope it lasts.

Thanks! That provided exactly what I was looking for. I ran the demo with no etching bit installed, and at first both X and Y seemed to be working, but the adapter coupling eventually loosened on both of them to the point where there was no longer X and Y movement. I've re-tightened tem, and it's working again. I hope it lasts.

Not sure where I should go next from here though.

so, as this machine does not have limit switches installed, it is your responsibility to move the gantry to a position, from where you would like to start the job and which provides enough space for each direction movement. usually you have to set a relative zero at the given starting point.

what is next? did you adjusted the stepper drivers? if not, then do it (I shared the link above). this is necessary to be sure, that the steppers will be powered with enough current (so they will be powerful enough for the given speed related movement and to provide enough force) or will not be overdriven.

then, I would say try to engrave the chilipeppr logo to a soft material first, have some experience with the cnc.
then, as I mentioned, discover the flatcam tool and try to create an isolation routing job for a test pcb.
I already mentioned my confirmed settings for the given jobs (edge / hole milling, isolation routing).
you should sacrifice some boards for your experience

I don't see any plugs on the woodpecker board that are designated for connecting to a touch plate. So, I guess it's configured using the woodpecker header pins? How is that best set up?

By the way, after re-tightening the set-screws on the adapters used to connect the step-motors to the screw rods, they seem to be holding now and not slipping loose. I take it back, one of them just came loose again.

Thinking about it now, an alternative might be to grind one side of the threaded rod flat in the region where it fits into the adapter. That would match the concept of the motor rotor, where that has already been done.

Ideally I would notch it in just the region where the set screw makes contact. I suppose I could do that with a Dremel.

Investigating now, I see that the adapter came loose on the motor rotor also. So, I think locktite will be a must.

@andrew for first go for a single touch probing instead of a whole autoleveling session.
just for testing purposes, start the touch probing from a higher position and touch the gnd wire directly to the spindle's tool to see whether it stops or not. if not, you should stop it manually from the gui, otherwise it could break the tool.
if everything works well (so you proved that you connections to the pins and the belonging settings are ok), then you can run the simple touch probes or the autoleveling as well.

@neverdie one more think I forgot to mention: after I assembled the cnc, I used a little wd40 across each axis and moved each from one end to another. it helped for smooth and "barrier-free" movements.

Is anyone using a threadlocker on the set screws to keep this from happening?

For one that will probably buy the same CNC could you document how you solve this with a picture?

OK, here is what I'm doing in pictures. I'm applying blue 242 Loctite:
to the threads of the 4 set screws on the coupler:
That should keep them from loosening up after they are screwed into position. Note, you have at most 10 minutes of working time before it sets.

I applied it to the motor set screws first and let it set:
Note: I used rare earth magnets to help secure the set screw to the allen wrench. That insures that the set screw doesn't drop off and disappear somewhere on the floor. Works great.

The couplers are made from anodized aluminum, so I'm not sure how well the loctite will work on them. However, I think it will still work, as the set screws themselves are steel.

@neverdie I used to use nail varnish on threads as it was just as effective, even though it annoyed the partner whose nail varnish it was. It is not the bond between the metals which is that important, it is adding resistance between the threads to prevent unscrewing, were it to completely bond, you would shear the bolt before it was removed, which is a whole lot of trouble....

@neverdie I used to use nail varnish on threads as it was just as effective, even though it annoyed the partner whose nail varnish it was. It is not the bond between the metals which is that important, it is adding resistance between the threads to prevent unscrewing, were it to completely bond, you would shear the bolt before it was removed, which is a whole lot of trouble....

Does nail varnish cure anaerobically in the presence of metal ions? That seems to be much of the theory behind thread lockers.

I thought nail varnish cured by evaporation.

In any case, I wiped off the excess loctite, because it might never dry (or, at least, take a long while to do so).

I think the loctite is likely to work, since Andrew had success without anything but torquing it down hard. On the other hand, maybe his is threaded differently than what came in my kit.

@neverdie Torquing down correctly normally prevents threads unwinding, but have seen bolts come loose with vibration on occasion. Only ever used loctite or equivalent on cylinder head bolts, particularly alloy heads, it never actually sets solid and is oil etc resistant.
Although lacquer or plastic paints do harden, as a plastic filler between the threads, it increases contact friction, yet will shear to permit removal of the bolt when necessary. Typical threads do not fully engage metal to metal, the clearance is essential to allow the nut to be run on the bolt.
Loctite is fine if you have it already, nail varnish works fine for me in non oily scenarios.

The strange thing is that the Chilipeppr demo seems to mill at z=0.000. So, if I were to try to etch the pattern for real, I would have to "zero" z at an actual z value of, say, z=-0.5 or something (whatever depth I wanted it to etch at).

Is that normal?

Anyhow, I've been through multiple trial iterations with no bit installed and with the spindle disabled, and during all that the X and Y couplers have not come loose. So, I think that the Locktite has lived up to its name and solved the problem I was having earlier.

The strange thing is that the Chilipeppr demo seems to mill at z=0.000. So, if I were to try to etch the pattern for real, I would have to "zero" z at an actual z value of, say, z=-0.5 or something (whatever depth I wanted it to etch at).

Is that normal?

Anyhow, I've been through multiple trial iterations with no bit installed and with the spindle disabled, and during all that the X and Y couplers have not come loose. So, I think that the Locktite has lived up to its name and solved the problem I was having earlier.

yes, the chilipeppr demo works like this. but keep in mind, that for "real" isolation milling, the milling depth which you used during the g code generation will be calculate from the relative z zero, so in that case you really have to set z0 to the pcb surface.

Disaster. Out of the blue, it suddenly just stopped working. Now I can't get it to spin the spindle or move in any x, y, or z direction. Gcode appears to be sent to it, and it does respond to me if I send it a '$" through the Chilipeppr console window. Just no movement whatsoever.

@neverdie oh if you have a chance to power the cnc from a variable current power supply, then check the current it drains by starting from low to higher current. if it eats lot, maybe there is a short somewhere. you could also try to open the power supply and find a fuse.
good luck!

Powering it from a variable power supply, it apparently works. Here's the etching on a piece of plywood:
I watched the current being drawn, and it appeared to always be below 1 amp. The variable power supply can supply up to 5 amps, so no problem there as far as I can see.

The etching that it did was a bit weird: deep cuts in the inside diameter of the P's, but only faint cuts just outside. The R was barely even touched at all. The surface doesn't feel sufficiently non-flat to account for that.

After thinking about it, my hypothesis is that the feedrate is too high. I have it set to 1 in ChilliPeppr. I think maybe it comes down rapidly to the programmed height, but if it meets resistance then it skips some motor steps. Since it's open loop, it doesn't know. Then it dwells at that depth until it picks up the bit and relocates. I'll try a slower feedrate and see if it makes a difference.

Also, what is the preferred way to tighten the ER11 chuck? So far, I did it just by hand, which seems to have been good enough. However, maybe a better practice is to give it a 1/4 turn further tightening using wrenches after that? How are others here approaching that?

Also, what is the preferred way to tighten the ER11 chuck? So far, I did it just by hand, which seems to have been good enough. However, maybe a better way is to give it a 1/4 turn further tightening using wrenches after that? How are others here approaching that?

+1 for the wrench, mostly because of vibrations that could unscrew it. No need to pull a muscle on it as it is tapered and has big contact surface

@neverdie If it is anyway similar to a Router, it should have a locking pin to hold the spindle, or a second nut against which you tighten the collet. Do not overtighten, just enough to bite the shaft, otherwise you either damage the shaft or more seriously shatter the collet, it should be just enough to be a firm clamp to ensure grip, the collet will do the rest.
Not a user of these CNCs but I would guess the same principles apply... Just my 2c...

Also, I'm not going to dwell on etching wood . It was just my first attempt at etching anything, and I thought wood might be a little softer.

I suppose the next step is to have a go at auto-leveling on a PCB rather than perfect the machine's etching of plywood. Indeed, PCB's may turn out to be easier, as the resistance to downward motion (especially after auto-levelling) should be more uniform.

Meh, I think I know what happened now. If the z-axis ever skips a step in downward motion--for whatever reason--then the rest of the etching is screwed from that point forward, because the higher height then becomes the new "zero" for the entire remainder of the etching since the depth control is completely open loop. So, the first spot in the sequence that isn't at proper depth would be where the error occurred, creating a persistence of the error from that point forward in the etching sequence.

@neverdie If the material is parallel to the cutting plane, the cut depth should be constant. Might I suggest doing same experiment using auto-level.... Wood is easier on the bits, plywood less so but still less abrasive than FR4...

Is there an auto-level that works on wood? I thought it assumed a conductive surface, like on a blank copper PCB, to facilitate the auto-leveling mapping process, so that it knows when contact is made and therefore the height at each touch point.

@neverdie I should explain my thinking... I do not think your wood experiment made sense. You assume your sensors and the wood are parallel, this need not be true. Plywood is generally less than 0.3mm out of true, even if you could zero the 4 corners with foil or similar it would give you a plane on which to see if the original trial was misleading.

Well, further progress will have to wait until I can move the CNC to the garage or outdoors, so that I don't fill the house with toxic fiberglass particles (Thank you @executivul for pointing that out, and sorry I butchered your name earlier. I didn't mean to.)

@neverdie no problem, I got used to it since I'm using such a weird nickname, the good part is it's always free to register on any forum so all I have to remember is the pass.

I'm really excited about wet milling, it's freezing down here and not having to have windows open for the modded vacuum cleaner it's a treat. The trick is to use a solution with higher surface tension then water, but not too thick or it will gather around the mill as a small tornado and start splashing everywhere. You can use soap, shampoo, dishwash, carwash, etc. Start at 1:1 water mix and add more water if it tends to gather around the spinning bit. It's better to pour it slowly on the board and spread with your finger (use a syringe) than to spray it as not to make foam. Also try using a clear shampoo to better see what's milling below the liquid. A piece of flat plastic, acrylic, lexan, plexiglas, whatever, doublesided taped to the wood spoilboard is a must unless you leave a large margin between the actual milling and pcb edge liquid will spill and will swell the wood. Have a roll of paper sheets nearby and a garbage bag open. Always use glasses when operating the machine. I made a "fence" out of some polycarbonate sheet to contain any eventual splashes which occur mostly when drilling through the board, normal engraving behaves and doesn't splash at all.

@neverdie I have been kind of following this topic, but don't have a CNC mill, but wouldn't the thickness of the copper clad on the board be your depth?

Makes sense to me. Well, doing that it would be 0.01mm. But since this isn't a perfect process, it likely needs some added depth to guarantee it's removed. The effective tool width gets wider the deeper you cut, so in some sense I suppose there's that as an added constraint on how deep you can cut before it becomes more than 6 mil isolation. We could try to arrive at an answer analytically from first principles only, but I thought it might be easier to just ask what depth others who are doing this successfully are using.

@neverdie you should use one depth, regardless of the trace width. for me 0.05mm worked, see my shared settings above. you should decide the isolation width, this is the main property for the given config, but you should stick for one milling depth only. if the requires isolation width is bigger than the tool width at a given depth, then it will use multiple rounds to reach the given width, but still, with one milling depth.

I'm stuck. I converted my gerber to gcode using flatcam, and imported it into Chilipeppr:
On the one hand, it seems to have gotten the dimensioning right, as indicated by the Y1.48in and X1.43in. However, the grid that it's showing is out of sync with that. Each square on the grid is 5mm. It's as though Chilipeppr thinks the entire design fits easily inside a 5mm square, and so when I attempt to do the autoleveling, it comes out completely wrong.

I'm stuck. I converted my gerber to gcode using flatcam, and imported it into Chilipeppr:
On the one hand, it seems to have gotten the dimensioning right, as indicated by the Y1.48in and X1.43in. However, the grid that it's showing is out of sync with that. Each square on the grid is 5mm. It's as though Chilipeppr thinks the entire design fits easily inside a 5mm square, and so when I attempt to do the autoleveling, it comes out completely wrong.

you can mark the zero point in the pcb designer tool before you export the gergbel, or in flatcam, during the post processing. if you do not define it, then maybe the given zero point could have some "offset" to the effective design. it is not problem, but it could make your life easier if your zero is e.g. at the pcb's corner.
if you don't want to update the files, then in chilipeppr you can update the probe area to not start from 0,0 but from a given offset.

@neverdie
Just for future reference i would use a duff cutter for autolevelling then change to a good cutter to cut the job after resetting the z0.
It is so easy to smash the front of an engraving cutter when using this method for autolevelling as the machine takes a little time to stop after touching the pcb.
Just my advice anyway

Argh. I ran the job, and the first cut went great. All subsequent cuts though didn't penetrate the surface:
Afterward, when I checked the zero on z, I found that it was off by 0.049. That explains it, since the cut-depth was 0.05.

However, what's telling is that it obliterated the traces on either side of a 6 mil separation:
This is how it should look instead:

So, what happened?

My current hypothesis: the first cutting sheared 0.049mm off the tip of the blade, making it wider than it should be. Then, after re-zeroing, the wider blade cut too wide as it cut the traces for the solder jumper.

Is that reasonable, or is there a better hypothesis?

If it's true, then what do I do about it? Perhaps use a higher quality bit than the freebie that came with the kit?

Actually, I'm not even sure what the dimensions were on the freebie. It wasn't labeled. Perhaps it was too wide to begin with.

Well, to explore this more, I think I'll create a test board consisting purely of a few solder jumpers. That way I can put the focus directly on the 6 mil issue and won't be wasting time on etching that's unrelated to that.

Doing just a single solder jumper, with the same bit, and autoleveling every 1mm, the result is:
which is pretty close, actually. Looks like maybe the bit is a little too wide, or else there's runout which is making it appear wider than it actually is.

Actually, I'm not even sure what the dimensions were on the freebie. It wasn't labeled. Perhaps it was too wide to begin with.

Maybe this is where your problem lies.
How did you write the g-code without knowing?
Too many variables here wich could give you these results.
The bigger tracks,Are they measuring the correct width with a vernier after you have cut them?