Denvi / Candle

GRBL controller application with G-Code visualizer written in Qt.
GNU General Public License v3.0
1.35k stars 548 forks source link

Height map irregularities #550

Open 104TMR opened 2 years ago

104TMR commented 2 years ago

Hi Denvi, Many thanks for a great piece of software. I'm using Candle 1.1.7 with a Vevor 3018 CNC mill to mill PCBs.

I undertake a height map before any PCB mill, and tick the box in Candle to use the map, but I'm finding that the height map doesn't seem to be providing the height corrections that it should. The cutting tip (0.1mm, 30deg) cuts down through the copper layer in some areas, but then only cuts part-the-way-through, or not at all, in others.

I decided to check the consistency of the height map process, and ran 10 consecutive height maps over exactly the same area (10 point x 10 point, height map probe feed =10), and looked at the .map files these runs created in Excel.

I've been concerned to find some dramatic and variable differences between the (what-should-be identical) height map coordinates.

I selected the first (of 10) height map as a reference, and then subtracted each subsequent height map array from the reference, and looked at the resulted difference arrays.

These different height map arrays showed fluctuating differences, both in their magnitudes and distribution. While most deviations fell in the -30 micron to +30 micron range (still surprisingly large, considering that the copper layer on a 1 oz PCB is 35 micron), several difference maps showed some points that were 200 to 900 micron deviant(!).

These latter figures are clearly in error, but it seems they all might be, as no two deviation arrays were the same. I would have expected to see typical machine and randomisation errors of 0~5 micron, perhaps, but not 20-30 micron, and certainly not 200-900 micron.

Could I ask your comment on what you think may be happening here? I can send the Excel file with the height map difference arrays, if it's useful.

Many thanks for your help, Glen

Jarewa commented 2 years ago

Increase step accuracy and decrease point homing speed.

Because how many steps do you have per rotation?

104TMR commented 2 years ago

Hi Jarewa, Thanks for your advice.

How do I increase step accuracy, and where do I find the steps/rotation?

The point homing speed is (default) 10(mm/sec?), which seems fairly slow already. Do you have a recommendation that typically works well? Thx…

On Sun, 24 Apr 2022 at 11:48 pm, Jarewa @.***> wrote:

Increase step accuracy and decrease point homing speed.

Because how many steps do you have per rotation?

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1107845487, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNUYKJXYPQJZGZOTZN3VGVGLVANCNFSM5UGGYDGA . You are receiving this because you authored the thread.Message ID: @.***>

Jarewa commented 2 years ago

Send the command $$ and write what you have under the items $100 $101 $102

10(mm/sec) the slower the better

mar0x commented 2 years ago

Hello, The Feed rate is specified in "units per minute". For G21 it is "mm per minute".

@104TMR , I would recommend to check the accuracy of the probe process itself. Repeat the following command sequence in console:

G21 G91 G38.2 Z-40 F10  ( do the probe and check the last number in response [PRB:0.000,0.000,-1.031:1] Z=-1.031 )
G21 G91 G0 Z1 ( move the spindle 1mm up )

Check the dispersion of Z probe response. If it is stable enough, then it makes sense to continue your investigation. ( I've got -0.011 .. -0.013 for first 5 probes, then it changes to -0.028 .. -0.031 for latter 6. But I'm using V-cut as a probe for copper PCB and each probe may push in a copper layer a bit. )

The probe process is sensitive to feed rate: the lower feed rate the more accurate result. Candle 1.1.7 does not use "Heightmap probing feed" setting value at all. The last movement feed rate is used. So, try manually execute the sequence above right before the heightmap probe and control the feed rate in a left-top corner. Consider unofficial v1.1.9 with fixed "Heightmap probing feed" setting usage and reasonable small feed rate configured (10 - 30 mm/min).

104TMR commented 2 years ago

$101=$102=$103=800. The probe feed rate is at 10mm/sec.

However, I suspect I may have found a contributor to the problem: the polarity of the probe electrical connections (to pins A5) were reversed from what I had thought I’d connected them: positive was on the work piece and negative was on the probe.

I decided to check the electrical signals when I noticed that one of the height map probe excursions only went part-way down towards the PCB surface, but then pulled back and recorded (an incorrectly high z-value), without actually having reached the copper surface.

Clearly, the A2 pins had received some (bogus) electrical signal that told the controller that the probe had reached the surface, when in physical reality it had not.

So I put an oscilloscope on the A2 pins to try and see what electrical behaviour might be occurring to cause this, and then noticed the reverse polarities.

I’ve since reversed the polarities of the A2 connections to the probe and work piece, and run another set of 10 identical height maps, and found that the unrealistic (200-900 micron) differences between them are not present anymore.

I am seeing maximum differences between height maps of 10~20 micron, which is still a bit concerning, compared to the 35 micron thickness of the copper, but nothing like the outliers seen previously.

I've also just tried milling a PCB using a new height map on a new board, but the results are not looking good. Please see attached pic. Shows severe undercutting and overcutting in various areas.

Further thoughts appreciated.

On Mon, 25 Apr 2022 at 9:25 pm, Jarewa @.***> wrote:

Send the command $$ and write what you have under the items $100 $101 $102

10(mm/sec) the slower the better

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1108447286, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNQKVCY5D6QXSEWSL6LVGZ6MBANCNFSM5UGGYDGA . You are receiving this because you authored the thread.Message ID: @.***>

104TMR commented 2 years ago

