. .
Page 1 of 2 12 LastLast

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Dear CNC PCB guys,

    Inspired by the ideas from Poul-Henning Kamp [Height probing for PCB isolation routing with Eagle/pcb-gcode], I have created software to probe the surface of a blank piece of copper, then use the probed coordinates to adjust the Z height during the milling process, i.e. the tool height varies according to its X, Y position. I have also filmed the first test and also produced 2 identical circuits; with and without the autoleveling software running to demonstrate the results. Currently, I have tested with linuxCNC (it may or may not work in Mach3 at the moment, but definitely will in the future) and the GCode was originally generated with pcb-gcode. The software itself accepts a GCode file as input and outputs an optimised autoleveleled file.

    I know there is an autoleveler for PCB-GCode already but I couldn't get it to work and my software should work on any gcode file produced from any isolation software and should be easy to use too.

    Why wouldn't the copper be level?

    1. Table might not be level relative to the tool
    2. Blank copper might have significant flex


    Why is this a problem?

    1. Some areas of your board are lower than your Z zero while other areas are higher, leading to deep cuts in some areas and shallow cuts in other areas
    2. Occasionally, a very small ammount of the tip will break off if there is a lot of pressure from a deep cut. Then your tool won't touch the surface at all and you will need to re-touch-off Z and re-run all or part of the code
    3. Bits and boards are wasted


    To demonstrate this problem, here is a pic of a non-autoleveled circuit board:

    Click image for larger version. 

Name:	badcircuit.JPG 
Views:	1326 
Size:	181.9 KB 
ID:	8750

    There is a huge area in the bottom left which is completely missing. This is with a leveled table so only the board flex is an issue here.

    This is the exact same 100x80mm circuit with my autoleveling software in operation (same pcb-gcode settings, same method of fixing the board down etc.):

    Click image for larger version. 

Name:	goodcircuit.JPG 
Views:	1282 
Size:	190.3 KB 
ID:	8751

    As you can see, this is much more consistent. The traces are thin but thats due to the settings in pcb-gcode and Eagle, not the autoleveler.

    I also filmed the whole autoleveled milling process. Here is the cut down video:



    Where can I get the software? As soon as I make a website to stick it on I will add a link. Assuming there is interest in this project?

    Happy Milling :),
    Daedelus.

  2. The Following 2 Users Say Thank You to Daedelus For This Useful Post:


  3. #2
    Looks good Daedelus. Would it be possible to use this type of software instead of skimming the table. Possibly modifying the PP to add/subtract from the G-code programmed Z values instead of shimming the bed? G.

  4. #3
    Hi Geoffrey, when you say skimming the table, I presume you mean milling out an area to make it flat? In the video, you can see I have already done just that (the MDF sacrificial layer has been pocketed 1mm) but it still was not good as the first pic shows. But yes, you wouldnt even need to skim / pocket the table using this software.

    In fact, the Z height is calculated using a bilinear interpolation technique which gives a good result. You could probably get a good result with much fewer probe points (depends on the board size and quality). I would need to experiment to find out.

    best,
    James.

  5. #4
    Thanks Daedelus. Yes, I was asking if an unlevel (not necessarily uneven) table could be probed once and that information used to modify the Post Processor and add/subtract Z values for all future programs, not just for each individual program. Hope that makes sense. G.

  6. #5
    Quote Originally Posted by GEOFFREY View Post
    Thanks Daedelus. Yes, I was asking if an unlevel (not necessarily uneven) table could be probed once and that information used to modify the Post Processor and add/subtract Z values for all future programs, not just for each individual program. Hope that makes sense. G.
    Thanks Geoffrey, thats an interesting idea. Sorry, when you said PP I thought you meant "probe points" rather than "post processor". The problem is, by default, any information stored in GCode variables is lost for new sessions. In linuxCNC you can log stuff so I guess you could read the log file back in each time before starting a new job but then the Z information would be useless whenever you changed tool bit. Worth thinking about though, thanks.

    James.

  7. #6
    James, the way that I work and most pcb machines is that the tool length is always constant due to setting a collar on the 1/8th shank using a preset press. G.

  8. #7
    Sam Reaves's Avatar
    Location unknown. Sam Reaves Last Activity: Has a total post count of n/a. Referred 6134 members to the community.
    Hello Daedelus,

    I just bought a CNC3040T machine that could really make use of your software. I went to your site but I could not find the download link for the software. Would you please check that or post the direct link here?

    I am currently using SprintPCB layout software that outputs Isolation files in HPGL. I then run them through another program to convert the HPGL to Gcode and then make a couple of edits to keep LinuxCNC happy then I can route the board. The results have been dismal thus far, all attributed to the the CNC hardware. Z depth is now the most critical one. I don't think I can solve it in any way without your software.

    I do have one question: How does your software handle a double sided PCB? SprintPCB will generate one file to handle both sides but it puts a comment in the file to prompt to flip the board.

    I probably have close to $1K USD invested and I have not been able to make a single part!.

    Thank you for your interest.

    Sam



    Quote Originally Posted by Daedelus View Post
    Dear CNC PCB guys,

    Inspired by the ideas from Poul-Henning Kamp [Height probing for PCB isolation routing with Eagle/pcb-gcode], I have created software to probe the surface of a blank piece of copper, then use the probed coordinates to adjust the Z height during the milling process, i.e. the tool height varies according to its X, Y position. I have also filmed the first test and also produced 2 identical circuits; with and without the autoleveling software running to demonstrate the results. Currently, I have tested with linuxCNC (it may or may not work in Mach3 at the moment, but definitely will in the future) and the GCode was originally generated with pcb-gcode. The software itself accepts a GCode file as input and outputs an optimised autoleveleled file.

    I know there is an autoleveler for PCB-GCode already but I couldn't get it to work and my software should work on any gcode file produced from any isolation software and should be easy to use too.

    Why wouldn't the copper be level?

    1. Table might not be level relative to the tool
    2. Blank copper might have significant flex


    Why is this a problem?

    1. Some areas of your board are lower than your Z zero while other areas are higher, leading to deep cuts in some areas and shallow cuts in other areas
    2. Occasionally, a very small ammount of the tip will break off if there is a lot of pressure from a deep cut. Then your tool won't touch the surface at all and you will need to re-touch-off Z and re-run all or part of the code
    3. Bits and boards are wasted


    To demonstrate this problem, here is a pic of a non-autoleveled circuit board:

    Click image for larger version. 

