Denvi / Candle

GRBL controller application with G-Code visualizer written in Qt.
GNU General Public License v3.0
1.36k 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

Mot007 commented 1 year ago

20230820_173436 The top trace is the probe input (trigger low) The bottom trace is the Step pin on the Z controller. (Allegro A4988, Chinese version) As you can see the stepper continues for several pulses after the probe input goes low. I did this many times and the pulse numbers varied. All I can think is that the GRBL software in the ISR ( which sets the call to the probe monitor) is skipping due to who knows what. The mapping has improved after removing bounce from the input but I'm still getting wrong values. A good Firmware person should be able to debug and fix this problem.

Mot007 commented 1 year 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]

You should check your probe wiring, and possibly 12V coning from the motor PS!

tmr4 commented 1 year ago

My z-probe has a three pin connector. The control board labels for these are 12V, GRD and Pb which I assume stands for probe. At the control board, the voltage of pin 12V is 12.6 volts and pin Pb 11.6 volts, the same as I measured previously between the probe alligator clip and ground plate. I don't know how Pb is driven; a schematic isn't available. The control board is in an opaque case.

I get the following if I power the z-probe separately at my workbench with about 12.5V in and Pb pulled up to that through a 1k ohm resistor, just because. The probe can't be disassembled for inspection.

SDS00031

The yellow trace is the signal I've shown before, between the z-probe alligator clip and its grounding plate. Here I've shown the alligator clip touching the grounding plate for about 280 ms. The magenta trace is pin Pb relative to GND.

The rise of the magenta trace looks similar to the bounce damping I was seeing before. If the alligator clip is left touching the grounding plate, the magenta trace rises to 0 volts after about a half second. This reverses when the alligator clip is raised.

I could not cause a bounce during these tests so I'm not sure how the magenta trace responds with that.

I want to look at the z stepper signal as well. It seems like a cause for the variability you're seeing. Unfortunately, I won't be able to work on this for a couple of weeks.

Mot007 commented 1 year ago

Here's more food for thought. From Google.

Usually, the surface of the conductor in printed circuit boards is intentionally roughened to enhance the adhesion to the prepregs. Typical surface roughness Rz of the copper foil commonly used in printed circuit board is 6 μm 🤔

poes8943 commented 7 months ago

copied from #626 test steps using Z-probe control button: push Z-probe control button and perform a Z-zero after that (work coordinates now at 0.000 0.000 0.000) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 0.399 now) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 0.807 now) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 1.199 now) ... there seems to be roughly an error of 0.4mm after each step and values adding up ... looks to me like there is an additional 1/10 turn of the spindle(?) (0.4mm)

same test with manual commands: push Z-probe control button and perform a Z-zero after that (work coordinates now at 0.000 0.000 0.000) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.009 now) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.006 now) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.007 now)

Hostaler commented 7 months 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

How do I apply all this so as not to lose precision?

Hostaler commented 7 months ago

How do I apply all this so as not to lose precision?

Hostaler commented 7 months ago

How do I do all this to regain precision in my grbl? In which section should I put it?

El El dom, 11 feb 2024 a las 17:51, poes8943 @.***> escribió:

copied from #626 https://github.com/Denvi/Candle/issues/626 test steps using Z-probe control button: push Z-probe control button and perform a Z-zero after that (work coordinates now at 0.000 0.000 0.000) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 0.399 now) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 0.807 now) jog Z-up 0.5mm and pushing Z-probe control button again (Z axis work coordinate at 1.199 now) ... there seems to be roughly an error of 0.4mm after each step and values adding up ... looks to me like there is one additional full turn of the spindle(?) (4mm)

same test with manual commands: push Z-probe control button and perform a Z-zero after that (work coordinates now at 0.000 0.000 0.000) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.009 now) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.006 now) jog Z-up 0.5mm and executing 'G38.2Z-2F10' (Z axis work coordinate at 0.007 now)

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