Duet3 6HC/1LC toolboards. Toolhead detection.
-
Hi everyone,
we are doing sinter based metal FFF printing in an Idex setup with a duet3 6HC enabled machine using 1LC (v1.3) tool boards.
As we use a defined toolhead for every single material we print we would like to automise the detection of the attached tool(board).
I had a talking about this topic with (i think dc42) on the Duet3d booth at last years (2023) Formnext in Frankfurt mentioning using the second PT1000 input as a possibility to do so. Idea was (if I understood correctly) to detect the resistance of an attached resistor (with another resistance for every tool) to figure out which tool is connected and use the result to do the necessary settings in a g-code/skript.I tried to find something similar using the search function here in the bulletin board but I din't make it to find some information.
Can someone point me to the right direction?
Best regards
Sascha -
Solution for now:
In config.g, add another thermistor named 'Detect_L'/'Detect_R' on 20/21.temp1 like inM308 S3 P"20.temp1" Y"thermistor" A"Detect_L" T100000 B4725 C7.06e-8
M308 S4 P"21.temp1" Y"thermistor" A"Detect_R" T100000 B4725 C7.06e-8Then in an additional makro read 'temperature and name
echo "Sensor name= " ^sensors.analog[3].name
echo "Sensor right= " ^sensors.analog[3].lastReading
echo "Sensor name= " ^sensors.analog[4].name
echo "Sensor right= " ^sensors.analog[4].lastReadinggiving me
Sensor name= Detect_L
Sensor left= 139.9
Sensor name= Detect_R
Sensor right= -273.1as the result.
I then simply added some conditional stuff to do the proper e-steps/etc. for the detected extruder like in
if sensors.analog[3].lastReading<-260.0
echo "Input open"
if sensors.analog[3].lastReading>145.0 & sensors.analog[3].lastReading<149.0
echo "Stainless steel (316L) 2.85mm"
M92 T0 E770.00 ;Orbiter (2.85mm) -> set steps per mm
elif sensors.analog[3].lastReading>139.0 & sensors.analog[3].lastReading<141.0
echo "Stainless steel (316L) 1.75mm"
M92 T0 E690.00 ;Orbiter (1.75mm) -> set steps per mmOne issue I came over was that I cant trigger the makro doing this called from config.g. Any idea on this?
Cheers
Sascha -
@eloguru cant you call the macro at the end of config.g? That should work...
-
@eloguru you might prefer to configure the port as a Linear Analog Sensor rather than a thermistor because then the expected "temperature" readings will be easier to calculate.
To get a reading when config.g is running, try adding a G4 delay command after setting up the pseudo-temperature sensor but before taking the reading. Analog sensors use software filters to average several readings, and these filters need a number of readings to be taken before they produce a result.
-
I saved the g-code in the 'makros's and I did try to call it from several positions within config.g, none of them worked.
I can see the makro is being processed (the machine has LED light and entering a call of the makro to switch it off worked, so there is probably just no information from the sensor at that point of time forcing the makro to simply 'do nothing'?
When it comes to the configuration of the port I will switch to linear-analog as suggested and see how it performs.
Anyway, I appreciate your quick response. I dont have the time to look after it right now but I will continue working on the problem at the beginning of next week, so I will keep you updated.
Best regards
Sascha