Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    RS-232 communication

    Scheduled Pinned Locked Moved
    General Discussion
    3
    15
    1.8k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jmlundefined
      jml
      last edited by

      I will be using a PanelDue. I will be modifying the firmware to send the serial commands at the correct times as you said.

      Is there a way to implement software serial? Or some other way?

      1 Reply Last reply Reply Quote 0
      • jmlundefined
        jml
        last edited by

        Could I use UTXD1 and URXD1 on the ESP_COMMS port? (I can solder headers on there). Or are those used by the wifi module?

        dc42undefined 1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @jml
          last edited by

          @jml said in RS-232 communication:

          Could I use UTXD1 and URXD1 on the ESP_COMMS port? (I can solder headers on there). Or are those used by the wifi module?

          They are used to program the WiFi module and also to report status back from the WiFi module for debugging purposes.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          jmlundefined 1 Reply Last reply Reply Quote 0
          • jmlundefined
            jml @dc42
            last edited by

            @dc42 Thanks. Could I convert a GPIO pin to do software serial?

            1 Reply Last reply Reply Quote 0
            • dc42undefined
              dc42 administrators
              last edited by

              Software serial could be used if the baud rate was low enough. The best option would be to create an RTOS task to do it.

              If you don't need to use the SharedSPI function (used to interface to PT100 and thermocouple daughter boards, and to support an external SD card), you could modify the firmware to use that USART in async mode instead, and connect to it using the temperature daughter board connector.

              Duet WiFi hardware designer and firmware engineer
              Please do not ask me for Duet support via PM or email, use the forum
              http://www.escher3d.com, https://miscsolutions.wordpress.com

              jmlundefined 2 Replies Last reply Reply Quote 0
              • jmlundefined
                jml @dc42
                last edited by

                @dc42 Thank you for the suggestions. Option1: software serial with RTOS task. Option2: hijack the temp daughter board connector.

                I don't use any daughter boards (I use the dyze extruder). I don' think Dyze requires the daughter boards, so option 2 may be an option.

                Thank you for the suggestions!

                1 Reply Last reply Reply Quote 0
                • jmlundefined
                  jml @dc42
                  last edited by

                  @dc42 When you say SharedSPI is used to support an external SD card, that does not refer to the microSD card that attaches to the Duet, right? I saw a SD card slot on the panel Due, is that what you are referring to?

                  1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators
                    last edited by

                    I am referring to the SD card on PanelDue. The build-in SD card does not use SPI, it uses a much faster 4-bit wide interface.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    1 Reply Last reply Reply Quote 0
                    • Danalundefined
                      Danal
                      last edited by

                      A different approach, maybe you'll like it, maybe not 🙂

                      Given:

                      • @jml has a device that does true RS232, electrically +12 to -12V that convey serial bits.
                      • That device will RECEIVE commands FROM the Duet (but not send them, correct?)
                      • A PanelDue will be used, thus occupying its port on the Duet.

                      I can see two ways to do this that seem (to me) much easier than the firmware mods to implement SharedSPI or similar.

                      Question: @jml Are the "event triggers" that will send to your device, are those something that can be timed well enough by embedding M117 commands (write to console) into the G-Code?

                      If yes:

                      Build a small device, probably Arduino (or ATtiny) based, that plugs into the Duet USB port, and filters console messages for particular "key" start bytes, and passes the rest of the message to the device. M117 MAGIC123 xxxxxx results in xxxxxx going to the device.

                      -or-

                      Passively "split" the 3.3V "Send" pin on the PanelDue port, again passing this to an Arduino or ATtiny that "filters and translates" for the receiving RS232 Device. It would have to "understand" the packet format that conveys a console message to the PanelDue. Otherwise, the same concepts as above.

                      Slightly more complex code in the outboard translator, but leaves the USB free.

                      .

                      If No: (M117s not sufficient):

                      Same hardware concept as above, tap into either USB console or Duet 3.3V transmit pin that sends to Panel.
                      Also modify Duet firmware to send messages to console at correct times. Again, fixed header to let "filtering" device pick up only correct messages.

                      .

                      This would seem to minimize changes to the Duet, by putting a little of the work in an outboard device. Could potentially simplify taking on new releases of Duet firmware... Thoughts?

                      Delta / Kossel printer fanatic

                      jmlundefined 1 Reply Last reply Reply Quote 0
                      • jmlundefined
                        jml @Danal
                        last edited by

                        @danal Interesting ideas. I like the M117 command option best.

                        Your ideas give me an idea. I could use the I2C output of the Duet to communicate with an external device (Arduino or ATtiny) which will output the serial commands.

                        Another idea - perhaps there is a I2C to Rs-232 chip out there already - this would save me some time. I found this interesting thing:
                        https://www.nxp.com/docs/en/brochure/75015676.pdf

                        Apparently it can be used for converting I2C to RS232 ... not sure if I'll have to step up the voltage or not ... we'll see. But this chip might be easier than the other options.

                        jmlundefined 1 Reply Last reply Reply Quote 0
                        • jmlundefined
                          jml @jml
                          last edited by

                          @jml And what about M118 ... If I have nothing connected to USB, then I could connect my rs232 device to the usb (through a voltage converter) and use M118 P1 S"Message"

                          I'd like to keep the USB port open though, but I'll remember this as a backup.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA