Snapmaker J1 with a Duet 3... autocalibration possible?
-
Hi all,
with my Neo getting old despite all its upgrades, I followed my stomach and bought a Snapmaker J1. After reworking the hotend, the beast works now quite fine and I love the mechanical build quality... but I admit I am sorely missing the comfort of the Duet my old printer runs with
Well, by now I have found out all the pinouts except from the hotend temperature sensors and am investigating the details how to run that IDEX printer with a Duet 3 6HC even if I do miss a WiFi variant of that board.
The main question for this is the calibration sensor in the heat bead of the J1: the printer has a really nifty way of doing a Z and XY calibration of the print heads towards each other with the following procedures:
- Z calibration of bed relative to first hotend: the nozzle and the three bed contact areas above the adjustment screws act as a switch - as soon as the nozzle touches the bed, the nozzle contact wire is pulled to GND. One contact point acts as a reference, the other two are adjusted as needed.
Unless I overlook something, this is the step that should work rather easy with a Duet as it is a setting of the Z endpoint (the z endstop switch is at the max height distance of the printer!) followed by a standard 3 point manual bed calibration routine. The only optimisation there is that the Duet just measures the error and then tells you to adjust the screw "ABC turns" based on the thread pitch, while Snapmaker had the good idea to repeat measurement and update the output until it is in a specified range for each measuring point. If I am not mistaken, this "repeat until" would not work with a Duet. - Z-calibration of second hotend relative to first hotend: (Prerequisite: bed must be leveled) To calibrate the Z level of the second hotend, the first hotend is then moved to a contact point, a reference value is taken and the second hotend is then moved to the same contact point, where measurement is again repeated while telling the user to adjust the hotend up or down until the hotends are level.
- XY calibration of hotends towards each other: (Prerequisite: z level of hotends towards each other must fit at least roughly) For XY calibration, a rectangular cutout of known dimensions in the print bed is used. The cutout has conductive edges which pull nozzle contact wire to GND when the nozzle cone touches one of the edges. The printer roughly knows where the nozzle should go thanks to the endstops. For defining the offset of the two IDEX heads towards each other, the following procedure is made:
-Nozzle 1 moves to the centre of the hole.
-Nozzle 1 then dives 1mm into the print bed...
-moves slowly to the left (X+) until the contact wire is pulled to GND and saves that value, then...
-...moves slowly to the right (X-) until the contact wire is pulled to GND, saves that value and calculates the X centre of the nozzle, assuming the cone of the nozzle is centered to the hole in the nozzle (which it usually is).
-Then it does the same in Y direction by moving the nozzle forward and backward and calculates the Y centre of the nozzle.
-Finally it repeats the same process with nozzle 2, calculates the difference in X and Y between the two nozzles and defines the offset between the two nozzles from that calculation.
In the end, the user has a well aligned IDEX printer without having to do the tedious "print test part, manually adjust, print test part again..." procedure - and without a need for expensive and/or complex additional sensors. You just need a heat bed (which is usually a PCB nowadays anyway) with a rectangular hole and three leveling points on it - and a wire that is electrically connected to the hotend nozzle.
My question is now: is it possible to recreate procedure 2 and - especially - procedure 3 on a Duet with e.g. a macro? I guess I could re-assign the sensor to XY calibration in the macro, find the hole, dive into it by disabling or changing the z axis limit and slowly move the print head to some direction... but then my knowledge reaches its limits...
- Z calibration of bed relative to first hotend: the nozzle and the three bed contact areas above the adjustment screws act as a switch - as soon as the nozzle touches the bed, the nozzle contact wire is pulled to GND. One contact point acts as a reference, the other two are adjusted as needed.
-
@NeoDue said in Snapmaker J1 with a Duet 3... autocalibration possible?:
a Duet 3 6HC even if I do miss a WiFi variant of that board.
I believe there's a wifi module on the way for the 6HC.
@NeoDue said in Snapmaker J1 with a Duet 3... autocalibration possible?:
this "repeat until" would not work with a Duet.
With macros and conditional gcode this should be doable.
In fact, most of what you describe sounds like it could be scripted out with conditional gcode and the object model.
https://docs.duet3d.com/en/User_manual/Reference/Gcode_meta_commands
-
-
@Phaedrux thanks for reminding me! I completely forgot that the conditional Gcode feature has become so mighty over time - I barely used it until now.
@dc42 said in Snapmaker J1 with a Duet 3... autocalibration possible?:
@NeoDue the WiFi module that @Phaedrux mentioned is for the version 1.02 6HC board only. Alternatively, unless the motors need a lot of current you could use a Duet 3 Mini with the 2-driver add-on board instead of the 6HC.
@dc42 Thanks for that information! But I do not think the Mini would work here: In the J1, there is plenty of space to the sides in the controller compartment of the housing (even a 190 x 340mm PCB would fit in there without having to relocate anything), but the height is rather limited with 30mm, maybe 31 being the absolute maximum. And then you need at least a little space below the PCB and ideally some for cooling from the bottom - I am tempted to try again a mounting bracket with a directed integrated airflow since it worked great for the Neo and the TMC steppers want to get rid of their heat through the PCB. This means however 7...10mm of space below the PCB. If I check my old Duet Wifi model (I am still trying to figure out how to convert the Fusion360 model of the Duet 3 I found without having Fusion360... edit: stupid me. I should have looked in your documentation first - I will check your STEP file now) this would just about fit - but an addon board that increases the height of the controller would likely be impossible...
Will that Wifi module have an external antenna - or can I use cables to connect it? Since I still need to buy that Duet, I will go for the latest revision anyway, so the "rev 1.02" requirement won't be a problem - but the full aluminium body of the J1 won't let out any signals.
-
@NeoDue said in Snapmaker J1 with a Duet 3... autocalibration possible?:
Will that Wifi module have an external antenna
Yes it has.
-
@dc42 Great! Then I will wail until that module will be available (this year, I hope?) and find my way through the conditional Gcode in the meantime.
-