Duet 3D Controlled Laser Welder - EXP 3HC Configuration
-
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
-
This post is deleted! -
@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
-
@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
-
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_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 -
@heathharper what about the expansion board?
-
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!
-
-