Thanks for your advice, Max. You will see I have just posted an update, describing the polarity reversal issue I discovered. But there still seems to be some significant height map deviations. I'll investigate your suggestions tomorrow and will advise.

On Mon, Apr 25, 2022 at 11:36 PM Max @.***> wrote:

Hello, The Feed rate is specified in "units per minute". For G21 it is "mm per minute".

@104TMR https://github.com/104TMR , I would recommend to check the accuracy of the probe process itself. Repeat the following command sequence in console:

G21 G91 G38.2 Z-40 F10 ( do the probe and check the last number in response [PRB:0.000,0.000,-1.031:1] Z=-1.031 ) G21 G91 G0 Z1 ( move the spindle 1mm up )

Check the dispersion of Z probe response. If it is stable enough, then it makes sense to continue your investigation. ( I've got -0.011 - 0.013 for first 5 probes, than it changes to -0.028 - 0.031 for latter 6. But I'm using V-cut as a probe for copper PCB and each probe may push in a copper layer a bit. )

The probe process is sensitive to feed rate: the lower feed rate the more accurate result. Candle 1.1.7 does not use "Heightmap probing feed" setting value at all. The last movement feed rate is used. So, try manually execute the sequence above right before the heightmap probe and control the feed rate in a left-top corner. Consider unofficial v1.1.9 https://github.com/mar0x/Candle/releases/tag/v1.1.9 with fixed "Heightmap probing feed" setting usage and reasonable small feed rate configured (10 - 30 mm/min).

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1108585288, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNWSEEEMNQQQAXXDFQLVG2NVTANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

104TMR commented 2 years ago

Hi Max, I tested your two lines of code, and got z-depth readings that stayed within 1 micron of the 1st reading over a set of 10 readings - which is a great result! Question still remains: Why does a set of repeated, identical height maps produce differences of up to ~20 micron? However, I've done some reading, and noted that it looks like the max. steps/mm for the stepper motors can be up to 1600. So, I've set z-steps/mm to 1600 ($102=1600, leaving $100=$101=800) and rerun the multiple (10) height maps. Remarkably, the array of differences of each height map from the average of all height maps are showing maximum and minimum values of less than 7 um, which is 3x better than what I was achieving previously. I have since done a new height map and run a PCB routing run using the new steps/mm, and the cutting depth consistency is much better. Proof of the pudding...

mar0x commented 2 years ago

got z-depth readings that stayed within 1 micron

So, the probe itself works fine when the probe runs at 10 mm/min feed rate. Perfect!

Have you checked the actual feed rate during height map producing (at the top left corner, next to F/S) ?

Grbl $102 setting is the number of steps for stepper motor to move spindle for 1 mm along Z axis (source). It is conditioned by your stepper motor and driver (the number of steps per rotation) and mechanics of you machine (lead screw step). If you have 800 steps/mm and your Z-axis movement is 100% accurate it is incorrect to set $102=1600 just because your Z axis starts moving twice longer (in mm). This is it. There will be no double precision etc. And you've got better probe results just because movements along Z-axis are doubled. Use the ruler and measure the height after "G21 G91 G0 Z20" command (there should 20mm difference).

104TMR commented 2 years ago

Yes, I see what you're saying, Max. Indeed, setting $102=1600 makes the z-displacement 2x what it should be. Clearly, I'm a novice with all of this. So, I've reset $102=800, set the probe speed to 2 mm/s (and Yes, F/S reads 2 (or whatever speed I set it to in the Height Map Settings, so it does seem to get it's value from there)), and rerun 10 height maps, and find much the same as previously: differences of +/- ~17 um. So, why can the machine get such repeatable precisions of 1~2 um in a single test mode (using G21 G91 G38.2 Z-40 F10, etc.), but such lousy precisions when doing a height map (even with a very slow probe speed of 2 mm/s)?

104TMR commented 2 years ago

Sorry, "12 um" should be "1~2 um"...

chfgwd commented 2 years ago

I'm using Lightburn 1.1.03, when I have a layer set to line to outline shapes or text, the laser does not turn off during "Traversal Moves". Is there a setting in the "$" commands that will fix this?

On Wed, Apr 27, 2022 at 6:44 AM 104TMR @.***> wrote:

Sorry, "12 um" should be "1~2 um"...

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1110902424, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXPLRFWXSU7JQ7AFOPZ6LYLVHESB7ANCNFSM5UGGYDGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

mar0x commented 2 years ago

Hello @chfgwd , Actually this is the issue tracker for Candle and in this issue we're trying to understand and solve heightmap probe inconsistency. You are welcome to participate in discussion too! The answer for you question is $32=1 and we're expecting your instant contribution. Best regards.

104TMR commented 2 years ago

