General guidelines for accessing tool board I/O
-
Duet 3 6HC v1.01 (3.3 release) + Toolboard 1.1 (latest sw release)
I just completed construction of a cubeXY printer, and watching all the wires in the harness flex as the head moved moves around makes me nervous about its reliability. It was enough to back up a few steps and add a tool board, which is communicating via CAN without issue... now what?
I haven't found any reference for accessing the tool board's I/O. I had everything connected directly to the Duet 3 6HC, and now a good portion needs to be moved over to the tool board, and don't know how. The extruder, thermistor, heater, fans, and X endstop are all mocking me. Pretty sure that there's a reference here someplace but I haven't found it yet!
-
See if any of this helps. In general though, when you want to target a canbus expansion board you need to include the canbus address as a prefix. 0 is the mainboard, and the expansion boards depend on what address you've assigned.
https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Hardware_Overview
https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3
https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board
https://duet3d.dozuki.com/Wiki/CAN_connection -
@phaedrux Okay, so prefix CAN boards with their address, with I'm guessing a "." after that.
For example, I had this for the X endswitch when it was plugged into the Duet3 6HC board: M574 X1 S1 P"io1.in"
As an example, say I want to connect this X endswitch to io2 on the tool board. Would I convert the above code to the following?:
M574 X1 S1 P"121.io2.in" -
Yes you got it.
If you want examples, I suggest creating a config with the online tool. You can add expansion boards etc and assign their pins to things and see the final config.
-
Duet 3 6HC v1.01 (3.3 release) + Toolboard 1.1 (latest sw release)
Much of the toolboard-controlled I/O is starting to work, thank you for the mentoring. This includes the hot end heater, thermistor, and X endswitch, so I know that adding the CAN address prefix is working.
What's not working are the fans. I thought they would be a no-brainer:
M950 F0 C"121.out1" Q500
M106 P0 T55:60 H0 C"Part Fan"M950 F1 C"121.out2" Q500
M106 P1 T45 H1 C"Hot end Fan"Sending an M106 P0 (or P1) S1 has no effect.
The part cooler fan connects to the 4-pin Out1 connector, with fan+ going to +VOUT, and fan- going to out1.
The hot end fan connects to the 3-pin Out2 connector, with fan+ going to +VOUT, and fan- going to out2. I am assuming that the driver is intended to pull the fan- to ground, especially since there is no ground pin.
These fans worked fine when connected to the 6HC board using the very same config code, so I'm stumped.
[edit] The fans are 24V, and the toolboard jumper is in-place.
-
Well I'm half way there. Giving up getting the fans to go on with the M106 command, I was surprised that the hot end fan went on correctly when the extruder heater reached its target. The mystery for that is how come it goes on as it should in normal operation, but I can't manual command it on or off?
The other half - the bed fan - still does not work. It's very odd how they're both being initialized at the same time with nearly identical configuration commands, yet one works and one doesn't. I shall persevere.
-
@kb58 said in General guidelines for accessing tool board I/O:
The mystery for that is how come it goes on as it should in normal operation, but I can't manual command it on or off?
If you want to command it manually you have to turn off thermostatic control with H-1.
I'm curious to know why you'd want to the part cooling fan to come on when the bed heater does.
-
So these are the two remaining troublemakers:
M950 F0 C"121.out1" Q500
M106 P0 T55:60 H0 C"Part Fan"M950 F1 C"121.out2" Q500
M106 P1 T45 H1 C"Hot end Fan"Commanding different G commands, they don't complain about the above not being defined, making me think that the M950 definitions are probably correct. Likewise, manually sending G106 commands to turn the fans on or off don't error out, either, but they don't do anything. I suspect I'm not referencing the fans correctly, like maybe it needs a "121." in front of something...
-
@phaedrux "...I'm curious to know why you'd want to the part cooling fan to come on when the bed heater does..."
I'm just getting everything up and running. I understand your question, but I first want to ensure that "everything is responding to reason" before fine tuning what happens and when. I agree that the part cooler should be coming on only after X layers have been deposited, but right now I'm obsessing on why it's not working at all. Ironically, the BLTouch, the thing I most worried about fussing with, worked right away, and yet the silly fans are having fun with me.
-
Usually the part cooling fan wouldn't be thermostatically controlled at all, it would be gcode controlled by the slicer.
The other thing missing from your M106 lines is an S value to use.
Try this to test the fan M106 P0 H-1 S1
-
@phaedrux Ah, okay, shows how new I am to this. I'll look around in PrusaSlicer and see where that can be enabled... once I know the fan control is working. And thank you!
-
@kb58 said in General guidelines for accessing tool board I/O:
PrusaSlicer and see where that can be enabled
The filament tab has the cooling options. It automatically targets the default fan0. So as long as you just have fan0 left as normal manual control it should "just work" if you have it configured in the slicer.
M106 P0 H-1 S0
S0 so that it starts in an off state.
-
@kb58 there are some restrictions listed at https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations. One of these is that a thermostatically-controlled fan driven from a CAN expansion board can only be controlled by a temperature sensor connected to the same board. This will be why you were unable to make the part cooling fan turn on depending on the bed temperature.
-
I have converted my machine to toolboard.
Everything works without problems. I have found a few small things that could be improved in the documentation.
However, I came across the limitation "The main board does not react to heater faults on expansion boards by pausing the print" which frankly bothered me. And I wonder if there is a date for a relase that will remove this restriction.
Is this a security risk? -
@diy-o-sphere this is scheduled for fixing in release 3.4.