Please read this:
https://github.com/openpnp/openpnp/wiki/Machine-Axes#a-word-about-z-coordinates
If Z is still 0, it means that Z is simply not initialized.
That's true for every location in OpenPnP, so changing it in one
place will not achieve much.
_Mark
I am not the only one that can answer such questions, especially such general questions. Please somebody else explain it to Jan.
_Mark
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/5c444880-3820-5849-c578-11483e87a161%40makr.zone.
> So I can't say I truly understand what the question is
Now that I re-read the question, I have to agree.
@Jan, please reformulate the
question. Does the machine not work as expected? In what way? Or
is this just a question for understanding how things work?
> You should likely start with a fresh install and not try to use a machine from someone else.
I would normally agree, but in case of the CMH-T36VA this might
be different. This is supposed to be a standardized off-the-shelf
machine, so another user's machine.xml should actually
work. And there might still be stuff, that needs to be a bit
special, i.e. is not (yet) automatically covered by Issues &
Solutions (or actually wrong, like the serial flow
control).
> Side note to both Mark and Tony, I do not mean to miss credit for all either of you have done for this project. To be honest I have been truly overwhelmed with the progress you guys have made and am unable to keep up with who did what.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BKNHNzbMF498pZmOSriEFESVyLJpxUfBxeL7Mo9GKwWM_KSEQ%40mail.gmail.com.
Hi Jan,
First make sure your setup is neutral:
The Z homing switch might have a certain one-sidedness.
So controller Z=0 is not necessarily the true balance point. This
can be obscured if the nozzle retraction is limited by a bar (the
spring pull being blocked) this may mean that the axis has a "dead
zone", where both nozzles are blocked i.e. the motor can move a
bit before either nozzle is pushed down.
But as long as the nozzles are both balanced (springs blocked by
the bar), this is not actually important. It will be compensated
by the "Nozzle N2 offsets..." Issues & Solutions step:

Having said that...
If it is very important to you to have the machine balanced even
on the G-code/controller level, here is a procedure to
balance it:
_Mark
> However, there are points, where a recommendation would
be very helpful like the fix/dynamic safe-z decision. From
reading this list for a while now, I know that I'm not the only
one seeking for advice and you always respond, that dynamic is
recommended, but one shall be aware of the hang loose movements
that involves.
I'm a bit confused what you actually want it to do.
> To understand his problem, I really like to know where my Z problem is.
See the other reply. I'm confident that when correctly
configured, there will be no such problems.
_Mark
> Changing the binary is a lot of work and probably not many people are willing to do that
Yes you can use
G92 Z<value>
in your HOME_COMMAND, after G28, with <value> from step 6 of my procedure.
Or
M206 Z<value>
before G28, but I never used that, and I'm not sure of the sign of the offset, maybe it would be
M206 Z<-value>
_Mark
> Seems that the original setup by Matt already has Cam Wheel Radius = 8.5
The Cam Wheel Radius and Gap are actually something I'd like to remove, because AFAIK all they add is confusion. Like I wrote here:
Cam Wheel Radius and Cam Wheel Gap are physical properties of the mechanics. However, they both just add a constant offset to the transformation. Because we relate the target Z coordinate to the nozzle tip rather than the nozzle back (where the cam wheel pushes it), such an offset is not purposeful and you will simply end up compensating for it in the nozzle offset. Leave both at zero.
https://github.com/openpnp/openpnp/wiki/Transformed-Axes#referencecamcounterclockwiseaxis
The problem: The cam transform code is originally by Jason,
creator of OpenPnP, and I'm not entirely sure if there isn't a
hidden purpose for these offsets, that I didn't think of so far.
😮 Now that I said all that... I think I can now see how a
non-zero Cam Wheel Radius and Gap can indirectly
create a crash with Issues & Solutions. The "Nozzle N1
offsets" solutions will reset the Z offset to zero, taking away
the Cam Wheel Radius and Gap compensation, that
I mentioned in the Wiki! I will add some form of safety net there.
> Looks like this is a serious issue between CamCounterClockwiseAxis and the default Nozzle Z-Offset of 0 as it degrades your commend, that Z == 0 is always assumed to be safe.
Strictly speaking it is not "always assumed to be safe". Properly written code in OpenPnP must always explicitly look at the Safe Z of the given HeadMountable, and never make any other assumption about Safe Z. Otherwise, it is a bug!
BUT: It is just a fact that Z=0 is the
default/initialization coordinate of any location in OpenPnP, so
if the user forgets to set Z up, before using that location, a
crash can happen! That's why I recommend that Z=0 happens to
be a safe coordinate. If you are a "perfect user" that
never forgets anything, you can use Safe Z above 0.
OpenPnP is intended to support that, any bugs will be
fixed!
Note, that safe Z can be well below Z=0. For instance, a Liteplacer typically has an insanely large Z head-room, and a relatively slow Z axis. Therefore it is recommended to set the Safe Z as low as possible for better speed. On my machine it is at -25mm or something like that. So again, properly written code must always explicitly look at the Safe Z of the given HeadMountable, or it will spoil that optimization!
https://github.com/openpnp/openpnp/wiki/Machine-Axes#a-word-about-z-coordinates
_Mark
Hmmm. This should work. HOME_COMMAND should only set Z. Visual
Homing should only set X, Y.
If you have ResetToFiducialLocation as the visual Homing Method, you should also be able to re-home many times.
I assume you have C-riegels firmware, with the port of my PnP
patches applied, right? This is absolutely needed!
_Mark
In your log the G28 will AFAIK reset the G92 Z2.4 before it.
G28 Z2.4 G28 X0 Y0
G28 actually allows you to specify the coordinate to which to home. So no G92 needed. 😁
_m