I've been doing a number of height map tests under different conditions, but haven't got to the bottom of why z-differences are so small when measured at one point, and why they start varying so much when tested between varying x-y positions. Following are some descriptions and plots of the results. Interpretations to follow. The height map scans were a 50x50mm square of 4 points (ie. each corner). The 4 depths recorded at each corner were averaged over the 10 scans, and then each of the 4 points for each scan were subtracted from the average (to create differences from the mean), and the minimum and maximum values for each scan plotted vs scan number.

  1. I wondered if the z-probe trigger signal may be affected by RFI from the z-stepper motor (I notice that the nearby AM radio gets heavy RFI when the stepper motors run, so I put a 0.22 uF capacitor across the A5 terminals, to dampen any RFI that could affect it. Didn't make any difference. HeightMapDifferencePlots-2x2-Max_MinDifferencePlots-WithFilterCap Image shows maximum and minimum deviations from the mean for 10 scans. Shows min/max ranges of approx. +/- 15 um.
    What does stand out from the plot is the apparently strong correlation between max and min values across the scans.
    This seems to imply that when the maximums are going up, so are the minimums, and vice-versa.
    If we were dealing with a purely random effect causing the variations, we would not expect to see correlation between the max and mins - instead random effects would make the values independent of each other across the scans (disagree if you like...!).
  2. To check this further, I disconnected the capacitor, and ran three more 2x2 scans of 10 scans each (ie. 30 scans in total), to see if the max/min correlations continued. It looks like they do: HeightMapDifferencePlots-2x2-Max_MinDifferencePlots-NoFilterCap-1 HeightMapDifferencePlots-2x2-Max_MinDifferencePlots-NoFilterCap-2 HeightMapDifferencePlots-2x2-Max_MinDifferencePlots-NoFilterCap-3
  3. So then I thought that perhaps a systematic offset may be associated with one axis drive (X or Y). So I did a set of 10 height scans between two points on the X-axis, and then the same for the Y-axis. Plots below show the max/min differences vs scan number, and the correlation seems to have disappeared: HeightMapDifferencePlots-1x2-Max_MinDifferencePlots-XVariationOnly HeightMapDifferencePlots-1x2-Max_MinDifferencePlots-YVariationOnly
  4. I then did several height tests at single points (ie. not moving the X/Y position), and found that the height differences reduced to 1~3 um, as found previously. This seems to be showing that when you don't move the X/Y dimensions, height values are very precise. However, as soon as you start moving around in the X/Y dimensions, variations creep in, and make the height map fairly unreliable. I don't know what else to interpret from all this. Further thoughts appreciated from anyone interested in this topic. Does anyone else experience PCB isolation routing showing unreliable depth cutting - or does everyone else's projects work perfectly and mine's the only dud?! ;-) Thanks for any thoughts...
Jarewa commented 2 years ago

What screw do you have, TR8x2?

104TMR commented 2 years ago

Not sure. Their outside diameter is 8mm (hence the "8" in "TR8"?), and they move the head 4 mm with 1 turn.

On Fri, Apr 29, 2022 at 1:52 PM Jarewa @.***> wrote:

What screw do you have, TR8x2?

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1112852142, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNXBZT6HJCDL4XGTIVLVHNMGHANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

Madbyte3d commented 2 years ago

104TRM, I think that you are not alone. I've been pulling my hair for a week or so because of inconsistencies in isolation routing. My case is a bit different in that sometimes I get really deep mills, and therefore wider mills. For a while the tip was barely touching the pcb and just engraving it. I made a very basic circuit to repeat the test. Screenshot 2022-05-29 175418

In my case all the isolation maps increase in height as the probing progresses from bottom left to top right. This means that my spoilboard is not level but the thing is that I just surfaced it with a 1 inch surfacing bit.

Do you mind sharing the height map parameters that go with the charts you shared above? Also the excel you are using for graphing? I'll attempt to run the same tests generate the graphs and report back.

I'm new to CNCs but have several years of experience with 3d printers so I understand the mechanics of the steppers motors and controllers. Is a different mindset when it comes to the relationship between the tip of the bit and the surface and having two sets of coordinates to deal with.

I have a Sainsmart Genmitsu 3020 Pro Max if that's important to anyone.

104TMR commented 2 years ago

Hi Madbyte3D, I guess it's good, but also disappointing, to hear I'm not the only one with clumps of hair on the floor over this issue! I still haven't been able to get reliable height mapping working. The following recent results show the overcutting of tracks, despite running and applying a height map: IMG-4014 I'm also attaching the Excel file I use to do the height map difference comparisons: ExampleHeightMapDifferencePlots-2x2-MultiRuns.xlsx The way you use it is as follows:

  1. Run a series of height maps, saving each one with its own file name as you go. The Excel file is setup for a 2x2 (ie. 4 points) map, and I generally use a 1/4, 3/4 layout, eg. on a 100x100mm board, I would map at (25,25), (25,75), (75,75), (75,25).
  2. Open each height map (Notepad, Wordpad, etc.), and drag over and copy the last two lines in the height map, that contain the height measurements at each probe point (values are separated by semicolons).
  3. Go to ExampleHeightMapDifferencePlots, drag over the 4 cells coloured orange, and hit Paste, and the 4 height values should paste straight into the cells. Do this for all 10 height maps.
  4. The means of the 4 height points are calculated in AF3:AG4, and the array formulas, based on the formula in B8:C9 calculate the deviations of each height map from the mean.
  5. The charts show various measures of the deviations using different metrics, which I think should become fairly self explanatory when you examine the cells and look at what each chart is plotting.

It will be interesting to see how you go applying Max's formula at a single point: G21 G91 G38.2 Z-40 F10 ( do the probe and check the last number in response [PRB:0.000,0.000,-1.031:1] Z=-1.031 ) G21 G91 G0 Z1 ( move the spindle 1mm up ) My machine showed very good repeatability using this at a single point, but it all seems to go to pieces when you start trying it across a range of x,y positions. Let me know how you go!
Cheers...

scorninpc commented 1 year ago

Hello guys!

How are you going with this problem?

I've tested all in this issue, and recreate all the tests, and got the same results with no fix

