DUET 6 HC serial performance through USB.
-
Planning to upgrade a ROLAND CAMM-PNC3000 ( Z80 based cpu and TTL levels everywhere)
BUT
I would like to keep the very useful command panel (3 axes simultaneous jogs) and if possible the LED display. (A sort of "lipstick on bulldog").For this, I need to emulate the old IO Z80 CPU interaction, then according to buttons and jogs hits, send G commands to DUET6HC i bought to animate this NEMA 23 mechanic ( 48V based).
I am evaluating the PICO 2 with a FreeRTOS base OS to keep all chances of restoring the real time tick action of jogs and display on axis I previously experienced with the old.
Roland original design is very straightforward: the tick action on the jog fires directly the stepper motor driver through the same wire...simple and efficient.
I will also possibly (but not sure for keeping original CAMM aspect) add a Paneldue to this setup.I have seen the interesting setup from hurzhurs you reproduced in the DUET3 doc for connecting the CNCPendant to the panel due.
Of course I can connect directly the PICO to the DUET using the Paneldue connector and io_0 pins.
I also evaluate the possibility to connect my setup simply through the USB C plug.
I read through the firmware doc the status messages are constantly sent through this interface. Of course these sequences take some bandwidth and this is obviously not desirable.
So it leads to following questions :
Are the same messages sent through the Paneldue io pins ?
Is there a way to suppress those messages (MXXXX ???) of course I would avoid forking reprapIs there a way to setup the serial interface (speed and parity) ??
Are those messages also routed through Paneldue ?Are the Paneldue pins Din Dout a a real passthrough pin to pin?
Is the SPI interface also an option ?Would you recommend any other option ?
Many thanks for your help
-
@audryhome have a look at the CNC controller project Duet developed here: https://docs.duet3d.com/en/User_manual/Connecting_hardware/IO_CNC_Pendant
It includes a firmware for Arduino Pro Micro that could serve as a template to show how to send and receive to Duet via the PanelDue port.
I don’t think jog commands from PanelDue are echoed in the console, but I’d have to check.
Ian
-
In fact, this project inspired me from the very beginning.
I envision the same kind of project, but I would like to avoid connecting to PanelDue pins, rather using the usb cdc that is used by Octopi for instance.
Reason is mainly cabling, I would like to avoid pin connection through the Pandeldue, especially because I am not sure to put a panel due, rather using either a direct connection through internet or SPI and/or storing CNC files in the on board SD card. I plan to desing an interface board with a PICO2 that will animate both jog panel and LED display for axes.
This board will send M & G commands to the DUET according to buttons press, jog rotation and more.Furthermore the panel due cable is somewhat limited in length for obvious reasons,
My PNC-3000 is equipped with NEMA23 motors and a spindle activated with a 400W NLDC, so the noise immunity is particularly important. Interface board will be located very close to the DUET for this reason and cabling will be especially clean of noise.
I also think evaluate RPI4 as an SBC intermediate, but this is not my priority now.
Thanks for the advice.
-
@audryhome The PanelDue port is really just another serial port. It's parameters are set by M575, see https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m575-set-serial-comms-parameters.
To return to your original question:
I read through the firmware doc the status messages are constantly sent through this interface. Of course these sequences take some bandwidth and this is obviously not desirable.
Can you post a link to where you read that? Usually there's not much communication on the serial or USB interface, especially if the job is running from the SD card. If commands are sent via serial, there's usually just an 'ok' for each received command. I think for a jog panel either USB or serial would be fine. You can connect both the jog panel and PanelDue at the same time, to the same serial port, or just the jog panel.
Note that newer versions of RepRapFirmware and PanelDue firmware use CRC16 for PanelDue communication; the Duet CNC pendant firmware has a branch that includes this.
For limitations of sending Gcode over serial and USB, see:
https://docs.duet3d.com/en/User_manual/Reference/Gcodes#replies-from-the-reprap-machine-to-the-host-computer
https://docs.duet3d.com/User_manual/RepRapFirmware/RepRapFirmware_overview#printing-over-usb-connection-octoprint-cura-simplify3d-etcIan
-
Thanks again for your answer.
In fact I misunderstood the doc, since I use for years DUET2 & Octoprint and I thought the status messages seen on Octoprint were just a normal DUET output.
My mistake.
I understand M116 & M117 are just what I need for