
Please send a log of a session when this happened. OpenPnP keeps the last 100 logs around.
https://github.com/openpnp/openpnp/wiki/FAQ#where-are-configuration-and-log-files-located
--
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/8661aeae-841f-4211-9558-ed9f3ae94b0an%40googlegroups.com.
Hi,
As you see here:
2022-01-06 21:01:16.172
GcodeDriver$ReaderThread TRACE: [serial://COM4] << oM1k14
2022-01-06 21:01:36.170 AbstractMachine TRACE: Exception caught,
executing pending motion: java.lang.Exception: GcodeDriver
timeout waiting for response to M114
   at
org.openpnp.machine.reference.driver.GcodeDriver.getReportedLocation(GcodeDriver.java:630)
   at
org.openpnp.machine.reference.driver.GcodeAsyncDriver.waitForCompletion(GcodeAsyncDriver.java:338)
   at
org.openpnp.machine.reference.driver.AbstractMotionPlanner.waitForDriverCompletion(AbstractMotionPlanner.java:786)
   at
org.openpnp.machine.reference.driver.AbstractMotionPlanner.waitForCompletion(AbstractMotionPlanner.java:709)
the response OpenPnP gets is garbled. "oM1k14". It almost looks
as if sender and receiver buffers get "interlaced".
This can have a multitude of reasons, but most strongly points to
the firmware/hardware, and less likely the electrical side, I
doubt such a thing has anything to do with USB packet transport,
hubs, or OpenPnP.
Questions/Ideas:

_Mark
Hi Wayne,
I think you need a larger connect wait time on the driver (you
seem to have 1000ms).
2022-01-07 08:57:41.285 ReferenceMachine
DEBUG: setEnabled(true)
2022-01-07 08:57:42.307 GcodeAsyncDriver DEBUG: serial://COM3
commandQueue.offer(G21 ; Set millimeters mode, 10000)...

Note, I don't know why such a high wait time is needed
(especially for Smoothie, it seems). While I have changed a lot in
the GcodeDriver/GcodeAsyncDriver itself, I have never really
touched or looked at the communications stuff.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/fb3ea0c5-3177-407a-ad8a-5c591a7a3369n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/efc59267-6378-a7a6-b2c7-772b3a0f5a83%40makr.zone.
> Can I ask you what if any driver board would you recommend to replace the original Charmhigh driver board?
I still think you could make it work well with the original
board.
But if you really want to exchange it, AFAIK the original board
has 7 axes, right?
In this case I recommend Duet3D boards:
https://github.com/openpnp/openpnp/wiki/Motion-Controller-Firmwares#duet3d
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CABUTZN_%2BUvN7aen-36vX-m-LGvWxcGFhEUJAawwSauF47U4otQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/74015aa6-e19a-dd8d-1e73-1683423eafa0%40makr.zone.
2022-01-06 21:01:16.172 GcodeDriver$ReaderThread TRACE: [serial://COM4] << oM1k142022-01-06 21:01:36.170 AbstractMachine TRACE: Exception caught, executing pending motion: java.lang.Exception: GcodeDriver timeout waiting for response to M114
   at org.openpnp.machine.reference.driver.GcodeDriver.getReportedLocation(GcodeDriver.java:630)
   at org.openpnp.machine.reference.driver.GcodeAsyncDriver.waitForCompletion(GcodeAsyncDriver.java:338)
   at org.openpnp.machine.reference.driver.AbstractMotionPlanner.waitForDriverCompletion(AbstractMotionPlanner.java:786)
   at org.openpnp.machine.reference.driver.AbstractMotionPlanner.waitForCompletion(AbstractMotionPlanner.java:709)
the response OpenPnP gets is garbled. "oM1k14". It almost looks as if sender and receiver buffers get "interlaced".
This can have a multitude of reasons, but most strongly points to the firmware/hardware, and less likely the electrical side, I doubt such a thing has anything to do with USB packet transport, hubs, or OpenPnP.
Hi Micael,
Just so I understand correctly: with the TX/RX issue sorted we
could move to XON/XOFF flow control, right? because RTS/CTS are
still missing physically, right?
_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/4839c3ae-5e47-420d-be1a-a26e0694b292n%40googlegroups.com.
Just so I understand correctly: with the TX/RX issue sorted we could move to XON/XOFF flow control, right? because RTS/CTS are still missing physically, right?
Reading that I think it is sensible to say RTS/CTS is the only way.
> we have plenty of buffers, so the transfer is solid in it self.
I'm not sure what you mean by that.
With confirmation flow control enabled, the buffer needs to be large enough for the longest possible single G-code command. You can then forget about serial flow control. If that's what you meant, we're all on the same page. 😉
But you cannot blindly rely on your buffer being
large enough and just forget about any flow control. With
motion interpolation OpenPnP could send huge amounts of motion
data before it needs to pause, i.e. wait for motion completion.
_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/2e9a56be-b48d-4b03-a482-c33125c20ddan%40googlegroups.com.
I'm not sure what you mean by that.
With confirmation flow control enabled, the buffer needs to be large enough for the longest possible single G-code command. You can then forget about serial flow control. If that's what you meant, we're all on the same page. 😉
But you cannot blindly rely on your buffer being large enough and just forget about any flow control. With motion interpolation OpenPnP could send huge amounts of motion data before it needs to pause, i.e. wait for motion completion.
> We say the same thing, but talk about different buffers :-) I think.
No, I don't think so.
From my (more conceptual) stand-point, I do not care whether it is a software buffer that is filled byte-by-byte using IRQ, or a DMA buffer that is filled by hardware autonomously. Both the software buffer and the DMA buffer are in RAM, both can be small or large, both can still fill up, even when large, both need flow control!
I'm quite sure there was a software buffer before or are these duds?
Using DMA is offloading the MCU, surely, and perhaps making it easier to fulfill hard real time guarantees for the stepper signals, everything else is more or less the same, AFAIK. Agree?_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/51e50828-f732-40c9-b2ab-b0c4de965c49n%40googlegroups.com.
Thanks for the clarifications, I think we're more or less on the same page 😉
If you want to do some stress tests/benchmarks using OpenPnP, use
Simulated3rdOrder as your driver Motion Control Type,
then setup very fine interpolation. You'll quickly get quite large
bursts of G-code (you need some CPU oomph too, otherwise
OpenPnP/Java will become the bottleneck):
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#motion-control-type
https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#interpolation
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/cf5e6d34-576f-4bef-85f4-e6a582a0a388n%40googlegroups.com.
Hi Micael,
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/645a8add-aaf5-4fff-b1a0-afceea5712d8n%40googlegroups.com.