So i decided to add 1/32 microsteps, and got some better results, but no success yet

So i tried to link my oscilloscope to see whats happening, i saw alot noise.

I added a pull up with divider to trigger SCL, creating a route for noise escape

image

image

and i got a nice result

3 times sequentially of the same point

image image image

This occured on 8 tries, but sometimes keep falling

image

but it's reduced by 80~90% of errors

Maybe it is a direction. I need work better with this resistor values

104TMR commented 1 year ago

Hi Bruno, Good on you for persevering with this, and it looks like you may have a good technique for improving the height map performance.

Personally, I have moved away from routing, and instead mounted a 40W laser on the router head, and am now spray painting the blank PCB, letting it dry, then cutting through the paint layer with the laser, then drilling the through holes with the router & chuck, and then etching with H2O2 + HCl, then dissolving the paint off with acetone, and the PCB is done.

Works very well.

I might try routing again at some stage, but for now the laser/paint method allows me to produce the boards I want without too much hassle, so I’ll stick with it for now.

Cheers, Glen

On Wed, 31 Aug 2022 at 11:26 am, Bruno Pitteli Gonçalves < @.***> wrote:

Hello guys!

How are you going with this problem?

I've tested all in this issue, and recreate all the tests, and got the same results with no fix

So i decided to add 1/32 microsteps, and got some better results, but no success yet

So i tried to link my oscilloscope to see whats happening, i saw alot noise.

I added a pull up with divider to trigger SCL, creating a route for noise escape

[image: image] https://user-images.githubusercontent.com/2607849/187570251-d6e679cf-252a-405a-8021-dbb08547d1e0.png

[image: image] https://user-images.githubusercontent.com/2607849/187571239-f3dd5967-805e-4489-b4e6-97e6fe57b736.png

and i got a nice result

3 times sequentially of the same point

[image: image] https://user-images.githubusercontent.com/2607849/187571307-e9b667d2-7c7d-4ab8-90b1-537ed1f1cd58.png [image: image] https://user-images.githubusercontent.com/2607849/187571348-cc10f160-53f9-44ce-bc83-5b0514cddcbc.png [image: image] https://user-images.githubusercontent.com/2607849/187571377-23ddef17-5faa-4b04-a75c-e2866f0ed456.png

This occured on 8 tries, but sometimes keep falling

[image: image] https://user-images.githubusercontent.com/2607849/187571829-9708a4f7-356f-4a74-b46c-6a486024f1ad.png

but it's reduced by 80~90% of errors

Maybe it is a direction. I need work better with this resistor values

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1232342907, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNRAJJZCZGAUVVRI4JTV32YENANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

scorninpc commented 1 year ago

Ok for probe tests, but no acceptable on map height =/

image

pixelwaster commented 1 year ago

Here is a video I found interesting, A quick demonstration on how much overshoot happens when you use continuity based probing.

From what I understand, the overshoot is a result of the feedrate and stepper acceleration, The faster the acceleration and slower the feed, the less overshoot.

Stop probing with your tool

scorninpc commented 1 year ago

Nice video. But i think he show the precision of probe, not the different results of the same points (you can see he moving the plate with hands alot time)

Anyway, today i'll do some tests with acceleration, becase i done alot with speed, bot not with accel

Thank you

scorninpc commented 1 year ago

I found a loooooonnng discution of that https://github.com/gnea/grbl/issues/96

And the summary: https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches

I ordered the optos, and will test with probe as i can, and post results

104TMR commented 1 year ago

Hi Bruno, Interesting info on limit switches, although I’m not sure how this relates to the topic of this thread - ie. height map irregularities? Cheers…

On Sat, 17 Sep 2022 at 2:26 am, Bruno Pitteli Gonçalves < @.***> wrote:

I found a loooooonnng discution of that gnea/grbl#96 https://github.com/gnea/grbl/issues/96

And the summary: https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches

I ordered the optos, and will test with probe as i can, and post results

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1249559690, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNU22TXQ6LX6PO363HLV6SNTBANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

scorninpc commented 1 year ago

Sorry, but i think you dont understand your first problem, and dont read the related links.

All this problem is causes by noise and the links is about cut that, isolating contacts with opto-isolation

The height map irregularities is not caused by software problem, but by measurement

104TMR commented 1 year ago

Hmmm…ok, I’ll look forward to seeing what the eventual solution is. Thx…

On Mon, 19 Sep 2022 at 8:40 pm, Bruno Pitteli Gonçalves < @.***> wrote:

Sorry, but i think you dont understand your first problem, and dont read the related links.

All this problem is causes by noise and the links is about cut that, isolating contacts with opto-isolation

The height map irregularities is not caused by software problem, but by measurement

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1250853260, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNST4LSAFLEAEG2GU6TV7A7J3ANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

Mot007 commented 11 months ago

I have been reading and following your comments re the height map inconsistencies. I recently bought a 3018 pro and also tried to cut a simple circuit PCB 108x30 cm. I have almost broken every bit In the process to try and auto levelI. I am a retired hardware engineer. Sometimes the hardware is not what it should be and the battle of the software versus the hardware is still evident! I put a scope on the input if the Z probe and to my amazement saw quite a lot of bounce. The problem as I see it is on the second reading and again I'm not sure what the software is doing. But it seems that the first plunge gets a clean low upon touching the copper. Then the probe rises and descends to get a more accurate height reading. This is where lots of bounce occurs. As the smaller steps just kiss the copper, lots of high resistance connections appear causing irregular connections untill rock bottom connection occurs. A simple solution would be to step down, denounce for a given time, read, and repeat. Another solution would be to increase the pull up on the sense input to much greater than 10k maybe even 100k . I have captures of this but don't know how to share it with you. I'm happy to do so if you show me the way.🙂

