CS-Lab Support Forum for CNC Community
Help to run this brand-new forum and stay with us.
Ask your questions, we are here to help!
SimCNC V3.6 beta2 : trying the auto-leveling feature.
Quote from Christophe Mineau on 10 February 2026, 07:37Hi,
Wanting to explore the new Auto level feature present in V3.6 Beta 2, I installed a new SimCNC setup on Raspi5 (standard raspi distro).
So far I have reached the same level of reliability I had with my previous V3.4 version running on an old Ubuntu PC, so I'm grateful for that new version, thanks CS-lab!Now I am starting to explore this auto-leveling feature.
I start by building up the grid, and for doing so I wanted to use Anton's work shown in another thread of this forum, with some personal adaptations to make a grid convenient for the auto-leveling function as explained in the release notes.But so far, I am having a problem running the gcode in charge of surface scanning the 10 x 10 grid.
I am following Anton's idea for the scanning part, so I have a new screen providing the grid parameters, which generates a gcode program in charge of moving XY to the points and scanning each point using an m42 macro, which code is here (Antons's Work)
https://github.com/Antonowitch/cnc-surface-scan/blob/main/M42.pyBut the problem I have is that the program starts working, scans a few points and then I get an exception :
___EXCEPTION.SimCncException: 'Action is not in idle state'Here is the full stack :
Traceback (most recent call last):
File "/opt/simCNC/profiles/6040Z/scripts/___INIT.py", line 30, in <module>
exec(open(fileName, encoding='utf-8').read())
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 49, in <module>
File "/opt/simCNC/profiles/6040Z/scripts/___DEVICE.py", line 248, in executeProbing
return self.comm.sendAndWait( "executeProbing:" + coordMode.name + ':' + str(position[0])+';'+str(position[1])+';'+str(position[2])+';'+str(position[3])+';'+str(position[4])+';'+str(position[5]) + ':' + str(probeIndex) + ':' + str(velocity) ) == "True"
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/simCNC/profiles/6040Z/scripts/___COMM.py", line 189, in sendAndWait
raise SimCncException(":".join(res[1:]))
___EXCEPTION.SimCncException: 'Action is not in idle state'What does this exception mean ?
Should I understand we cannot use executeProbing from within a running gcode ?
Should I perform the full grid scanning in a python script without using gcode ?Thanks in advance, tell me if you need more details.
Hi,
Wanting to explore the new Auto level feature present in V3.6 Beta 2, I installed a new SimCNC setup on Raspi5 (standard raspi distro).
So far I have reached the same level of reliability I had with my previous V3.4 version running on an old Ubuntu PC, so I'm grateful for that new version, thanks CS-lab!
Now I am starting to explore this auto-leveling feature.
I start by building up the grid, and for doing so I wanted to use Anton's work shown in another thread of this forum, with some personal adaptations to make a grid convenient for the auto-leveling function as explained in the release notes.
But so far, I am having a problem running the gcode in charge of surface scanning the 10 x 10 grid.
I am following Anton's idea for the scanning part, so I have a new screen providing the grid parameters, which generates a gcode program in charge of moving XY to the points and scanning each point using an m42 macro, which code is here (Antons's Work)
https://github.com/Antonowitch/cnc-surface-scan/blob/main/M42.py
But the problem I have is that the program starts working, scans a few points and then I get an exception :
___EXCEPTION.SimCncException: 'Action is not in idle state'
Here is the full stack :
Traceback (most recent call last):
File "/opt/simCNC/profiles/6040Z/scripts/___INIT.py", line 30, in <module>
exec(open(fileName, encoding='utf-8').read())
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 49, in <module>
File "/opt/simCNC/profiles/6040Z/scripts/___DEVICE.py", line 248, in executeProbing
return self.comm.sendAndWait( "executeProbing:" + coordMode.name + ':' + str(position[0])+';'+str(position[1])+';'+str(position[2])+';'+str(position[3])+';'+str(position[4])+';'+str(position[5]) + ':' + str(probeIndex) + ':' + str(velocity) ) == "True"
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/simCNC/profiles/6040Z/scripts/___COMM.py", line 189, in sendAndWait
raise SimCncException(":".join(res[1:]))
___EXCEPTION.SimCncException: 'Action is not in idle state'
What does this exception mean ?
Should I understand we cannot use executeProbing from within a running gcode ?
Should I perform the full grid scanning in a python script without using gcode ?
Thanks in advance, tell me if you need more details.
Quote from Christophe Mineau on 17 March 2026, 11:40So no opinion on my question above ?
why is it not possible to perform a grid scan from the Gcode using Mxx macros ?Meanwhile, I implemented my grid scan fully from a python script and it worked OK.
So I could experiment for real the autoleveling feature and I must say it works very well , both on small surfaces and also on larger ones (well the definition of large depends on you machine, mine is only 600x400mm working area) .
My SimCNC app runs on Raspberry Pi 5, I must also say it's for me the best platform I have tried so far (compared to Windows/Mach3 / Windows /SimCNC , Ubuntu SimCNC)
So no opinion on my question above ?
why is it not possible to perform a grid scan from the Gcode using Mxx macros ?
Meanwhile, I implemented my grid scan fully from a python script and it worked OK.
So I could experiment for real the autoleveling feature and I must say it works very well , both on small surfaces and also on larger ones (well the definition of large depends on you machine, mine is only 600x400mm working area) .
My SimCNC app runs on Raspberry Pi 5, I must also say it's for me the best platform I have tried so far (compared to Windows/Mach3 / Windows /SimCNC , Ubuntu SimCNC)





















