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! 

 

Forum Navigation
You need to log in to create posts and topics.

SimCNC V3.6 beta2 : trying the auto-leveling feature.

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.

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)

 

PARTNERS:

 

USA

Germany

Slovenia / Bosnia

Spain

South Africa

UNI-CAM

The Netherlands

Portugal

Greece

  Distrib milionis logo

Hungary

Distrib logot

Bulgaria

Master

Kenya

Proteq Automation

Egypt

Germanelectronix

China

Jun Ma

Serbia

ALCO

Italy

LVL tech r

Denmark

Varntoft Dania

Finland