Mot007 commented 11 months ago

20230808_181503 20230808_181450 20230808_180902

Mot007 commented 11 months ago

Ok I missed the obvious share photo! The first image is the first plunge, 2nd and 3rd is on the final smaller incremental steps to Zero.

104TMR commented 11 months ago

Hi MOT007, Those are interesting results you’ve got for the height probe resistance measurements, and Yes, likely that it has something to do with the uncertainties that are throwing the calibrations off.

However, as mentioned in an earlier post, I have found the laser scribing of painted PCB (and H2O2 +HCl etchant afterwards) to be an accurate and reliable method for creating the PCBs that I bought the 3018 to do. So I haven’t been pursuing further analysis of the variable height-mapping problem.

Your results however, do seem to indicate that the software probably could be modded somewhat to try and correct the effects you’ve identified. However, I’m not sure who would do that - unless your into playing with the source code yourself?

Cheers…

On Tue, Aug 8, 2023 at 9:41 PM Mot007 @.***> wrote:

Ok I missed the obvious share photo! The first image is the first plunge, 2nd and 3rd is on the final smaller incremental steps to Zero.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1669453125, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNRW76X5NJ5US5J77A3XUIQU7ANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

Mot007 commented 11 months ago

Hi TMR104, I have gone along the path of a hardware fix to the noise and have not made much of a difference. Today I tried a few different ideas and have had a much better result in the deviation for the same map. I have proven to be definitely sure that a Shap tip will increment the error on every read. This is due to the initial velocity to make contact and also the subsequent slow plunge makes a difference. Coupled together with a flat probe will reduce the error for the same point . This all fell to bits once I repeated a simple height map (30x30mm) 3,3 probes. What I found is that the plunge is F10 and could not find where to alter this. More importantly the inaccuracy deviation seems to show much greater as the machine scans the centre points traveling right to left. ? Much more investigating I guess. Are you able to point me to the software? I could only have a go but not qualified in that department. On the other way of producing, what is the minimum track/space that you can get which Lazer? I only have a 2.5W one and have not fired it up as yet.

104TMR commented 11 months ago

Hi MOT007, It sounds like there's some persistent gremlins in these 3018's ... Re. laser etching the painted PCB, I usually make my tracks 0.5mm with 0.5mm spacings, but have had no trouble getting 0.3mm tracks with 0.15mm spacing on projects that need this. I think a 2.5W laser might not have the grunt needed to burn through the paint at a reasonable rate. I've got a 40W laser, and I power this along at 600mm/min, and it does well. Of course, it's a cheap version, so I'm pretty sure the real power out of it won't be 40W, but it still seems to do OK. Mine is similar to the following on eBay: https://www.ebay.com.au/itm/265345048679?hash=item3dc7cc2067:g:2H8AAOSwfnNh382-&amdata=enc%3AAQAIAAAA8F1BFjV%2BgCtg5zV7ZuHwfptzKLICuoAZQonhKT9iFaZ9tylOisYJEif7muCDKJdp3U0gqFN%2B2K0rrNN8A2dlsyLhYFWCxuFTPSgfKSM0KGSzzZd9y%2BZOfHNFgPtU%2B93FSlAeb2Qzask2nsNDlcaqzjHO%2B2hV%2BK6TH7DUogUyxMvqCsGwBjznLlPT9KzyQ8m6pxw9GnxTV1ZsCezB%2BjGrWbNohrx1Wt59yNTITvIP0OHyzgzuDq4m3yjYhnJ4%2FierBvYr%2FaQq77tzQS%2FXMlfWmHafu8C788d%2Fb%2BTj4%2B%2FOZRncemdNDrRRjhgZRqXDhwKgDQ%3D%3D%7Ctkp%3ABk9SR8T848S8Yg I spray paint the copper side of the board with a dark oil-base paint (which I have previously tested and found dissolves easily with acetone, once it needs to be removed), and let it dry. Then laser scan the track patterns onto the painted surface with the 3018. I etch with a potent combination of approximately 50ml each of ~30% hydrogen peroxide and 30% hydrochloric acid and ~50ml of water (reduce the water for a more aggressive effect). Wearing protective gloves (of course), I swab the etchant onto the laser engraved surface of the PCB with a small piece of sponge, and after ~2 minutes, it's done. Tracks and spaces are very sharp and clean. Then use acetone to dissolve and wipe off the paint, and the board is done. Good vid of the etching process at https://www.youtube.com/watch?v=OTGZcY7WyYI&t. Hope this is helpful. Cheers...

On Fri, Aug 11, 2023 at 8:09 PM Mot007 @.***> wrote:

Hi TMR104, I have gone along the path of a hardware fix to the noise and have not made much of a difference. Today I tried a few different ideas and have had a much better result in the deviation for the same map. I have proven to be definitely sure that a Shap tip will increment the error on every read. This is due to the initial velocity to make contact and also the subsequent slow plunge makes a difference. Coupled together with a flat probe will reduce the error for the same point . This all fell to bits once I repeated a simple height map (30x30mm) 3,3 probes. What I found is that the plunge is F10 and could not find where to alter this. More importantly the inaccuracy deviation seems to show much greater as the machine scans the centre points traveling right to left. ? Much more investigating I guess. Are you able to point me to the software? I could only have a go but not qualified in that department. On the other way of producing, what is the minimum track/space that you can get which Lazer? I only have a 2.5W one and have not fired it up as yet.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1674509501, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNUZ3X4VDTFQNS7ZTITXUYAFVANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

Mot007 commented 11 months ago

Hi 104TMR, Thanks for your feedback. I would be happy with a 8/8 thou as a minimum. The only way I see right now is your method or a .2mm very fragile router bit(which is on its way) The Lazer etching looks impressive! Involving chemicals is no for me now days, I'm too old and clumsy😂 Be ultra carefull with the chemicals. That trio (well 2 of them) makes a potential bomb. Google- Mixing concentrated H2O2 and acetone with an acid catalyst is known to form the shock and friction sensitive explosives triacetone triperoxide (TATP) and diacetone diperoxide (DADP)

Cheers Make sure to keep them chemicals well away from each other! Also in that video the mix began to runaway and boil, another Hazzlard!

On Fri, 11 Aug 2023, 9:35 pm 104TMR, @.***> wrote:

Hi MOT007, It sounds like there's some persistent gremlins in these 3018's ... Re. laser etching the painted PCB, I usually make my tracks 0.5mm with 0.5mm spacings, but have had no trouble getting 0.3mm tracks with 0.15mm spacing on projects that need this. I think a 2.5W laser might not have the grunt needed to burn through the paint at a reasonable rate. I've got a 40W laser, and I power this along at 600mm/min, and it does well. Of course, it's a cheap version, so I'm pretty sure the real power out of it won't be 40W, but it still seems to do OK. Mine is similar to the following on eBay:

https://www.ebay.com.au/itm/265345048679?hash=item3dc7cc2067:g:2H8AAOSwfnNh382-&amdata=enc%3AAQAIAAAA8F1BFjV%2BgCtg5zV7ZuHwfptzKLICuoAZQonhKT9iFaZ9tylOisYJEif7muCDKJdp3U0gqFN%2B2K0rrNN8A2dlsyLhYFWCxuFTPSgfKSM0KGSzzZd9y%2BZOfHNFgPtU%2B93FSlAeb2Qzask2nsNDlcaqzjHO%2B2hV%2BK6TH7DUogUyxMvqCsGwBjznLlPT9KzyQ8m6pxw9GnxTV1ZsCezB%2BjGrWbNohrx1Wt59yNTITvIP0OHyzgzuDq4m3yjYhnJ4%2FierBvYr%2FaQq77tzQS%2FXMlfWmHafu8C788d%2Fb%2BTj4%2B%2FOZRncemdNDrRRjhgZRqXDhwKgDQ%3D%3D%7Ctkp%3ABk9SR8T848S8Yg I spray paint the copper side of the board with a dark oil-base paint (which I have previously tested and found dissolves easily with acetone, once it needs to be removed), and let it dry. Then laser scan the track patterns onto the painted surface with the 3018. I etch with a potent combination of approximately 50ml each of ~30% hydrogen peroxide and 30% hydrochloric acid and ~50ml of water (reduce the water for a more aggressive effect). Wearing protective gloves (of course), I swab the etchant onto the laser engraved surface of the PCB with a small piece of sponge, and after ~2 minutes, it's done. Tracks and spaces are very sharp and clean. Then use acetone to dissolve and wipe off the paint, and the board is done. Good vid of the etching process at https://www.youtube.com/watch?v=OTGZcY7WyYI&t. Hope this is helpful. Cheers...

On Fri, Aug 11, 2023 at 8:09 PM Mot007 @.***> wrote:

Hi TMR104, I have gone along the path of a hardware fix to the noise and have not made much of a difference. Today I tried a few different ideas and have had a much better result in the deviation for the same map. I have proven to be definitely sure that a Shap tip will increment the error on every read. This is due to the initial velocity to make contact and also the subsequent slow plunge makes a difference. Coupled together with a flat probe will reduce the error for the same point . This all fell to bits once I repeated a simple height map (30x30mm) 3,3 probes. What I found is that the plunge is F10 and could not find where to alter this. More importantly the inaccuracy deviation seems to show much greater as the machine scans the centre points traveling right to left. ? Much more investigating I guess. Are you able to point me to the software? I could only have a go but not qualified in that department. On the other way of producing, what is the minimum track/space that you can get which Lazer? I only have a 2.5W one and have not fired it up as yet.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1674509501, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AY3ZUNUZ3X4VDTFQNS7ZTITXUYAFVANCNFSM5UGGYDGA>

. You are receiving this because you were mentioned.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1674603923, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZMGDSKPOZ45D74BTHULXJDXUYKIDANCNFSM5UGGYDGA . You are receiving this because you commented.Message ID: @.***>

tmr4 commented 11 months ago

I've been having the same height map issues. Has anyone tried using the average of several height maps? Did it help at all?

Mot007 commented 11 months ago

Have been working on this and have found some promising results. I'll have to fine tune it and will let you know the fix. Here's a quick result. I haven't saved the record before the fix but they where out by about .050mm Here's what I got recently 4 probes 30mm square using 60deg V cutter
probed 4 times different set up. 1 is .001 p1,p2,p3,p4,err 0, 0 0 1 1 13 ,12 ,12 ,14, 2 57 ,64, 62, 68, 11 57 ,66 ,68 ,61 ,11