Name:	badcircuit.JPG 
Views:	1326 
Size:	181.9 KB 
ID:	8750

    There is a huge area in the bottom left which is completely missing. This is with a leveled table so only the board flex is an issue here.

    This is the exact same 100x80mm circuit with my autoleveling software in operation (same pcb-gcode settings, same method of fixing the board down etc.):

    Click image for larger version. 

Name:	goodcircuit.JPG 
Views:	1282 
Size:	190.3 KB 
ID:	8751

    As you can see, this is much more consistent. The traces are thin but thats due to the settings in pcb-gcode and Eagle, not the autoleveler.

    I also filmed the whole autoleveled milling process. Here is the cut down video:



    Where can I get the software? As soon as I make a website to stick it on I will add a link. Assuming there is interest in this project?

    Happy Milling :),
    Daedelus.

  9. #8
    Last edited by EddyCurrent; 01-03-2014 at 11:20 PM.
    Spelling mistakes are not intentional, I only seem to see them some time after I've posted

  10. #9
    Thanks guys,

    Not sure why you couldn't find the downloads Sam. The page and site works OK when I just tried it. Anyway, Eddy has provided some direct links

    Yesterday I provided some GCode files for download. So you can play around with them for a bit if you wanted.

    With regards to double sided PCB's... The AutoLeveller handles those fine as long as you flip the board over and align it correctly (how to align it, is up to you).

    Quick note: I don't know how much experience you have but you might need to lower your expectations at least initially. Even with the AutoLeveller, its unlikely that you will produce a "good" board for the first few times. Keep practicing though and it will get better

  11. #10
    I know from my experience how vital is height probing and correction for milling good PCB's. I am using a Java program called PCBZCorrect which I found in the CNCZone forum. And since the source code is available I did some corrections by adding truncation and rounding functions to avoid errors like comparing 4.420 to 4.41999999999 which are practically the same coordinate but with a discrepancy due to floating point calculations. The interface is very basic and I was thinking about sitting down and making one like yours, Daedelus. Now I see you have implemented the idea.
    I'll give a try to your program next time I make a PCB.
    There are two questions I'd like to ask:
    1. Does your program handle arc moves and especially long arcs where they must be divided into smaller ones to account for the Z changes? I am not using Eagle PCB and even though I can convert the arcs into straight segments I don't like the idea because the smooth movement becomes jerky.
    2. Have you thought about such a scenario: a)There is a separate VB macro written for Mach3 to make the probing and save the results to a text file. b)Your program reads the probed values from that file, assigns them to Mach3 variables and modifies the G-code accordingly omitting the inclusion of the probing cycle. This way, even if one has to stop the milling for whatever reasons, it can be restarted successfully without losing the valuable height data. On a board with some tracks already milled you cannot repeat the process.
    Last edited by Dragonfly; 03-03-2014 at 06:13 PM. Reason: Typo

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. software
    By rainboweyes in forum Computer Software
    Replies: 4
    Last Post: 09-02-2013, 11:59 AM
  2. Replies: 2
    Last Post: 11-12-2012, 12:58 PM
  3. best software
    By k2me in forum CAD & CAM Software
    Replies: 10
    Last Post: 23-06-2011, 02:55 PM
  4. Which Software
    By Ricardoco in forum CAD & CAM Software
    Replies: 41
    Last Post: 12-01-2011, 04:43 PM
  5. What software ??
    By Kammo1 in forum Computer Software
    Replies: 11
    Last Post: 07-09-2007, 01:46 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •