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

    Duet 3D Controlled Laser Welder - EXP 3HC Configuration

    Scheduled Pinned Locked Moved Solved
    CNC
    3
    8
    347
    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.
    • heathharperundefined
      heathharper
      last edited by heathharper

      I am building a Duet 3 6HC and 3HC expansion board SBC system to mount a Laser Welding head on. (I have been laser welding for 23 years and 3D printing with Duet for about 4 years now, I thought its about time to get them married for some automation.

      Anyway, I have successfully built the machine, and configured the 6HC. It homes and drives the X,Y, and Dual Independent Z Axis as expected. I have also incorporated a Joystick that is connected to 4 of the inputs on the 6HC and when the joystick is moved, it calls individual triggers to execute Gcode moves for manual recording of moves for playback later (the playback is yet to be tested with M28 and M29).

      Where I am getting hung up is calling the trigger from an input on the 3HC expansion board. I have a button wired to the IO2 pins on the 3HC and it lights up correctly, but I can't call the trigger correctly.

      I have a connection between the 6HC and 3HC confirmed with M122 and allocated to be #1 on the can bus addressing.

      Does anyone have an example of the config lines for M950 and M574 to call a trigger from the Expansion board?

      Here is what I have in config.g (my triggers are in the /sys/directory and J5 to J6 all work correctly. Just not the one to the Expansion board.


      ;Triggers
      M950 J5 C"io5.in" ;set the input on io5 for the trigger Joystick
      M950 J7 C"io7.in" ;set the input on io7 for the trigger Joystick
      M950 J8 C"io8.in" ;set the input on io8 for the trigger Joystick
      M950 J6 C"io6.in" ;set the input on io6 for the trigger Joystick
      M950 J9 C"1.io2.in" ;set the inpout for expansion board 1 (3HC) pin 2 to input for green button
      M581 P5 S0 T5 R0 ;define trigger to Trigger 5 for io5
      M581 P6 S0 T6 R0 ;define trigger to Trigger 6 for io6
      M581 P7 S0 T7 R0 ;define trigger to Trigger 7 for io7
      M581 P8 S0 T8 R0 ;define trigger to Trigger 8 for io8
      M581 P9 S0 T9 R0 ;define trigger to Expansion pin 2 to trigger 9


      heathharperundefined jay_s_ukundefined T3P3Tonyundefined 3 Replies Last reply Reply Quote 1
      • heathharperundefined
        heathharper @heathharper
        last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • jay_s_ukundefined
          jay_s_uk @heathharper
          last edited by

          @heathharper what firmware version are you running on both boards? Best to post an output of M122 and M122 Bx where x is the 3HC CAN address

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          heathharperundefined 2 Replies Last reply Reply Quote 0
          • T3P3Tonyundefined
            T3P3Tony administrators @heathharper
            last edited by T3P3Tony

            @heathharper as a quick check you can look in the Object model at "sensors"-"GPIN" and see if pressing the the button on the expansion board connected pin changes the state of the GPIO pin in the OM

            www.duet3d.com

            heathharperundefined 1 Reply Last reply Reply Quote 0
            • heathharperundefined
              heathharper @jay_s_uk
              last edited by

              @jay_s_uk

              Thanks for the reply. Here is the M122 for the 6HC.

              M122
              === Diagnostics ===
              RepRapFirmware for Duet 3 MB6HC version 3.4.5 (2022-11-30 19:35:23) running on Duet 3 MB6HC v1.0 or earlier (SBC mode)
              Board ID: 08DJM-956L2-G43S4-6J9FA-3SJ6N-1B66G
              Used output buffers: 1 of 40 (12 max)
              === RTOS ===
              Static ram: 152760
              Dynamic ram: 66484 of which 0 recycled
              Never used RAM 131428, free system stack 200 words
              Tasks: SBC(ready,0.5%,484) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.0%,351) CanReceiv(notifyWait,0.0%,774) CanSender(notifyWait,0.0%,336) CanClock(delaying,0.0%,339) TMC(notifyWait,7.8%,91) MAIN(running,91.6%,1231) IDLE(ready,0.1%,30), total 100.0%
              Owned mutexes: HTTP(MAIN)
              === Platform ===
              Last reset 00:11:35 ago, cause: power up
              Last software reset at 2022-12-21 16:43, reason: User, none spinning, available RAM 131356, slot 0
              Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
              Error status: 0x00
              Aux0 errors 0,0,0
              Step timer max interval 134
              MCU temperature: min 16.1, current 34.6, max 34.7
              Supply voltage: min 24.0, current 24.1, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
              12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
              Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
              Events: 0 queued, 0 completed
              Driver 0: standstill, SG min 0, mspos 8, reads 16451, writes 14 timeouts 0
              Driver 1: standstill, SG min 0, mspos 8, reads 16451, writes 14 timeouts 0
              Driver 2: standstill, SG min 0, mspos 8, reads 16451, writes 14 timeouts 0
              Driver 3: standstill, SG min 0, mspos 8, reads 16451, writes 14 timeouts 0
              Driver 4: standstill, SG min 0, mspos 8, reads 16451, writes 14 timeouts 0
              Driver 5: standstill, SG min 0, mspos 8, reads 16455, writes 11 timeouts 0
              Date/time: 2022-12-22 15:12:24
              Slowest loop: 24.90ms; fastest: 0.04ms
              === Storage ===
              Free file entries: 10
              SD card 0 not detected, interface speed: 37.5MBytes/sec
              SD card longest read time 0.0ms, write time 0.0ms, max retries 0
              === Move ===
              DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
              === MainDDARing ===
              Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
              === AuxDDARing ===
              Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
              === Heat ===
              Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
              === GCodes ===
              Segments left: 0
              Movement lock held by null
              HTTP* is doing "M122" in state(s) 0
              Telnet is idle in state(s) 0
              File is idle in state(s) 0
              USB is idle in state(s) 0
              Aux is idle in state(s) 0
              Trigger* is idle in state(s) 0
              Queue is idle in state(s) 0
              LCD is idle in state(s) 0
              SBC is idle in state(s) 0
              Daemon is idle in state(s) 0
              Aux2 is idle in state(s) 0
              Autopause is idle in state(s) 0
              Code queue is empty
              === CAN ===
              Messages queued 3481, received 5567, lost 0, boc 0
              Longest wait 1ms for reply type 6036, peak Tx sync delay 380, free buffers 50 (min 49), ts 3479/3478/0
              Tx timeouts 0,0,0,0,0,0
              === SBC interface ===
              Transfer state: 5, failed transfers: 0, checksum errors: 0
              RX/TX seq numbers: 27436/27436
              SPI underruns 0, overruns 0
              State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2ad48
              Buffer RX/TX: 0/0-0, open files: 0
              === Duet Control Server ===
              Duet Control Server v3.4.5
              Code buffer space: 4096
              Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
              Full transfers per second: 0.36, max time between full transfers: 297.6ms, max pin wait times: 47.5ms/15.9ms
              Codes per second: 0.00
              Maximum length of RX/TX data transfers: 3012/820

              jay_s_ukundefined 1 Reply Last reply Reply Quote 0
              • heathharperundefined
                heathharper @jay_s_uk
                last edited by

                @jay_s_uk here is the M122 B1 (3HC Exp board)

                M122 B1
                Diagnostics for board 1:
                Duet EXP3HC rev 1.01 or earlier firmware version 3.4.4 (2022-10-14 11:45:56)
                Bootloader ID: not available
                All averaging filters OK
                Never used RAM 158900, free system stack 200 words
                Tasks: Move(notifyWait,0.0%,160) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,82) CanClock(notifyWait,0.0%,71) TMC(notifyWait,7.5%,99) MAIN(running,91.2%,441) IDLE(ready,0.0%,40) AIN(delaying,1.3%,263), total 100.0%
                Last reset 00:12:37 ago, cause: power up
                Last software reset data not available
                Driver 0: pos 0, 80.0 steps/mm,standstill, SG min 0, mspos 8, reads 30145, writes 11 timeouts 0, steps req 0 done 0
                Driver 1: pos 0, 80.0 steps/mm,standstill, SG min 0, mspos 8, reads 30146, writes 11 timeouts 0, steps req 0 done 0
                Driver 2: pos 0, 80.0 steps/mm,standstill, SG min 0, mspos 8, reads 30146, writes 11 timeouts 0, steps req 0 done 0
                Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
                Peak sync jitter -5/10, peak Rx sync delay 181, resyncs 0/0, no step interrupt scheduled
                VIN voltage: min 24.2, current 24.2, max 24.3
                V12 voltage: min 12.2, current 12.3, max 12.3
                MCU temperature: min 24.1C, current 33.3C, max 33.3C
                Last sensors broadcast 0x00000000 found 0 244 ticks ago, 0 ordering errs, loop time 0
                CAN messages queued 6086, send timeouts 0, received 3798, lost 0, free buffers 37, min 37, error reg 20000
                dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0

                1 Reply Last reply Reply Quote 0
                • jay_s_ukundefined
                  jay_s_uk @heathharper
                  last edited by

                  @heathharper what about the expansion board?

                  Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                  1 Reply Last reply Reply Quote 0
                  • heathharperundefined
                    heathharper @T3P3Tony
                    last edited by

                    @T3P3Tony

                    The object model was the answer. I ended up having a short on the signal wire and identified it because you helped me locate the "Sensors" "GPIN" correctly.

                    Thanks!

                    1 Reply Last reply Reply Quote 1
                    • dc42undefined dc42 marked this topic as a question
                    • dc42undefined dc42 has marked this topic as solved
                    • First post
                      Last post
                    Unless otherwise noted, all forum content is licensed under CC-BY-SA