Hi _Mark,I've been out of the loop for a couple of weeks and just updated the test code using the updater and something else broke :-(
I can HOME / JOG / MOVE, but running a job causes a Smoothie crash as soon as the pick tries to raise the nozzle. It's ending an invalid feed rate to the Smoothie, like this:2020-10-13 21:39:37.040 Scripting TRACE: Scripting.on Nozzle.AfterPick2020-10-13 21:39:37.053 AbstractHeadMountable DEBUG: N1.moveToSafeZ(1.0)2020-10-13 21:39:37.054 ReferenceNozzle DEBUG: N1.transformToHeadLocation((8.768939, -380.376596, 7.760000, 0.000000 mm), ...) runout compensation: (-0.024939, -0.093404, 0.000000, 0.000000 mm)2020-10-13 21:39:37.054 AbstractHeadMountable DEBUG: N1.moveTo((-6.712000, -379.951000, 0.000000, 0.000000 mm), 1.0)2020-10-13 21:39:37.054 ReferenceNozzle DEBUG: N1.transformToHeadLocation((8.768939, -380.376596, 7.760000, 0.000000 mm), ...) runout compensation: (-0.024939, -0.093404, 0.000000, 0.000000 mm)2020-10-13 21:39:37.058 GcodeDriver DEBUG: [serial://COM13] >> G1 Z0.0000 F0, 60002020-10-13 21:39:37.079 GcodeDriver$ReaderThread TRACE: [serial://COM13] << ok2020-10-13 21:39:37.079 GcodeDriver TRACE: [serial://COM13] confirmed G1 Z0.0000 F02020-10-13 21:39:37.080 GcodeDriver DEBUG: [serial://COM13] >> M400 ; Wait for moves to complete before returning, 60002020-10-13 21:39:37.080 GcodeDriver$ReaderThread TRACE: [serial://COM13] << Error: Undefined feed rate2020-10-13 21:39:37.080 GcodeDriver$ReaderThread TRACE: [serial://COM13] << Entering Alarm/Halt state2020-10-13 21:39:37.081 GcodeDriver$ReaderThread TRACE: [serial://COM13] << !!2020-10-13 21:39:43.080 ReferenceActuator DEBUG: TOWER FINISHED.actuate(false)2020-10-13 21:39:43.080 GcodeDriver DEBUG: [serial://COM13] >> M400 ; Wait for moves to complete before returning, 60002020-10-13 21:39:43.081 GcodeDriver$ReaderThread TRACE: [serial://COM13] << !!2020-10-13 21:39:49.080 SystemLogger ERROR: java.lang.Exception: Timeout waiting for response to M400 ; Wait for moves to complete before returningI know there's been a ton of discussion around this and I can't sort out the problem from the noise.For reference, I've tried a couple of the motion models with the same results and this is my current default move command as we've discussed a few times before :G1 {X:X%.4f} {Y:Y%.4f} {Z:Z%.4f} {A:A%.4f} {B:B%.4f} {FeedRate:F%.0f}Also .... did I read somewhere in the posts that you determined that 3rd Order Control was just too much for Smoothie ??
On Friday, 9 October 2020 at 22:29:39 UTC+1 ma...@makr.zone wrote:Hi allthis is a continuation of the already bursting thread here:If have just created a new Pull Request, naturally based on the previous work.I will now start writing instruction, directly in the Wiki (unlinked pages). Once there is a minimal set of instructions, it will make sense to provide a new testing version.Or I can create it now, if Jason is ok with that and you guys feel adventurous. ;-)_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
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/93447263-30b8-4f84-a1c6-fb7a0da39114n%40googlegroups.com.
勇気とユーモア
Hi Duncan
I didn't know there was an updater ;-)
I first wanted to document things in the Wiki before announcing
the new testing version.
While it should still be the case that machines are automatically migrated from the current develop version of OpenPnP 2.0, there are some things that need to be tweaked for the early adopters, i.e. those that already have migrated using the earlier testing versions.
The first thing to check would be the Motion Control Type on the GcodeDriver:

The choice is up to you.
Then you need to increase the precision of the F word and add the
acceleration control. I also reduced the precision for the axes
down to two digits after the point (10 µm), assuming mm units. But
you can increase that if you like:
{Acceleration:M204 S%.2f} G1 {X:X%.2f} {Y:Y%.2f} {Z:Z%.2f} {A:A%.2f} {B:B%.2f} {FeedRate:F%.2f} ; move to target
NOTE: if you choose ToolpathFeedRate the
acceleration will be automatically omitted from the command.
It probably warned you about missing Safe Z, right? This is lost
for the early adopters, but it will be automatically migrated for
those coming directly from develop OpenPnP 2.0.
I'm not sure whether you already have the new Backlash
Compensation set from before? The new DirectionalCompensation
is really making a big difference on my machine.
That's what I remember for early adopters to tweak.
Some things are already documented but that's still work in progress:
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e76de4bd-201d-4582-af12-c29c9faed171n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a6d5008b-3f21-4807-b5f2-4adb1b5e213cn%40googlegroups.com.
Hi Duncan
What is your driver Motion Control Type? If you have
ToolPathFeedRate (the old way) you must set a feed-rate in the
Driver. I will add a check.
Could you send me the machine.xml?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/4586236a-9b22-446d-ab23-ac6eaa61c505n%40googlegroups.com.
Hi Duncan
Smoothie is not a Full3rdOrderControl controller, unfortunately.
There is currently no such controller (Open Source) AFAIK, but
hopes are, that some will be available soon, there are multiple
people currently developing one.
Smoothie will ignore any jerk limit. Try
ModeratedConstantAcceleration:

Are you still having the Feedrate issue?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/c85ae0b4-3016-4e6d-8bfb-50fb125e6a0en%40googlegroups.com.
Hi Duncan
The documentation is growing:
But I must call it a day...
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e13cc6b1-eddd-d1f2-dfca-1491b85063ed%40makr.zone.
Hi Wolfgang
Thanks!
The regex is for Smoothieware (I should note that in the Wiki).
Duet has a different report (from the log):
X:20.000 Y:0.000 Z:0.000 A:0.000 B:0.000 E:0.000 E0:0.0 Count 1600 0 0 0 0 Machine 20.000 0.000 0.000 0.000 0.000 Bed comp 0.000
You must adjust the regex accordingly. I'm not a regex expert,
there are online tools to check it.
Just a guess:
^X:(?<X>-?\d+\.\d+) Y:(?<Y>-?\d+\.\d+) Z:(?<Z>-?\d+\.\d+) A:(?<A>-?\d+\.\d+) B:(?<B>-?\d+\.\d+).*
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/03957e4e-7036-4134-9598-f70193ca2aadn%40googlegroups.com.
Hmmm, need a bit more info.
log? machine.xml?
One thing: on the Axis it is units per second ¹ ² ³ but
on the driver it is units per minute for
historical reasons. Should I change the latter?
For Simulated3rdOrder I recommend deleting the Driver limit.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f4fe4de9-8b57-4780-843d-ee37ea108095n%40googlegroups.com.
Yes!
That small number was needed, because it was relative to the
theoretical top speed of the machine that is only
reached for a very long move.
But if you have a very short move (like in the BlindsFeeder), you
needed to use a very small number.
Now the speed factor is relative to the time needed
at full speed. If you put 0.5 it takes 1/0.5 = 2 times as
long in time. Both small and long moves can be scaled easily and
usefully.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/4aa6adda-37cb-4165-86e3-96abcaf206c0n%40googlegroups.com.
Hi everybody
The Wiki is mostly useful now. New or largely changed pages (since the last post) are marked with *
Start with the first page and then "hyperlink" from there as
needed.
The testing version can be downloaded here:
https://openpnp.org/test-downloads/
One impression:

You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/GtCDy2p8Pbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/d876d6bb-b394-d259-944c-2857833ff769%40makr.zone.
> It's not being used for jog moves right?
It definitely should!
I really have to call it a day, so please read the Wiki and see
if you find the culprit. it should be everything in there now.
Note that Motion Blending is really just experimental
and while it can be demonstrated at reduced speed and for short
moves, it will not be practical overall on Smoothieware.
But I have high hopes for Duet 3D 3!
As you might recall, dc42 of Duet3D kindly donated one to me
and I will start experimenting with it as soon as I got the
courage to dig out my crimping tool to make the plugs required for
the steppers. I hate those things, and I'm sure I will botch half
of them ;-)
Erm... any tips & tricks for the crimping?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e54ba67f-5668-45e8-ab5c-753c17fc52b4n%40googlegroups.com.
> It's not being used for jog moves right?
It definitely should!
I really have to call it a day, so please read the Wiki and see if you find the culprit. it should be everything in there now.
Note that Motion Blending is really just experimental and while it can be demonstrated at reduced speed and for short moves, it will not be practical overall on Smoothieware.
But I have high hopes for Duet 3D 3!
As you might recall, dc42 of Duet3D kindly donated one to me and I will start experimenting with it as soon as I got the courage to dig out my crimping tool to make the plugs required for the steppers. I hate those things, and I'm sure I will botch half of them ;-)
Erm... any tips & tricks for the crimping?
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/d6242da8-7302-b4c1-ae97-d28c9ec34f50%40makr.zone.
勇気とユーモア
> http://smoothieware.org/general-appendixes#crimping-connectors
Thanks, Arthur!
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/GtCDy2p8Pbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CAMHZkm5Vmrtpxc%3DJ2-Rpyuo4R54eGwaa%3DeW_hDYZLqh%3DQgSdvg%40mail.gmail.com.
> Do I read the documentation right it would be best to set high and low both to -10?
No, assuming Z=0 is at the balance point (both nozzles at same height), that would be -10 and 10.
Because I don't own a multi-nozzle machine, could you please test
this for me:


Does this work as intended?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/ca5bcce8-9c6b-471f-a172-66ad2ae1adedn%40googlegroups.com.
Hi Wolfgang
> I have run my very first board on my machine to day - yes I know, I'm completely nuts running the test version on my first board - however it worked much much better than I was hoping my first board would go!
Cool! I'm really grateful for your spirit there!
> ... where some moves produced a timeout
I've found and fixed a stupid typo-bug that would generate a
near-zero or even zero feed-rate when using any of the Motion
Control Types other than ModeratedConstantAcceleration
or Simulated3rdOrderControl.
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#gcodedriver-new-settings
This should no longer happen with the current testing build. All
Motion Control Types should now work.
_Mark
--
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/GtCDy2p8Pbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/ec107728-4277-476a-a4bf-cee2d59a01dcn%40googlegroups.com.
Hi Wolfgang
@dc42 are you reading this?
Question/discussion for you in the text. Thanks!
> I was using Simulated3rdOrderControl.
Ahh, ok. Do you use jerk control on the nozzle rotation axes?
If yes, there is an open issue. :-(
I can solve it on Smoothie, but don't know about Duet (yet). I'll try to explain (this is also thought as a documentation of that issue):
When you have nozzle runout compensation, doing rotations will also generate very small adjustments in X/Y. If you have a (relatively) large rotation, then the X/Y will move veeeeery slowly in coordination with the angular move.
Now the jerk control interpolation will break up the movement
into many time steps and these already tiny X/Y movements will be
divided into truly microscopic step-wise movements. Some
of those will then collapse below one micro-step/resolution tick,
i.e. become zero for some of the interpolation steps.
Side note: We need to handle this "collapse to zero" due
to the G-code decimal output with limited digits and due to the
fact, that some controllers will swallow tiny moves and then
behave unpredictably, for similar reasons as described below.
Consequently, the X/Y axes will sometimes be included in an
interpolation segment and sometimes not. Only the C axis will
always be included. Now we're in big poodoo because of the NIST
RS274/NGC Interpreter - Version 3 standard:
https://www.nist.gov/publications/nist-rs274ngc-interpreter-version-3
More specifically section "2.1.2.5 Feed Rate":
A. For motion involving one or more of the X, Y, and Z axes (with or without simultaneous
rotational axis motion), the feed rate means length units per minute along the
programmed XYZ path, as if the rotational axes were not moving.B. For motion of one rotational axis with X, Y, and Z axes not moving, the feed rate means
degrees per minute rotation of the rotational axis.C. For motion of two or three rotational axes with X, Y, and Z axes not moving, the rate is
applied as follows. Let dA, dB, and dC be the angles in degrees through which the A, B,
and C axes, respectively, must move. Let D = . Conceptually, D is a
measure of total angular motion, using the usual Euclidean metric. Let T be the amount
of time required to move through D degrees at the current feed rate in degrees per
minute. The rotational axes should be moved in coordinated linear motion so that the
elapsed time from the start to the end of the motion is T plus any time required for
acceleration or deceleration.
As you see, the meaning of the feed-rate changes completely,
between when X/Y are or aren't included in the
interpolation step. In the case of Smoothie this will force the
internal move planner to zero junction speed between these
segments. This probably explains the timeout you saw, OpenPnP was
going on with calibration, while the nozzle was still turning
veeeery slowly elsewhere.
I don't know (yet) about Duet. The remedy for now,
unfortunately, is to set Jerk to zero on the rotation
axes.
https://github.com/openpnp/openpnp/wiki/Machine-Axes#kinematic-settings--axis-limits
But maybe there is a similar setting for
Duet?
@dc42 are you reading this? (I will
explore the source code, but I assume you'd know directly)
With "PAXIS" or similar, the C axes now need to be treated as linear by OpenPnP and this can be done using the Switch Linear ↔ Rotational checkbox here:
https://github.com/openpnp/openpnp/wiki/Machine-Axes#controller-settings
My goal is to find a solution that is standards compliant. The idea is to do the tiny X/Y move first, then the rotation alone. This will work without much of a speed penalty for runout compensation but not for motion blending, where a rotation axis is involved. So a "PAXIS" style solution would be best!
I will also make the new Smoothieware firmware available for
download soon...
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/243851d5-f3c5-4a60-91d6-b1be004e13bfn%40googlegroups.com.
Hi Wolfgang
> maybe you could even have a quick check on my machine.xml
No, the open issue I was suspecting does not apply. In fact, you
have no Jerk set anywhere.
In order to exploit the benefits of Simulated3rdOrderControl,
you really need to set Jerk on X and Y.
I hope I explain this understandably here:
https://github.com/openpnp/openpnp/wiki/Machine-Axes#kinematic-settings--rate-limits
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#interpolation
> I was also trying to speed up the rotation (especially
when no parts are on the nozzle), but since it uses the same
feedrate setting but in a different unit (degrees instead of mm)
there's only little options.
Not anymore! That's one of the reasons, I moved the feed-rate, acceleration (jerk) limits to the individual axes.
https://github.com/openpnp/openpnp/wiki/Machine-Axes#kinematic-settings--rate-limits
In fact, I recommend setting the Max Feed Rate on the
driver to zero (i.e. switching it off) and only using the axes
limits.
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#gcodedriver-new-settings
Note: this would be completely wrong for milling, laser cutting
or 3D-printing, but it is best for Pick & Place.
_Mark
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
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/ff252b26-0dde-4241-a65d-8fd78c38a471n%40googlegroups.com.
No, much higher values, I'm using 30000mm/s3 on a Liteplacer (which is terrible in terms of vibrations).
I expect you can use three, four times as much on a stiffer machine.
> I assume the lower the smoother (but slower)?
Correct ;-)
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/591c627e-01ec-4f38-8764-9659e0990889n%40googlegroups.com.
Hi
For the Smoothieware users: I've made a new firmware required for the OpenPnP 2.0 testing version.
https://makr.zone/smoothieware-new-firmware-for-pnp/500/
Not recommended for the regular OpenPnP 2.0 version.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/6dec62c9-7e16-df1b-0249-c03ba88b45e2%40makr.zone.
> Does this version definitely include the mod-homing mod?
Yes, everything in there is documented here:
> But I'm finding an issue where the fiducials are failing whereas they were rock solid before
Strange. From which version have you upgraded?
> video jogging is really off, it like the jogging is in the wrong direction- is there any interdependency here?
Jogging has changed a while back:
https://www.youtube.com/watch?v=0TvqQBkTGP8
Relative to you previous (productive) version, is this new for
you?
But I'll also have a look at it on my machine now. There were some changes there (virtual axes), maybe I introduced a bug.
https://github.com/openpnp/openpnp/wiki/Machine-Axes#referencevirtualaxis
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/93ce5b0b-cfd0-4db4-8e63-b1563b64b4e3n%40googlegroups.com.
Hi Duncan
> But I'll also have a look at it on my machine now. There were some changes there (virtual axes), maybe I introduced a bug.
I see no anomalies. In fact jogging is now really much better
on my shaky Liteplacer.
Can you be more specific?
_Mark
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
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/b4a988c8-c596-e579-8085-d917b3f1112b%40makr.zone.
Hi Duncan
Smoothie has a step rate limit of I think ~100kHz. You'll reach
that easily with typical configurations, if you don't limit the
micro-stepping. I use 16 micro-steps and that's already borderline
on a 2mm belt, 20 tooth pulley, 1.8° stepper.
As to the Kinematic settings, it is very important to match or be
lower than the config.txt
rates. Otherwise the planning will be totally off and you will get
very strange movement.
> Jogging and Fiducial checking is still way off though
You mean visual jogging only, right?
Bottom or Top camera?
Have you checked the Flip Transform in the camera?

You should typically have one of them enabled in the
Bottom Cam (it is a mirror image!) and none in the Down
looking Cam.
But I see no way how this could have been botched by the migration, really!!!
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a7db06e0-5c30-42dd-a421-f563f065ebf3n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/1541c608-dbe6-82d0-f7d7-b86d16709b09%40makr.zone.
Hi Bert
I 'm not sure I understand the question right. The following is
just a general explanation, so don't feel offended, if you know
all that ;-)
The Safe Zone is a zone where OpenPnP can move without any risk
of collisions. By defining it, you are telling OpenPnP that there
are no feeders, nozzle tip changers etc. anywhere in that zone.
You always have a Save Zone in the Z axis. The other axes (X, Y)
can also have a Safe Zone, but for another purpose, namely to
allow uncoordinated i.e. curved motion rather than just straight
lines from location A to B. OpenPnP always had a Safe Z, think of
it as a Safe Z Zone that happens to be compressed flat.
The typical move in OpenPnP is the moveToLocationAtSafeZ()
pattern.
It first moves all HeadMountables (Nozzles etc.) that are
currently outside the Safe Zone vertically up to the nearest limit
of the Safe Zone of the Z axis. Note: on multi-nozzle shared axis
machines this can be from either side of the Z axis.
Then it is free to move anywhere in X/Y. No collisions.
Then it goes back down in Z to the target location.
If you were to extend your Safe Z Zone down all the way, it would
just never lift the nozzle and scratch it over the table (and
worse) going to the target location.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BKNHNx_jfPT8u0DLnCLHWq5BYXzjR4asKTjPZ65PZ1iyA-juQ%40mail.gmail.com.
This might help others who read this understand why I made it:

Having the Safe Z Zone allows the motion planner to do Motion
Blending, avoiding 90° corners that slow down the machine
(experimental).
https://github.com/openpnp/openpnp/wiki/Motion-Planner#motion-blending
It also helps for multi-nozzle machine that have a lot of Z
head-room, i.e. where lifting up the Nozzle to the balance-point
(where the nozzles are at same height) is a waste of time. Using
the Zone, you can let the machine optimize this. Assuming you can
live with the asymmetry of "limping nozzles" ;-).
https://github.com/openpnp/openpnp/wiki/Machine-Axes#kinematic-settings--axis-limits
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/75e0e145-cf46-29f1-04cd-1588a891c987%40makr.zone.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/1e4c7fbe-7ce5-568d-8a78-a0d7b0c0849f%40makr.zone.
Hi Duncan
> I've had a couple of instances where OpenPnP has
just trashed all 3 configuration files leaving them blank :-(
I've never had that, even while constantly messing around in the
debugger, killing processes etc. Are you sure the drive is
ok? What OS is that?
Also: whenever I do a significant config change, I backup these
files. Not for fear of malfunction, but for fear of being stupid,
myself ;-)
> FWIW, I also went back to the stepper drivers and
reconfigured them for a 20% lower step angle (now an effective
0.036° per step, which is a 1/20th microstepping on a 0.72°
Motor), this gives 400 steps per mm on my machine, which should
be plenty.
I've never heard that you can configure the step angle of a stepper in the driver. Step angle is a profoundly physical property of the motor. Are you sure about this?
> Here's my next problem, A/B Rotation moves are giving me quite different results. Here is a commanded 100° rotation on Nozzle 1, them nozzle 2. As you can see, Nozzle 1 has crazy low speed parameters and includes XY, but Nozzle 2 is as expected.
Sounds exactly like this problem, triggered through runout
calibration.
https://makr.zone/smoothieware-problems-with-mixed-axis/356/
Obviously only one of your nozzles has enough of it to trigger a X/Y move along with the rotation (Advanced Motion Control will suppress runout compensation, if it below axis resolution). Have you flashed my firmware?
https://makr.zone/smoothieware-new-firmware-for-pnp/500/
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/cff921bd-93aa-4530-9bd5-be45759de5a6n%40googlegroups.com.
> Which I did not have set. So BOTH C1 and C2 axes need this set, right?
Yes, correct.
And Yes that would also explain the effects observed ... it's the same thing caused for two different reasons ;-)
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/22f467ff-83b1-4821-8e54-a8de571685b4n%40googlegroups.com.
> I've gone back to a known good (pre-new stuff) configuration and tested it.
To make sure: with that you are referring to the new OpenPnP version with auto-migrated config? And it worked flawlessly?
That alone is still a very important intermediate goal for me.
;-)
Checklist for the new stuff:

