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)

 

It is hard to say based on the error message alone. It looks like the executeProbing command in the M42 macro failed because the controller was not in the Idle state (for example, it may have been executing another command or Python action, or it could have been in the ESTOP state).
It is good to hear that you managed to solve the issue by implementing all probing logic inside a single macro. Thank you as well for the feedback regarding the Raspberry Pi port of simCNC.
If you could share how exactly you invoked M42 previously, so that we can try to reproduce the issue, it would help us improve the software in the future 👍

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