5 ,0, 0, 0, 5 21 ,16 ,16, 16, 5 57, 55, 50, 49, 8 59, 54 ,52, 53 ,7

tmr4 commented 11 months ago

I took 5 height map runs for a 40x40 mm board I'm making, discarded the most inconsistent one and averaged the others for the final height map for the board. The board milled successfully. The first for this size of board for me. One sample doesn't prove the technique, but I'm very happy with the results.

I also tried doing the height map of the same area with different types of bits and even the flat end of a bit shaft. I found that:

I used an average of the flat end maps for my successful board.

Mot007 commented 11 months ago

Hi Tmr4 Good for you to getsome +be results! What I have found is that the firmware does not denounce the probe input adequately. But having minimal software expertise, I've resorted to a hardware mod on my driver board. Which is a Chinese derivate using a stm38f030 arm controller. Somewhere along the translation they lost the recipe. I don't believe it is the Candle software at fault but the glue software that goes with the GRBL firmware or the GRBL firmware itself. I can't pinpoint it but my hardware mod to my Chinese PCB has allowed me to get a much more precise leveling map that I could ever achieve before. I can live with +/-10 microns on copper probing with a sharp .2mm probe. I take the second reading as the correct one. All the best.

104TMR commented 11 months ago

Hi MOT007, That sounds pretty impressive. I take it 'denounce' should be 'debounce'(?). For those who want to pursue routing - and just for the sake of getting better height maps - are you willing to share the details of the mod you've made? I'm sure others would find it helpful. Cheers...

On Tue, Aug 15, 2023 at 9:35 PM Mot007 @.***> wrote:

Hi Tmr4 Good for you to getsome +be results! What I have found is that the firmware does not denounce the probe input adequately. But having minimal software expertise, I've resorted to a hardware mod on my driver board. Which is a Chinese derivate using a stm38f030 arm controller. Somewhere along the translation they lost the recipe. I don't believe it is the Candle software at fault but the glue software that goes with the GRBL firmware or the GRBL firmware itself. I can't pinpoint it but my hardware mod to my Chinese PCB has allowed me to get a much more precise leveling map that I could ever achieve before. I can live with +/-10 microns on copper probing with a sharp .2mm probe. I take the second reading as the correct one. All the best.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1678788187, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNWQVJ6PLKZII5U7CLDXVNNHZANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

Mot007 commented 11 months ago

Hi 104TMR, You are right it should say 'debounce' and '+ve' 🙂 I am more than happy to share the results. Once I have a moment I will write it up and share it.

Mot007 commented 11 months ago

Hi TMR104, Have put together a quick schematic. This works for me to an extent but cannot get a 100% fix without understanding what the software is doing. If I had bought an Arduino type driver board, I could have dived into the code but as this is not Arduino, I don’t even know where to begin to find the source code ( it there is one as it came out of China) So for me it is a bandaid fix with better results. You don’t have to modify your main Driver to try it out. I built the test externally when I was first investigating this issue. King regards, Tom

On 15 Aug 2023, at 9:45 pm, 104TMR @.***> wrote:

Hi MOT007, That sounds pretty impressive. I take it 'denounce' should be 'debounce'(?). For those who want to pursue routing - and just for the sake of getting better height maps - are you willing to share the details of the mod you've made? I'm sure others would find it helpful. Cheers...

On Tue, Aug 15, 2023 at 9:35 PM Mot007 @.***> wrote:

Hi Tmr4 Good for you to getsome +be results! What I have found is that the firmware does not denounce the probe input adequately. But having minimal software expertise, I've resorted to a hardware mod on my driver board. Which is a Chinese derivate using a stm38f030 arm controller. Somewhere along the translation they lost the recipe. I don't believe it is the Candle software at fault but the glue software that goes with the GRBL firmware or the GRBL firmware itself. I can't pinpoint it but my hardware mod to my Chinese PCB has allowed me to get a much more precise leveling map that I could ever achieve before. I can live with +/-10 microns on copper probing with a sharp .2mm probe. I take the second reading as the correct one. All the best.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1678788187, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNWQVJ6PLKZII5U7CLDXVNNHZANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1678798461, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZMGDSPPJANHCZOF2PD7DSLXVNOM7ANCNFSM5UGGYDGA. You are receiving this because you commented.

Mot007 commented 11 months ago

probe1.pdf

104TMR commented 11 months ago

Hi Tom, That looks like a very simple, but effective, solution. Great work. 10 micron reproducibility is pretty good. Thanks for sharing. Cheers, Glen

On Sat, Aug 19, 2023 at 12:54 PM Mot007 @.***> wrote:

Hi TMR104, Have put together a quick schematic. This works for me to an extent but cannot get a 100% fix without understanding what the software is doing. If I had bought an Arduino type driver board, I could have dived into the code but as this is not Arduino, I don’t even know where to begin to find the source code ( it there is one as it came out of China) So for me it is a bandaid fix with better results. You don’t have to modify your main Driver to try it out. I built the test externally when I was first investigating this issue. King regards, Tom

On 15 Aug 2023, at 9:45 pm, 104TMR @.***> wrote:

Hi MOT007, That sounds pretty impressive. I take it 'denounce' should be 'debounce'(?). For those who want to pursue routing - and just for the sake of getting better height maps - are you willing to share the details of the mod you've made? I'm sure others would find it helpful. Cheers...