I'm sure we get this working better than before!
:-)
_Mark
--
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/GtCDy2p8Pbg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/d7caf84e-02aa-4290-b971-ea29a8b93c2en%40googlegroups.com.
Hi Duncan
Wow, a large reply, hop you are reading all
this ;-)
> Success!
Yippee!
> I now have a real world step rate of 400 per mm on the axis, what would you suggest is reasonable? 2 or 3 decimals?
I would set the axis resolution to 0.01 (4
micro-steps) and use 2 decimals. It does not make sense to use
finer resolution in electronics PnP, IMHO.
Note, setting the resolution to a pragmatic
value like this will filter out non-sensical microscopic
axis adjustments especially those due to runout compensation.
This in turn will prevent extra backlash compensation moves (if
you have backlash compensation at all).
> This
didn't work for me.
Strange. I have exactly this working, for
both Smoothie and Duet. Are you sure? (I just like to know, so I
can adapt the Wiki)
^.*X:(?<X>-?\d+\.\d+) Y:(?<Y>-?\d+\.\d+) Z:(?<Z>-?\d+\.\d+) A:(?<A>-?\d+\.\d+) B:(?<B>-?\d+\.\d+).*
> This
is super important and a point I think others might miss, so
worth really pointing it out in the docs.
Yes. I have some ideas about how to even enforce
it in OpenPnP.
M115 is an interesting command, even though it is undocumented for Smoothie ;-) (I will improve that message to point to my repo and report PAXIS. )
FIRMWARE_NAME:Smoothieware, FIRMWARE_URL:http%3A//smoothieware.org, X-SOURCE_CODE_URL:https://github.com/Smoothieware/Smoothieware, FIRMWARE_VERSION:feature/best-for-pnp-13bbd1fa, X-FIRMWARE_BUILD_DATE:Oct 17 2020 17:17:54, X-SYSTEM_CLOCK:120MHz, X-AXES:5, X-GRBL_MODE:0, X-CNC:0, X-MSD:1
ok
On Duet:
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.2-beta2+1 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2020-10-17b1
Discovering the controller will allow me to
point the user to mistakes and potential problems.
> I think the biggest concern left here is understanding what numbers work for acceleration and jerk in the real world, It feels a little like PID tuning, where you can have completely unintended consequences by changing a single parameter, but yet the numbers themselves feel meaningless. I'm not sure how to make this more accessible to newcomers apart from offering some starting guidance for an 'average' hobby machine.
Acceleration can be grasped if you think of
earth's
gravity g. That would be 9'810mm/s2, so if you
held you machine 90° turned so that the axis must move against
gravity with all its weight, it would be the same extra load.
With your whopping 10'000mm/s2 you're even slightly
over! For comparison: my Liteplacer can only take 5'000mm/s2
in X, 2'500mm/s2 in Y despite stepper upgrade :-(
Jerk is almost impossible to grasp
physically. Just realize that using a classic constant
acceleration controller (such as Smoothie) you apply infinite
jerk (at least in theory)! So 30'000mm/s3 seems
like a lot, but it is a lot less than infinite ;-)
It may help to think about the 7-segment
ramps. With your X acceleration of 10'000mm/s2 and jerk 30'000mm/s3
it takes a/j = 1/3 s to ramp the acceleration up (or down).
It takes 2/3 s to ramp up and then down again, before max
feed-rate is hit. So if you ever want to achieve your max
acceleration in real moves, that's to be considered. Your Y
jerk is almost certainly too low. Just define a realistic
test move in the Motion Planner tab and use the Motion
Planner Diagnostics to check the ramps out.
https://github.com/openpnp/openpnp/wiki/Motion-Planner#motion-planner

