CNC PCB milling


  • Hero Member

    I'm now 4 for 4 with the sneak up method. Each time it worked, so I feel comfortable I can rely on it. I now start with a cutting depth of z=-0.03, and then, as needed, I "sneak up" on the final cutting depth from there. That yields the minimum cutting depth, which in turn avoids trace obliteration.

    I'm just glad it works. πŸ™‚


  • Hero Member

    I suspect using a roller, such as the following, might help in flattening the pcb down against the waste board:
    https://www.amazon.com/POWERTEC-71010-Handle-J-Roller-Rubber/dp/B00NFAOCVU/ref=sr_1_1?ie=UTF8&qid=1515463577&sr=8-1&keywords=laminate+roller



  • @neverdie You will get nowhere near the same downward pressure... just using your hands or tapping it down with a rubber mallet is more effective imho....


  • Hero Member

    Argh, the CNC totally died again. Except this time it isn't a bad power supply. Rather, the woodpecker board is non-responsive. Looks as though I'll have to order a replacement woodpecker board. 😞


  • Hero Member


  • Hardware Contributor

    @NeverDie
    too bad! perhaps it's just power supply regulator or a fet which died?? or maybe one of the drivers, just ideas.. I don't know this board.
    Saying this because that was the first things I checked on my 3d printer Ramps board

    • changed ldo (on arduino mega) because I didn't trust clones..
    • a few fets for better rdson (on the Ramps board). then there was no more heat..
    • and of course I calibrated the steppers drivers

    Edit: argh, i misread it's non responsive..then mcu maybe.



  • @neverdie I believe the boards with a removable Arduino Nano are better, if the uC fries you can replace it without replacing the whole board.



  • @executivul similar to the RAMPS boards for 3D printers. It's all modular so if your uC or a stepper driver dies, you can just replace that one part.


  • Hero Member

    @executivul said in CNC PCB milling:

    @neverdie I believe the boards with a removable Arduino Nano are better, if the uC fries you can replace it without replacing the whole board.

    I agree that seems like a far better design, for exactly that reason. I'm hoping this isn't something that happens regularly. If the replacement dies too, then I'll make the switch.



  • @neverdie or you could just mill your own board since now you have the tools πŸ‘Œ


  • Hero Member


  • Hero Member

    @scalz said in CNC PCB milling:

    @NeverDie
    too bad! perhaps it's just power supply regulator or a fet which died?? or maybe one of the drivers, just ideas.. I don't know this board.
    Saying this because that was the first things I checked on my 3d printer Ramps board

    • changed ldo (on arduino mega) because I didn't trust clones..
    • a few fets for better rdson (on the Ramps board). then there was no more heat..
    • and of course I calibrated the steppers drivers

    Edit: argh, i misread it's non responsive..then mcu maybe.

    It's receiving power, because the red LED lights up when I connect to it. The atmega328p also appears to be receiving the characters I send to it, because there's an LED that lights very briefly when I do that. However, I'm not seeing that it is sending any characters back, and I'm guessing there would be yet another LED which would indicate that if there were. So, I'm guessing most likely the mcu is dead. I wouldn't be surprised if it got some kind of electrostatic shock when probing, since the probing circuit appears to be wired directly to one of its pins. Also, I was attaching the probe immediately prior to its dying. That makes it a prime suspect in my mind. I don't want to over-react, but for the future I may try isolating that circuit with an opto-isolator or similar to hopefully prevent a recurrence. On the face of it, the present design seems like a heartache just waiting to happen.



  • @executivul said in CNC PCB milling:

    @neverdie or you could just mill your own board since now you have the tools πŸ‘Œ

    Not if it's broke he doesn't.



  • That's the original designer of that shield :

    https://blog.protoneer.co.nz/arduino-cnc-shield/



  • @neverdie interesting.
    the LEDs are driven by the communication line itself, so if you send a character on serial to the board, then basically your data will flash the MCU's RX LED, not the MCU.

    there should be no problem at all with the touch probe solution/circuit. it equals to a simple button sensing on a common arduino's pin, it cannot cause the MCU's death, if you are connecting everything properly.


  • Hero Member

    Once I find my dragon, I'll burn a new atmega328p with the grbl 1.1 and replace the suspect atmega328p. Hopefully it will work then. If not, then I'm guessing it's the the usb-to-serial chip gone bad. Anyhow, one way or another I'll get to the bottom of it. And if I don't, a replacement board is on its way.



  • @neverdie don't stick to you missing dragon programmer. use an arduino as an isp programmer instead. also, if you burn the bootloader, next time you can use the usb connector for update.


  • Hero Member

    @andrew I found my dragon. What fuse settings should I use? I'm tenatively planning to use Arduino pro mini settings.


  • Hero Member

    I extracted the atmega328p chip that was on the woodpecker and attempted to read it. Fail. Normal voltage is 5v on a fresh chip, but it was reading only 4.8v. Also, it got quite hot. So, I think it is defective.


  • Hero Member

    I've established that the GRBL1.1f firmware assumes it's running at 16Mhz. So, I guess I'll try the following fuse settings, typically used on a 16Mhz Pro Mini:

    pro5v328.bootloader.low_fuses=0xFF  <<< same as 8 MHz
    pro5v328.bootloader.high_fuses=0xDA <<< same as 8 MHz
    pro5v328.bootloader.extended_fuses=0x05 <<< same as 8 MHz
    
    BODLEVEL = 2V7
    RSTDISBL = [ ]
    DWEN = [ ]
    SPIEN = [X]
    WDTON = [ ]
    EESAVE = [ ]
    BOOTSZ = 1024W_3C00
    BOOTRST = [X]
    CKDIV8 = [ ]
    CKOUT = [ ]
    SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_14CK_65MS
    
    EXTENDED = 0x05 (valid)
    HIGH = 0xDA (valid)
    LOW = 0xFF (valid)
    
    

  • Hero Member

    I soldered in the replacement atmega328p, after burning its firmware with GRBL 1.1f, and Bingo! That fixed it:

    Grbl 1.1f ['$' for help]
    

    Because of the upgraded firmware, I'm actually better off now than I was before. πŸ™‚


  • Hero Member

    @andrew said in CNC PCB milling:

    @neverdie I still use my default settings (see below). I re-applied these settings after I flashed the board to grbl 1.1f.
    to be honest, after I found the right parameters for the PCB milling jobs I did not went further to fine tune the CNC settings, due to the lack of time. maybe later of the year, but currently I'm more than happy with the results.

    $0=10 (step pulse, usec)
    $1=25 (step idle delay, msec)
    $2=0 (step port invert mask:00000000)
    $3=5 (dir port invert mask:00000101)
    $4=0 (step enable invert, bool)
    $5=0 (limit pins invert, bool)
    $6=0 (probe pin invert, bool)
    $10=3 (status report mask:00000011)
    $11=0.010 (junction deviation, mm)
    $12=0.002 (arc tolerance, mm)
    $13=0 (report inches, bool)
    $20=0 (soft limits, bool)
    $21=0 (hard limits, bool)
    $22=0 (homing cycle, bool)
    $23=0 (homing dir invert mask:00000000)
    $24=25.000 (homing feed, mm/min)
    $25=500.000 (homing seek, mm/min)
    $26=250 (homing debounce, msec)
    $27=1.000 (homing pull-off, mm)
    $100=800.000 (x, step/mm)
    $101=800.000 (y, step/mm)
    $102=800.000 (z, step/mm)
    $110=800.000 (x max rate, mm/min)
    $111=800.000 (y max rate, mm/min)
    $112=500.000 (z max rate, mm/min)
    $120=10.000 (x accel, mm/sec^2)
    $121=10.000 (y accel, mm/sec^2)
    $122=10.000 (z accel, mm/sec^2)
    $130=200.000 (x max travel, mm)
    $131=200.000 (y max travel, mm)
    $132=200.000 (z max travel, mm)```
    

    Looks as though GRBL1.1f has exposed some additional registers than GRBL0.9 did:

    $0=10
    $1=25
    $2=0
    $3=5
    $4=0
    $5=0
    $6=0
    $10=3
    $11=0.010
    $12=0.002
    $13=0
    $20=0
    $21=0
    $22=0
    $23=0
    $24=25.000
    $25=500.000
    $26=250
    $27=1.000
    $30=1000
    $31=0
    $32=0
    $100=800.000
    $101=800.000
    $102=800.000
    $110=800.000
    $111=800.000
    $112=500.000
    $120=10.000
    $121=10.000
    $122=10.000
    $130=200.000
    $131=200.000
    $132=200.000
    

    namely, registers 30, 31, and 32. Not sure what their values should be, or if it even matters.

    Interestingly, the stepper motors have a distinctly different sound to them when running Chilipeppr with GRBL1.1f (as contrasted with GRBL0.9).


  • Hero Member

    I am having a serious problem, though, which is that no matter whether I use Chilipeppr to jog the x-axis to the left or to the right, it always veers to the left. It never goes to the right. Y and Z seem to be working OK however.



  • @neverdie
    Is it working correctly if you just issue a G0 x10 then x-10?
    did you switch to the jpadie workspace for v1.1?
    sounds like you have a short on pin 5


  • Hero Member

    @neverdie said in CNC PCB milling:

    namely, registers 30, 31, and 32. Not sure what their values should be, or if it even matters.

    I found out what they mean:

    $30=1000.	Max spindle speed, RPM
    $31=0.	Min spindle speed, RPM
    $32=0	Laser mode, boolean
    

  • Hero Member

    @rmtucker said in CNC PCB milling:

    Is it working correctly if you just issue a G0 x10 then x-10?

    No, it goes left in both instances.

    @rmtucker said in CNC PCB milling:

    did you switch to the jpadie workspace for v1.1?

    yes



  • @neverdie sorry, I'm abroad, with very limited availability, so cannot answer too quickly.

    based on the mentioned facts it seems to me, that the X axis direction pin is sticked to one position, maybe it has a solder bridge to another pin, or vcc / gnd directly.

    alt text


  • Hero Member

    @andrew said in CNC PCB milling:

    @neverdie sorry, I'm abroad, with very limited availability, so cannot answer too quickly.

    based on the mentioned facts it seems to me, that the X axis direction pin is sticked to one position, maybe it has a solder bridge to another pin, or vcc / gnd directly.

    alt text

    Thanks! You nailed it. It turns out the solder connection on the atmega328p pin corresponding to D5 just wasn't good enough. I resoldered it, and now the X-axis works in both directions. πŸ™‚


  • Hero Member

    I'm receiving this error message now:
    0_1516478064369_crowded.png
    However, it's not obvious how to delete the files it's referring to. Anyone know how?


  • Mod

    @neverdie I haven't tried it, but if you are using Chrome you should be able to give ChiliPeppr unlimited storage through https://developer.chrome.com/extensions/declare_permissions


  • Hero Member

    Great news! Grbl1.1f makes all the difference. I tried milling at 6 mil separation using the upgraded grbl1.1f, and it works!
    0_1516480032752_eureka.jpg
    There's a huge difference between being able to evolve a single PCB design to perfect it rather than having to work on a "dumbed down" design (for a CNC or some other DIY etching process) before being able to get "the real deal" from a PCB fabricator. So, I'm very relieved that the first option now seems possible. πŸ™‚



  • @neverdie I told you since the very beginning to make the firmware upgrade! πŸ˜‰



  • @neverdie as I see from the picture, you can decrease the cutting depth. this could help you to soften the force against the carving bits and it could also help you to use faster feed rates without risking a missing step or bit damage.

    btw, what are your currently used parameters?

    also, for the best results please be sure, that when you set up the tool width in flatcam, then it is originated from the previously mentioned formula, which uses the carving bit properties (end with + angle) and the cutting depth.


  • Hero Member

    @andrew
    In this particular instance I had used a dull bit to do the autoleveling at 4mm and then switched to a Jack bit (nominal 0.1mm, 30 degrees) which I re-zeroed before starting the cutting.
    Cutting depth: 0.03
    Tool width: 0.12mm (just a guess as to the actual width)
    Feedrate:80mm

    It does seem that the actual cutting depth came out deeper than 0.03mm, so I'm not sure what's up with that. My guess is that the re-zeroing with the sharp bit came out wrong.


  • Hero Member

    @executivul said in CNC PCB milling:

    The metal piece is about 10cm long and it's left in place for the life of the wood board.

    Do you have a photo of that?

    Also, are you using double sided tape at all, or is this all that you're doing as far as holding the PCB flat against the sacrificial board?


  • Hero Member

    @andrew
    Trying to create a double sided PCB, but I am currently stuck on step 3:
    0_1516646766540_mirror.png
    I can see that it has created a mirror image which it displays, but I do not see a mirror image gerber object displayed in the project area. That's in contrast to step 4, where when I click "create alignment drill" it does create a drill file that I can see in the project area.

    Without access to a mirror image gerber object, there's nothing I can select to produce the gcode for the mirror image. So, I'm stuck on this step. How do I gain access to the mirror image gerber object? I've followed the given directions, but so far no joy.


  • Hero Member

    Apparently it doesn't produce a newly named gerber object. Instead, you just work with whatever it has in memory.



  • @neverdie

    1. I ise Scotch 665 double sided tape and lately I use a heavy item connected to the ground pin when probing. Put it on the pcb and you get the pcb face grounded. The probe pin clips to the bit. I tend to probe using the same bit used for engraving.
    2. You select the bottom layer in flatcam. I create a bounding box around it first. Then select the box, the x axis. A few alignment drill locations on one side of the flip line. Hit create aligment drills and hit mirror object which mirrors the already loaded bottom layer (GBL) object. If you watch closely you should see the tracks are mirrored. Then select the object and go on with creating iso geometry and cnc paths.

  • Hero Member

    @executivul said in CNC PCB milling:

    You select the bottom layer in flatcam. I create a bounding box around it first. Then select the box, the x axis. A few alignment drill locations on one side of the flip line. Hit create aligment drills and hit mirror object which mirrors the already loaded bottom layer (GBL) object. If you watch closely you should see the tracks are mirrored. Then select the object and go on with creating iso geometry and cnc paths.

    Yes, I think the flatcam's original instructions were faulty. It said to load both the top and bottom layer. Maybe that's fine for selecting pin alignment locations, but there should be only one layer displayed before the mirroring, or else it creates a mess.

    Also, I had thought it would create a new file for the mirrored gerber, but it doesn't. Instead, I just work with the mirrored gerber that's in memory to produce the gcode for the mirrored image. I guess that's good enough.


  • Hero Member

    I drilled the alignment holes with 0.8mm diameter. I'm using regular male header pins for the alignment, and having tried it, I think 0.8mm is really too tight. Not sure how @andrew is using 0.7mm. Different pins I guess? Anyhow, next time I'll try 0.9mm hole diameter.


  • Hero Member

    How do I mill a slot? Do I treat it the same as a regular hole, except use a routing bit rather than a drill bit when it comes time to cut the slot?


  • Hero Member

    @neverdie said in CNC PCB milling:

    How do I mill a slot? Do I treat it the same as a regular hole, except use a routing bit rather than a drill bit when it comes time to cut the slot?

    Couldn't find a good answer to this, so I'm going to approximate it by simply drilling a series of overlapping holes.

    It's needed for the micro-usb connector.


  • Hero Member

    I did the top layer, together with alignment holes, for a real FR4 PCB:
    0_1516726915446_alignment_holes.jpg
    As an experiment, I thought I would standardize on 0.9mm holes for the through-holes, via-holes, and alignment holes, so that there would be fewer tool changes. Looks like it will work, but, meh, I think I'll use smaller via holes in the future.

    Out of time for today, so I plan to etch the flip side tomorrow.



  • @neverdie 0.4-0.5mm for vias using 0.3mm silver plated "wrapping wire". 0.9 for TH and alignment holes.
    Tomorrow redo the alignment holes on the sacrificial layer so you get perfect alignment (if you don't have homing endstops, as I don't) and put the pins in and sick the pcb after that, be careful how you flip the board, I tend to use asymmetric alignment holes so I can only flip it one way (;


  • Hero Member

    Argh, it just occurred to me that I was premature in drilling the TH and via holes, because they may seriously interfere with the autoleveling when I etch the reverse side. This must be why @andrew etches the mirrored bottom side first, so that when it's flipped the top side can be etched and then drilled.


  • Hero Member

    Re-using the alignment holes already drilled, I flipped over the PCB and etched the mirrored bottom. It worked! Some of the traces are only as thick as a hair, but they all conduct and none are broken.

    I guess I'll have to flip it again in order to route the board outline. So, count that as yet another reason to start by etching the bottom first.
    0_1516739748977_bottom_mirror.jpg
    I had to autolevel at 6mm in order to dodge all the holes I had prematurely drilled, so perhaps that's why this particular etching came out so uneven.



  • @neverdie the order of the process should be the following:

    • drilling the alignment holes (through the PCB into the sacrificial layer)
    • fixing the pcb with the alignment pins/headers
    • isolation routing on the bottom layer
    • flipping the pcb
    • isolation routing on the top layer
    • drilling holes on the top layer
    • milling the pcb outline on the top layer

    as I see your results, you could use alignment holes closer to your actual design's border, but it should be definitely out of the pcb's edge + milling tool width area.

    the very thin traces are most probably caused by:

    • moving and not stable pcb
    • improperly calculated tool width
    • improper autoleveling on the given side


  • @neverdie said in CNC PCB milling:

    How do I mill a slot? Do I treat it the same as a regular hole, except use a routing bit rather than a drill bit when it comes time to cut the slot?

    you can mill holes, which are bigger than your drill bits, you can find a milling section in flat cam when you are working with the drill file.

    you can mill slots as well, for this the slot has to be designed properly in the PCB designer software. you have to draw closed shapes on e.g. the edge cuts layer, then basically you have to follow the same approach in flatcam that is used to create the edge milling cnc job, but instead of the edge lines, you have to select the slots.
    if you design it that way, then you can do both the slot and edge milling at once.



  • @neverdie said in CNC PCB milling:

    I drilled the alignment holes with 0.8mm diameter. I'm using regular male header pins for the alignment, and having tried it, I think 0.8mm is really too tight. Not sure how @andrew is using 0.7mm. Different pins I guess? Anyhow, next time I'll try 0.9mm hole diameter.

    maybe my pins also have different factors, but indeed, the given holes are pretty tight. this helps to prevent unnecessary pcb movements, which is very important if you work with 6mil traces/isolation, as a small unwanted movement could result in wasted pcb. if you work with bigger traces/clearings then it is not as important.

    I would recommend to stick to one size which is good for your selected pins and which does not let the pcb to move.


  • Hero Member

    Here's the final product:
    0_1516743797376_final.jpg
    Three of the vias are located under an SMD module, so I'll just have to try to minimize any solder bumps over them.


  • Hero Member

    Unfortunately, even a tiny solder bump prevents the module from being soldered. I would have to redesign this so that the vias are not under the module.



  • @NeverDie Just have to say, I have been following this thread for a while now and you have come a long way with this. Great job.


  • Hero Member

    Another good thing for people to know is that you can leave a single-sided blank PCB installed in the CNC and then, as the need arises, cut out additional modules from it:
    0_1516811876071_multiple.jpg

    For instance, this morning I cut this module carrier out of the above, already used, copper clad PCB:
    0_1516811948868_carrier.jpg

    So, for simple small things, it's a handy arrangement, and the incremental cost is negligible.



  • @neverdie Perhaps a clearer explanation ?


  • Hero Member

    One problem I've run into though is that the foil traces can sometimes lift up in the course of ordinary soldering. For instance, the traces connecting the second to the right pin on the Fanstel module seems to have utterly disappeared, leaving that pin unconnected:
    0_1516822629761_peel.jpg
    Maybe it's the quality of the blank PCB? I just don't know.



  • @neverdie It looks like you could potentially make those traces just a touch wider looking at the receiving end of the module. Woulld that be an option?


  • Hero Member

    @dbemowsk said in CNC PCB milling:

    Woulld that be an option?

    Maybe: I'll try a 10 degree bit and tighter autoleveling to see if that gives wider traces.



  • @neverdie i say that because in your previous pic of the board it looked like that trace was a bit narrow. Because of that it probably couldn't take the heat.


  • Hero Member

    It's funny, because I redid the soldering using an altogether new board, and it failed in exactly the same place:
    0_1516837780290_refail.jpg
    This time, though, you can actually see the copper trace has curled up away from the board.



  • @neverdie It is quite odd that that one did it and some of the others didn't on that side of the board. Looking at your previous image, the pads and traces on the side marked in green look noticeably larger than the ones marked in red. Look at the ones marked with the blue arrow. It looks like those should, or at least could be the same size. Your thru hole pads on the left for the breakout headers also look smaller than the ones on the right. Shouldn't the two sides be a mirror image of each other?
    0_1516838909597_613075bd-af72-4a92-8663-eb4012fe714a-image.png


  • Hero Member

    @dbemowsk It's because the left side of the board is higher than the righthand side, and apparently the autoleveling isn't working all that precisely.



  • @neverdie I can see that the left side looks like it cut deeper, which would cause that. I still think it is the thin traces though. Can you do any manual leveling of the bed? If so, I would attempt that. My Anet A8 3D printer, though not a CNC, is all manual leveling and I do have to check it from time to time.


  • Hero Member

    @dbemowsk said in CNC PCB milling:

    @neverdie I can see that the left side looks like it cut deeper, which would cause that. I still think it is the thin traces though. Can you do any manual leveling of the bed? If so, I would attempt that. My Anet A8 3D printer, though not a CNC, is all manual leveling and I do have to check it from time to time.

    I suppose I could shim under the sacrifice board with slips of paper to get the right height.

    I would have thought that the autoleveling would have accurately compensated though. Not sure why it isn't, especially if I'm autoleveling at 2mm spacing. Maybe this is an area where a future version of the GRBL driver will get it right.



  • @neverdie cnc milling auto leveling is not like 3d printing bed leveling.
    In 3d printing the firmware probes the bed, stores the values and automagically compensates at every move.
    In cnc milling the host control software asks the grbl to move and probe each point, then it modifies the gcode accordingly and sends that gcode to the controller which in turn just moves in the xyz coordinate system.
    Now, are you sure your gcode is updated to reflect the leveling?
    Normal flatcam gcode has a few Z-0.1 moves, the rest are only G1X...Y... (without Z) and autoleveled gcode has almost every move with z, like G1X...Y...Z.... Chilipeppr also adds some comments at the end of the lines like "new Z" or "Z mod".
    If you run the autoleveling probing but do not hit "send autoleveled gcode to workspace" in CP or "apply height map" in OpenCNCPilot the probing is useless.



  • @neverdie I just wasn't sure if your CNC had any way of manually leveling the bed. My 3D printer has screws in the 4 corners of the bed for me to manually level. I have been sticking to manual leveling on it because I have heard of people that have switched to auto-leveling that have had a number of problems. Maybe you need to switch to a different type of auto-leveling sensor.



  • @executivul Interesting. I did not know this. That is quite different.



  • @dbemowsk said in CNC PCB milling:

    @neverdie I just wasn't sure if your CNC had any way of manually leveling the bed. My 3D printer has screws in the 4 corners of the bed for me to manually level. I have been sticking to manual leveling on it because I have heard of people that have switched to auto-leveling that have had a number of problems. Maybe you need to switch to a different type of auto-leveling sensor.

    What firmware? BEST sensor ever = piezo sensor. I get 3 micron accuracy and repeatability. I use it on Marlin 1.1.8 with UBL on a corexy printer and also on a Smoothie delta.



  • @executivul I don't have a sensor yet. If I was going to switch to one I would have to flash a different firmware on my board. It is a newer version of Marlin.



  • @dbemowsk said in CNC PCB milling:

    @executivul I don't have a sensor yet. If I was going to switch to one I would have to flash a different firmware on my board. It is a newer version of Marlin.

    Marlin=Arduino (usually Mega2560). So UBL. What type of printer?



  • @executivul I do manual leveling and I rarely have to level the bed itself.



  • @neverdie for pcb milling a small height difference across the board's area could result in a big negative effect if autoleveling is not performed properly.
    I would double check your autoleveling process, on the other hand, you could also try to use bed flattening with a bigger endmill tool first, then place the pcb to the flattened area. this could help you to eliminate or decrease the cnc assembly or the sacrificial board caused roughness.

    for further details please see the following link:
    http://flatcam.org/manual/procedures.html#bed-flattening



  • @dbemowsk said in CNC PCB milling:

    @executivul I do manual leveling and I rarely have to level the bed itself.

    "If it works don't break it!"

    To end the offtopic, for anybody interested RepRap forum piezo discussion and https://www.precisionpiezo.co.uk/ the store of the guys who brought the piezo to the world, there are 1:1 clones on aliexpress, but the price is almost the same if you buy only the board and print your own holder and they provide warranty, fast shipping and are really great people so they deserve some support! (I'm not affiliated in any way to their store)

    LE. @NeverDie if you read this please look up 4-5 posts and tell me if your gcode has the autoleveling


  • Hero Member

    @executivul said in CNC PCB milling:

    if you read this please look up 4-5 posts and tell me if your gcode has the autoleveling

    yes. In Chilipeppr I send the autoleveling to the workspace, at which point it modifies the gcode.


  • Hero Member

    @andrew said in CNC PCB milling:

    @neverdie for pcb milling a small height difference across the board's area could result in a big negative effect if autoleveling is not performed properly.
    I would double check your autoleveling process, on the other hand, you could also try to use bed flattening with a bigger endmill tool first, then place the pcb to the flattened area. this could help you to eliminate or decrease the cnc assembly or the sacrificial board caused roughness.

    for further details please see the following link:
    http://flatcam.org/manual/procedures.html#bed-flattening

    What's the best type of sacrifice board to use if doing bed flattening? Regular wood, or should I stick with particle board or MDF?


  • Hero Member

    It seems the z-height only needs to be off by a small amount (say 0.02mm) to have a noticeably negative effect on the trace width.



  • @executivul said in CNC PCB milling:

    "If it works don't break it!"

    Amen to that



  • @neverdie said in CNC PCB milling:

    What's the best type of sacrifice board to use if doing bed flattening? Regular wood, or should I stick with particle board or MDF?

    I never had to try it, so I don't know. for me the regular wood seems to be logical...



  • @neverdie Sorry @andrew, wood is not a stable material, it is not inert and changes shape, it breathes if you will.

    Artificial materials such as particle board or MDF have a stable matrix, but of the two, MDF is the more uniform and least reactive, hence it's popularity for kitchen cupboards, loudspeaker cases, etc..
    It is easily machined, but is hard on the typical router bits, although nowhere near that of HDF.

    The bigger problem with mdf is the very fine dust produced when milling or cutting it with power tools, it gets everywhere, including your lungs, and can even get through vacuum cleaners without hepa filters....

    I would suggest either a thick MDF or layers glued together, cut the sides to requirements, lock it in place and set a 6 or 8mm router bit for MDF in a collet, and set it to work, ideally outside where you can hose it down after sweeping up and vacuuming.


  • Hero Member

    I think there may be some kind of coating that comes on these PCB's. Maybe it's to prevent corrosion of the copper? It seems to come off using IPA. Here one is before cleaning with IPA:
    alt text
    And here is the same PCB after cleaning with IPA:
    0_1517268674877_cleaned.jpg
    Not sure whether it interferes with soldering. Anyone know? For now I'm cleaning it off.



  • @neverdie Looks like you have that board dialed in...



  • So a CNC question as I build my prototype machine. I have an arduino with CNC shield on order that should arrive tomorrow. My question is, does this allow for a display and keypad for local control or is everything just done through GRBL?
    https://www.amazon.com/SODIAL-Arduino-Compatible-DRV8825-StepStick/dp/B074FVTTR7/ref=sr_1_7?s=electronics&ie=UTF8&qid=1517499916&sr=1-7&keywords=arduino+uno+cnc



  • @dbemowsk

    All done via GCodeSender and similar i'm afraid... which is not a problem as far as i can see

    Your Arduino is fully populated with this board :

    • driving stepper drivers
    • end-stops
    • coolant (or wathever) enable
    • spindle control (speed and rotation) (V3 shield can do PWM control if your spindle driver can). Be aware that this board doesn't drive any kind of motor. Just sends signal
    • cloning axis of your choice
    • emergency stop, pause and resume
    • i might forget some details but i'm sure you get the point

    But it's a pretty cool board for veeeery reasonable price. I love it !



  • @ben999 Thanks can't wait to try it out.



  • @ben999 So reading through your specs, everything seems pretty straight forward. I get that the spindle motor will need it's own controller which can be driven by the CNC board. One thing I am confused on though, what is "cloning axis of your choice". I am new to CNC.



  • @dbemowsk this board can accept up to 4 stepper drivers

    your machine is probably a 3-axis CNC, so in most cases one stepper per axis could do the trick.

    BUT sometimes some CNC designs require a 2nd stepper for an axis (usually the x-axis). Then add a 4th driver and some jumpers and you're done. You end up with 2 steppers doing exactly the same job



  • @ben999 That makes sense. My 3D printer has 2 Z axis steppers.



  • So I received my CNC board today. After looking over the board, I see that it has 2 endstop points per axis. Logical assumption would be that there would be one on each end of travel of an axis. I was a bit confused because my 3D printer only has 1 per axis. Do I need to use both for each axis when running GRBL?



  • So today I decided to do a little bit of testing with the CNC shield and my Y axis drive. To start off, one of the issues I have is that I do not know the specs of the motor that I have. Here is a pic:
    0_1517727837555_dd30a30a-2162-4fab-b31b-82b58830f05f-image.png
    Did quite a bit of searching over the past week to try and find any information, and I can't seem to find what I need. I decided to do some tests anyway. I was able to get GRBL loaded on to the UNO board fine and connect to it through PUTTY. I then installed just the Y axis driver and connected a 12 volt power supply for starters. I was able to get the Y axis screw turning by sending some Y axis commands such as "Y20" or "Y-20". When I ran it initially I didn't have the Y axis platter mount secured to anything, so that would just spin with the screw. The problem I have is that if I hold the platter mount giving the screw even the slightest bit of resistance, the motor will spin for half a second and then start making a whining/buzzing noise and will just vibrate a bit. Once the motor starts to slow down while stopping, the screw will stop whining and spin slightly at the end of the stop. I then thought that it might be that the voltage was too low as I had read on some forums about some Epson steppers being higher voltage steppers, so I connected a 30 volt supply. Running the same test gave me the same results. Does anyone have a clue as to why this would happen? Basically the motor doesn't have any torque.



  • @dbemowsk current gets you torque, voltage gets you speed. What driver do you use? See the current setting for the driver you use, how/what voltage you measure to determine the current and the formula that links the two.

    When I want to set the sweetspot (assuming driver and stepper are somewhat matched) I start low and increase the current little by little until the stepper gets warm after a few minutes. Warm, not hot! But again, the driver and stepper must match, I wouldn't try that with a Pololu A4988 and a Nema 34 stepper πŸ˜‚



  • @executivul said in CNC PCB milling:

    What driver do you use?

    DRV8825



  • @dbemowsk well then check the current set by measuring Vref, plenty of tutorials on the web. If it's lower than 500mA try bumping it up little by little. Also try reducing the microsteps to 16 or 8 by removing jumpers.


  • Hero Member

    The adjustment screw on the stepper module allows you to set max allowable current.

    Also, in software, you could try setting a lower max acceleration parameter (as discussed earlier in this thread) and lower max velocity parameters, in case either or both are a factor.

    You're brave to be attempting this with unknown equipment. If there are multiple factors... it's trickier to troubleshoot with no working baseline to start with.


  • Hero Member

    I've changed my modus operandi so that now I use the largest pad and trace sizes that I can get away with. That way, if they get whittled down during the milling, I still hopefully have enough left. πŸ™‚
    Example:
    0_1517759010931_ra-01_layout.jpg


  • Hero Member

    That way, I can also cut deeper and wider, which helps with soldering.
    0_1517761319040_fatpads.png



  • So good news. I was able to get the motor turning with some torque. Initially the board was set at full step resolution (no jumpers on M0, M1 or M2). I thought I'd try it at it's lowest microstep resolution which is 1/32, and the motor ran good. I checked the max current and it was set quite high at 2.035 x 2 = 4.07 A. Running some Y axis moves got the motor a bit warm, but I don't think I ran it long enough to do much damage. I now have the current down to 0.254 x 2 = 0.508 A and it seems to be running quiet and good. With it being at 1/32 microstepping it took a lot of revolutions to move the platter mount any distance, so I bumped it to 1/16 microstepping. This is mainly due to the 4.8:1 gear ratio that I have. I think this should give me some pretty good precision on the Y axis at least. Haven't built the X or Z yet, but that is next.



  • @neverdie said in CNC PCB milling:

    You're brave to be attempting this with unknown equipment.

    I'm not too worried. Worst case I may have to get some other steppers. Being that this motor is salvaged, it's not like it costed me anything.


  • Hero Member

    Here's my first attempt at copper removal between the traces/pads:
    0_1517774707509_copper_recmove.jpg
    I used a 2mm endmill to do the work pretty fast. It actually came out pretty good, but the remaining un-removed copper is not what I wanted. I guess it's inevitable unless I use a supper narrow end-mill, or probably a carving bit. But that will take a lot longer.

    i.e. some kind of hybrid approach would be best, I should think. Is there some way to do the detailed cleanup with a small bit, and then switch to the large diameter bit for the fast cleanup where precision isn't needed?



  • @neverdie Looks like you could raise your end mill a bit (no pun intended). Shouldn't it be the same depth as your other bit?


  • Hero Member

    @dbemowsk said in CNC PCB milling:

    @neverdie Looks like you could raise your end mill a bit (no pun intended). Shouldn't it be the same depth as your other bit?

    In theory, I suppose maybe so. However, the trouble is I can't preserve and then re-apply the same auto-leveling results. And, after the initial isolation milling, I can't do another to support setting the copper removal depth, because the touchpoints might hit the already removed material, which would seriously skew the results. So, I just set it deep enough to cover the possibilities, and that's why it's deeper.

    If anyone has a better solution to that, I'm all ears.


  • Hero Member

    I did get better removal using a carving bit:
    0_1517780462492_copper_recmove3.jpg


Log in to reply
 

Suggested Topics

  • 4
  • 9
  • 20
  • 17
  • 3
  • 2

65
Online

11.4k
Users

11.1k
Topics

112.7k
Posts