On Tue, Aug 15, 2023 at 9:35 PM Mot007 @.***> wrote:

Hi Tmr4 Good for you to getsome +be results! What I have found is that the firmware does not denounce the probe input adequately. But having minimal software expertise, I've resorted to a hardware mod on my driver board. Which is a Chinese derivate using a stm38f030 arm controller. Somewhere along the translation they lost the recipe. I don't believe it is the Candle software at fault but the glue software that goes with the GRBL firmware or the GRBL firmware itself. I can't pinpoint it but my hardware mod to my Chinese PCB has allowed me to get a much more precise leveling map that I could ever achieve before. I can live with +/-10 microns on copper probing with a sharp .2mm probe. I take the second reading as the correct one. All the best.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1678788187, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AY3ZUNWQVJ6PLKZII5U7CLDXVNNHZANCNFSM5UGGYDGA>

. You are receiving this because you were mentioned.Message ID: @.***>

— Reply to this email directly, view it on GitHub < https://github.com/Denvi/Candle/issues/550#issuecomment-1678798461>, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AZMGDSPPJANHCZOF2PD7DSLXVNOM7ANCNFSM5UGGYDGA>.

You are receiving this because you commented.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1684712464, or unsubscribe https://github.com/notifications/unsubscribe-auth/AY3ZUNX25CYMQSYUKSJ5XCDXWATGLANCNFSM5UGGYDGA . You are receiving this because you were mentioned.Message ID: @.***>

tmr4 commented 11 months ago

The software (GRBL) is just monitoring the probe pin in probe.c probe_state_monitor(). The probing cycle takes place in in motion_control.c mc_probe_cycle(). It looks like it is simply checking if the probe pin goes high or low (this is configurable) during the stepper ISR. I don't think there is any software debouncing.

Mot007 commented 11 months ago

I'd be happy if someone tried the probe to say if it work for them or not. I don't have much confidence on my Chinese supplied hardware. For instance , I changed $102 to half the value (800 to 400) and had no change on the distance travelled🤔

tmr4 commented 11 months ago

We clearly have different hardware. The voltage across my z-probe is greater than 11 volts and exhibits very little bounce. When there is bounce, the rise is slowed from 2 to 5 ms. I'm guessing that this timing was selected to ensure the low state is seen by at least one cycle of the z-stepper ISR. Here's the oscilloscope trace of my typical probe:

Typical Trace

Here are a few less frequent traces with a bounce:

With bounce

With bounce

Clearly all isn't good since I've had problems as well. It's just something else. I think in part it's setting the height at the start of the milling operation consistent with that of the height map. I think the z origin needs reset with the z-probe after the height map is done. I haven't been doing this.

Mot007 commented 11 months ago

Hi TMR4 Firstly, I'm surprised at your probe voltage for today's type logic runs topically either at 5 O 3V. Check your CRO for X1 or X10 setting.🙂 You seem to have found the part of the proving in the ISR which makes sense as a non software person, correct me if I'm wrong, I presume the stepper is called by a timer ISR as the stepper chip does not provide an Interrupt. Correct? So I'm assuming the probe does not have its own IRQ pin and is basically polled. So firstly there is latency in servicing the ISR, then there is the time for a step to occur on the stepper, then there is the chance that the probe input is High when polled (because of bounce), abd there goes another time added to the number of steps before a probe touch is recognised by the software. So the more noise the deeper into the copper, the more time elapsed the bigger the error. Not having all these timming values makes it hard to pinpoint a fix. Also I may be totally wrong! 😉 Some more software enlightenment is needed to get to the bottom of this! Cheers Tom

Mot007 commented 11 months ago

Try and measure with a multimeter instead of the oscilloscope. What hardware are you using? Cheers

On Sun, 20 Aug 2023, 1:38 am tmr4, @.***> wrote:

Perhaps I'm misunderstanding your circuit or we have different hardware. The voltage across my z-probe is greater than 11 volts.

— Reply to this email directly, view it on GitHub https://github.com/Denvi/Candle/issues/550#issuecomment-1685030395, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZMGDSOA5WVXL67N7RJ4OYTXWDMYZANCNFSM5UGGYDGA . You are receiving this because you commented.Message ID: @.***>

tmr4 commented 11 months ago

I get the same probe voltage with a multimeter. I have the Genmitsu 3018 ProVer V2. There must be some level conversion going on. It might be hidden in the probe. I haven't been able to find much information about it.

I think your understanding of the probe routine is correct. Here is the probe state monitor:

// Monitors probe pin state and records the system position when detected. Called by the stepper ISR per ISR tick.
// NOTE: This function must be extremely efficient as to not bog down the stepper ISR.
void probe_state_monitor()
{
  if (sys_probe_state == PROBE_ACTIVE) {
    if (probe_get_state()) {
      sys_probe_state = PROBE_OFF;
      memcpy(sys.probe_position, sys.position, sizeof(sys.position));
      bit_true(sys_rt_exec_state, EXEC_MOTION_CANCEL);
    }
  }
}
Mot007 commented 11 months ago

TMR4, are you able to tell me what processor your Genmitsu 3018 ProVer V2 has and the version it returns via $i

tmr4 commented 11 months ago

Mot007, I haven't seen the specific processor listed, but the specs say it's a 32-bit ARM. $I returns [VER:ARM32 V2.2.20220826:] [OPT:VZL,35,254]