> but smaller moves from the feeder to the board are rather slow, this could be due to the rotational speed slowing the overall move, not sure yet.
Again, your Y jerk of 10'000mm/s3 is certainly too low.
> these are all set at 0 and not enabled at the moment
This should not be possible. Should throw an exception, as soon
as you try to Safe Z your nozzle. Are you sure?
All set at 0 and enabled is fine.
> During testing, I noticed one setting which moved in Z
along the X/Y travel.
If you defined a Safe Z zone with some room in it, this is normal
and wanted. To quote myself:
If there is a switch of nozzles (one going up, move in X/Y, the other going down), OpenPnP will even exploit the time in transit to move the Z axis over to the other limit of the Safe Zone, readying the other Nozzle at the exit point for the quickest/shortest descent to the target location.
https://github.com/openpnp/openpnp/wiki/Machine-Axes#kinematic-settings--axis-limits
> I have only a small amount of headroom (+-22mm) before I hit things, so my question is what settings do I now need to ensure that a NEVER have any Z movement at <0 during X/Y traverses?
Proceed as follows and you should be safe


_Mark
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
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/9bf98386-e7f9-45ed-b0f3-37b1ee52fab4n%40googlegroups.com.
Hi everybody,
@Bill, one question for you further
down.
to ease the entry into the complexities or Advanced Motion
Control there is a new Troubleshooting Wizard on the machine.
The most important settings are scrutinized, the firmware version
of the controller detected, issues listed and a resolution
suggested. You can then check the checkbox and (most of the time)
the resolution will directly be applied in OpenPnP:

Once applied you can still uncheck the checkbox to undo the resolution:
Even G-code fragments are generated based on the Machine Setup (Axes with their Letters, mapped to Drivers etc.):

If no remedy can directly be applied, it will open the right Wiki page to guide you to a solution. In the course of this I added this one:
https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares
@Bill, are you OK with that for
Marlin 2.0?
The framework is completely open i.e. not specific to Motion
Control, so other troubleshooting methods can be added in the
future.
This needs some further work and then I'll create a new testing
version.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/d58a9576-41a4-018e-378a-1fb8e2f6ec2f%40makr.zone.
Hi Wolfgang
Like I said :
> This needs some further work and then I'll create a new
testing version.
It was 01:41 and I needed some sleep, and now I'm back at (real) work, so it may take a day or two, sorry ;-)
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/00d32d27-01be-4649-a45c-5d9ddf5b7e5bn%40googlegroups.com.
Hi Wolfgang
> the moves are not smooth but rather janky and take longer than estimated
Yeah I know. I have my Duet 3 now running as a bench contraption.
dc42 of Duet3D and I are in exchange about this. It seems to
primarily be a USB serial lag issue. He has already improved some
other things and has announced a fix for the USB issue soon.
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#gcodedriver-new-settings
One must realize that all the other common NC applications
(3D-printing, milling, laser cutting etc.) work with fully
prepared Gcode, sometimes worth hours of uninterrupted execution.
Simple to stream, lags have no effect.
OpenPnP is completely different. Small time step/high volume
motion interpolation in combination with stop-and-go
operation i.e. needing just-in-time motion planning interactively
governed by vision, vacuum sensing, feeder faulting etc. is very
hard in deed. It must be said that Smoothie does it superbly, if
only it had (much) more RAM.
But it seems that dc42 is very much on to it for Duet.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/1894ed6c-5d05-490f-b270-7463c433d8c4n%40googlegroups.com.
8-D
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a7a3d063-8bfe-4846-aece-db349a81b57an%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/aed2df9a-3d55-4f78-a1e4-a307ddb456dcn%40googlegroups.com.
Hi Duncan
appreciate the good testing!
> I had another instance of losing the config files though
Just to make this clear: has this ever also happened with the regular OpenPnP 2.0 version?
When it happens next time, look at the ~/.openpnp2/log
subdirectory and send me OpenPnP.log, OpenPnP.0.log,
OpenPnP.1.log. They might contain something.
> 90 degrees off.
Hmmm, are you sure you got the parts all on Adjust and none on Full?

> the rotation just jigs round and back about 20 degrees in fast succession
Sounds like pipeline detection failure. You should see that in
the "bv_result" images in the ~/.openpnp2/org.openpnp.vision.pipeline.stages.ImageWriteDebug
subfolder, assuming you have the corr. ImageWriteDebug stage in
the pipeline enabled.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/b0acd2f4-a47d-4410-bc9f-12023c63b0ean%40googlegroups.com.
Thanks Duncan,
> Wrongly detected my other GCode Driver for ancillaries and flagged it as a 'fail' - maybe add to the comment to clarify this is actually OK?
Could you elaborate on this? What exactly is it saying?
Is it the bug joël reported?
--> I have 2 auxiliary gcode controllers that will never support the M115 command , the dismiss command checks it, fails and then let the issue opened.
I already fixed that for the next update.
Plus I removed some irrelevant issue reporting
(pre-move-commands, axis letter variables) for drivers that have
no axes assigned to them. This will be in the next update.
https://groups.google.com/d/msg/openpnp/j7fuo0e9VVM/wFDu65I0BAAJ
Thanks again for all your testing, much appreciated, Duncan!
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/b2b46331-bae5-43e5-8aba-cf9bed04f3bfn%40googlegroups.com.
> Position Regex flagged up as we've discussed before, I
accepted your suggestion and it seems to work,
but I don't see any confirmation of this in the logs
> The Regex issue still has me puzzled as my go to Regex
checker regex101.com rejects it.
I since found the bug in the Wiki version of it. I must somehow
have swapped the * and . characters at the beginning. Don't know
how the heck this happened. I was convinced I used copy&paste
both ways with no issues, but there it was!
The good news: the Issues & Solutions system will never have
this type of behind-the-keyboard problem again ;-)
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/b2b46331-bae5-43e5-8aba-cf9bed04f3bfn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/74e6fe12-8eef-4030-950d-a63851d81cd7n%40googlegroups.com.
Yes. And I should write a CHANGES entry, so everybody knows it's the right one from the About.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/AC5EB9F1-7F44-4B90-9599-3E99CA523172%40gmail.com.