Surfacemap Z compensation with Probe Basic
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
01 Aug 2025 16:32 - 01 Aug 2025 21:18 #332632
by --Matt--
Surfacemap Z compensation with Probe Basic was created by --Matt--
I've got linuxcnc 2.9.3 installed on Debian 12 Bookworm with prempt RT kernel. I followed these instructions to install Probe Basic via apt.
kcjengr.github.io/probe_basic/stable_quick_start_apt.html
(Actually, I've tried both stable and dev versions).
I'd like to try Z-compensation via external offsets and was hoping to use surfacemap to automatically probe an XY grid of heights. (This is for PCB engraving on a mini mill).
Surfacemap is apparently implemented as a Probe Basic user tab:
github.com/zmrdko/01_surfacemap?tab=readme-ov-file
In the probe basic probing tabs I've had a few troubles with the entry boxes in the UI not accepting values. I think I managed to fix this problem by adding missing variables into the parameters files.
The surfacemap user tab seems to be giving me similar problems but I wasn't able to fix that just by adding parameters.
Has the surfacemap code perhaps been broken by the latest version of probe basic? Or had it perhaps never reached a fully working state?
Any other options for automated Z-level probing and compensation?
kcjengr.github.io/probe_basic/stable_quick_start_apt.html
(Actually, I've tried both stable and dev versions).
I'd like to try Z-compensation via external offsets and was hoping to use surfacemap to automatically probe an XY grid of heights. (This is for PCB engraving on a mini mill).
Surfacemap is apparently implemented as a Probe Basic user tab:
github.com/zmrdko/01_surfacemap?tab=readme-ov-file
In the probe basic probing tabs I've had a few troubles with the entry boxes in the UI not accepting values. I think I managed to fix this problem by adding missing variables into the parameters files.
The surfacemap user tab seems to be giving me similar problems but I wasn't able to fix that just by adding parameters.
Has the surfacemap code perhaps been broken by the latest version of probe basic? Or had it perhaps never reached a fully working state?
Any other options for automated Z-level probing and compensation?
Last edit: 01 Aug 2025 21:18 by --Matt--.
Please Log in or Create an account to join the conversation.
- DauntlessA
- Offline
- Junior Member
-
Less
More
- Posts: 23
- Thank you received: 5
02 Aug 2025 00:39 #332654
by DauntlessA
Replied by DauntlessA on topic Surfacemap Z compensation with Probe Basic
Hi,
I'm not too familiar with the integration into probe basic, but I'm pretty sure the surfacemap tab did work when it was released.
It's possible that posting your config might help narrow down any issues.
And can you show your halshow for the relevant pins when you believe it should be enabled?
Also, It is possible to use the compensation component standalone, with no involvement from probe basic, even if the process is slightly more manual.
Use the version from Scott's Repo and follow the instructions there:
github.com/scottalford75/LinuxCNC-3D-Pri.../master/compensation
For PCB milling, I think that this compensation component should work really well. Since the component is taking the current XY point and outputting compensation in Z, it's always 'playing catch-up' as the machine moves, but unless you're demanding very quick changes in the compensated value (think feeding fast over a rough surface) any deviation in the compensated position isn't really much of an issue.
I haven't tried any other compensation approaches, but G-Code Ripper with the Auto-Probe operation can warp your G-Code to the probed surface.
The version bundled with LinuxCNC is located in the /usr/lib/python3/dist-packages/qtvcp/lib/ripper/ directory (and you can run it standalone if you want).
I'm not too familiar with the integration into probe basic, but I'm pretty sure the surfacemap tab did work when it was released.
It's possible that posting your config might help narrow down any issues.
And can you show your halshow for the relevant pins when you believe it should be enabled?
Also, It is possible to use the compensation component standalone, with no involvement from probe basic, even if the process is slightly more manual.
Use the version from Scott's Repo and follow the instructions there:
github.com/scottalford75/LinuxCNC-3D-Pri.../master/compensation
For PCB milling, I think that this compensation component should work really well. Since the component is taking the current XY point and outputting compensation in Z, it's always 'playing catch-up' as the machine moves, but unless you're demanding very quick changes in the compensated value (think feeding fast over a rough surface) any deviation in the compensated position isn't really much of an issue.
I haven't tried any other compensation approaches, but G-Code Ripper with the Auto-Probe operation can warp your G-Code to the probed surface.
The version bundled with LinuxCNC is located in the /usr/lib/python3/dist-packages/qtvcp/lib/ripper/ directory (and you can run it standalone if you want).
Please Log in or Create an account to join the conversation.
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
03 Aug 2025 15:51 #332730
by --Matt--
Replied by --Matt-- on topic Surfacemap Z compensation with Probe Basic
I think I'll have to go back a couple of steps and try to fix my probe basic config before I continue work on this.
I seem to be having the same trouble as this other user...
forum.linuxcnc.org/qtpyvcp/56674-probe-b...-parameter-variables
I was able to get basic probing routines working by manually editing the parameters in the var file. However, the link between values entered in the ui boxes and the var file seems to be broken. If you try to change a value by entering it in a box it just doesn't do anything.
Is there a place where all the necessary configuration steps are a set out clearly?
I was trying to follow these but evidently they are not totally clear and a bit lacking:
kcjengr.github.io/probe_basic/index.html
I think my config got messed up a couple of times, e.g. by copying values for an imperial machine into my metric machine's setup. The parts that need editing could be made a bit clearer.
I seem to be having the same trouble as this other user...
forum.linuxcnc.org/qtpyvcp/56674-probe-b...-parameter-variables
I was able to get basic probing routines working by manually editing the parameters in the var file. However, the link between values entered in the ui boxes and the var file seems to be broken. If you try to change a value by entering it in a box it just doesn't do anything.
Is there a place where all the necessary configuration steps are a set out clearly?
I was trying to follow these but evidently they are not totally clear and a bit lacking:
kcjengr.github.io/probe_basic/index.html
I think my config got messed up a couple of times, e.g. by copying values for an imperial machine into my metric machine's setup. The parts that need editing could be made a bit clearer.
Please Log in or Create an account to join the conversation.
- Lcvette
-
- Offline
- Moderator
-
Less
More
- Posts: 1449
- Thank you received: 701
03 Aug 2025 16:26 #332737
by Lcvette
Replied by Lcvette on topic Surfacemap Z compensation with Probe Basic
kcjengr.github.io/probe_basic/probe_basic_parameters.html
these are all the parameters used by probe basic, they need to be listed in the var file for them to be persistent otherwise they will be volatile per linuxcnc docs.
please feel free to rewrite the docs, i absolutely would love for someone to handle that aspect as its not the easiest to find a way that everyone understands and clearly my approach could use some expert assistance!
the docs also are meant for the develop version. I have gotten a bit side tracked on another project and haven't had time to update the release from develop to stable, but it is what will soon be the stable version. when in doubt, its always best to check and see if the sim works, if it does but your machine config does not, you can move forward knowing their is an issue with your configuration files. you can always compare to the sim config files that do work and those should give you a working installation.
these are all the parameters used by probe basic, they need to be listed in the var file for them to be persistent otherwise they will be volatile per linuxcnc docs.
please feel free to rewrite the docs, i absolutely would love for someone to handle that aspect as its not the easiest to find a way that everyone understands and clearly my approach could use some expert assistance!
the docs also are meant for the develop version. I have gotten a bit side tracked on another project and haven't had time to update the release from develop to stable, but it is what will soon be the stable version. when in doubt, its always best to check and see if the sim works, if it does but your machine config does not, you can move forward knowing their is an issue with your configuration files. you can always compare to the sim config files that do work and those should give you a working installation.
Please Log in or Create an account to join the conversation.
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
03 Aug 2025 18:40 - 03 Aug 2025 22:18 #332744
by --Matt--
Replied by --Matt-- on topic Surfacemap Z compensation with Probe Basic
Unfortunately the documentation needs to be written by someone who understands how the configuration is supposed to be done. So, I can't help with that.
I saw that you had previously recommended testing the sim but it isn't clear how that is helpful. Does the sim work - well no, it doesn't control my machine, it can't do anything. It doesn't give any errors if that is what you mean?
Obviously most errors are going to be introduced by mis-configuration. But that problem will persist until the process is well documented.
Is it the intention that the user attempts to enter his machine specific configuration into the sim? If so, I missed this step, was it actually part of the instructions?
For the best chance of success, with the current code state, should I be trying the develop version then?
I did notice that when I tried to open one of the files it told me that it couldn't locate the src files (including these was not part of the normal install instructions).
I saw that you had previously recommended testing the sim but it isn't clear how that is helpful. Does the sim work - well no, it doesn't control my machine, it can't do anything. It doesn't give any errors if that is what you mean?
Obviously most errors are going to be introduced by mis-configuration. But that problem will persist until the process is well documented.
Is it the intention that the user attempts to enter his machine specific configuration into the sim? If so, I missed this step, was it actually part of the instructions?
For the best chance of success, with the current code state, should I be trying the develop version then?
I did notice that when I tried to open one of the files it told me that it couldn't locate the src files (including these was not part of the normal install instructions).
Last edit: 03 Aug 2025 22:18 by --Matt--.
Please Log in or Create an account to join the conversation.
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
03 Aug 2025 19:24 - 03 Aug 2025 20:00 #332749
by --Matt--
Replied by --Matt-- on topic Surfacemap Z compensation with Probe Basic
I've looked again at the probe basic sim options...
Firstly, when I launch linuxcnc and the configuration selector comes up, under Sample Configurations > sim there are entries for other guis but none for probe basic. (It seems like that is where I should find the sim).
Instead under My Configurations there is:
probe_basic
> pb_required_ini_settings
> probe_basic
I think the last one is what you are referring to as the sim.
(I also have the probe_basic config I've been trying to get working but saved under a different name).
When I run that thing we are calling the "sim" it shows me the probe_basic screen and gives no errors. On the main page I can move the virtual spindle with the jog buttons.
However, I can't load a tool onto the spindle and all of the probe operations are greyed out.
Edit: I deleted the pb_required_ini_settings file and that option disapeared from the configuration selector. I also managed to load the probe into the spindle in the sim (which stopped the the probe operations being greyed out). However probe operations failed due to not hiting anything before the maximum distance. (which I guess is expected because it is a sim)?
So, I think the sim is working. Am I supposed to test more than this? If so, what?
Firstly, when I launch linuxcnc and the configuration selector comes up, under Sample Configurations > sim there are entries for other guis but none for probe basic. (It seems like that is where I should find the sim).
Instead under My Configurations there is:
probe_basic
> pb_required_ini_settings
> probe_basic
I think the last one is what you are referring to as the sim.
(I also have the probe_basic config I've been trying to get working but saved under a different name).
When I run that thing we are calling the "sim" it shows me the probe_basic screen and gives no errors. On the main page I can move the virtual spindle with the jog buttons.
Edit: I deleted the pb_required_ini_settings file and that option disapeared from the configuration selector. I also managed to load the probe into the spindle in the sim (which stopped the the probe operations being greyed out). However probe operations failed due to not hiting anything before the maximum distance. (which I guess is expected because it is a sim)?
So, I think the sim is working. Am I supposed to test more than this? If so, what?
Last edit: 03 Aug 2025 20:00 by --Matt--.
Please Log in or Create an account to join the conversation.
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
03 Aug 2025 21:03 - 03 Aug 2025 22:15 #332762
by --Matt--
Replied by --Matt-- on topic Surfacemap Z compensation with Probe Basic
Just discovered that the .var file was created with group and other permissions set to read only. Changing these to read and write seems to have made a difference. The probe feed speeds now seem to be updating based on values entered in the ui.
The ui entry boxes for probe feed settings in the surfacemap user tab still don't work properly.
The ui entry boxes for probe feed settings in the surfacemap user tab still don't work properly.
Last edit: 03 Aug 2025 22:15 by --Matt--.
Please Log in or Create an account to join the conversation.
- Lcvette
-
- Offline
- Moderator
-
Less
More
- Posts: 1449
- Thank you received: 701
04 Aug 2025 02:50 #332785
by Lcvette
Replied by Lcvette on topic Surfacemap Z compensation with Probe Basic
I'm not super familiar with surface map, but I would guess it's because the bar doesn't have those parameters or the subroutines that updates the bar have those and needs to be updated.
Please Log in or Create an account to join the conversation.
- Lcvette
-
- Offline
- Moderator
-
Less
More
- Posts: 1449
- Thank you received: 701
04 Aug 2025 02:52 #332786
by Lcvette
Replied by Lcvette on topic Surfacemap Z compensation with Probe Basic
Did you follow the surface map read me instructions and copy over the subroutines? Those are what set the var file parameters for surface map page
Please Log in or Create an account to join the conversation.
- --Matt--
- Offline
- New Member
-
Less
More
- Posts: 19
- Thank you received: 2
04 Aug 2025 12:47 - 04 Aug 2025 12:52 #332815
by --Matt--
Replied by --Matt-- on topic Surfacemap Z compensation with Probe Basic
Yes, I did.
The surface_scan_param_update.ngc file only seems to handle parameters 3050-3054. These are associated with the ui buttons that seem to work.
github.com/zmrdko/01_surfacemap/blob/mai...can_param_update.ngc
The surface_scan.ngc file mentions several other parameters:
3055, 3057, 3058, 3059, 3060, 3061, 3062, 5061, 5062, 5063, 5403
github.com/zmrdko/01_surfacemap/blob/mai...nes/surface_scan.ngc
I did try adding these to the .var file but that didn't work. Perhaps they also need to be added in a similar way to surface_scan_param_update.ngc?
Another problem is that the instant you try to type a character into the ui boxes for feedrate on the surfacemap user tab it attempts to do something. I.e. It doesn't wait until you enter the value, it tries to send individual characters.
The surface_scan_param_update.ngc file only seems to handle parameters 3050-3054. These are associated with the ui buttons that seem to work.
github.com/zmrdko/01_surfacemap/blob/mai...can_param_update.ngc
The surface_scan.ngc file mentions several other parameters:
3055, 3057, 3058, 3059, 3060, 3061, 3062, 5061, 5062, 5063, 5403
github.com/zmrdko/01_surfacemap/blob/mai...nes/surface_scan.ngc
I did try adding these to the .var file but that didn't work. Perhaps they also need to be added in a similar way to surface_scan_param_update.ngc?
Another problem is that the instant you try to type a character into the ui boxes for feedrate on the surfacemap user tab it attempts to do something. I.e. It doesn't wait until you enter the value, it tries to send individual characters.
Last edit: 04 Aug 2025 12:52 by --Matt--.
Please Log in or Create an account to join the conversation.
Moderators: KCJ, Lcvette
Time to create page: 0.169 seconds