Sovol SV08 Multiple Motion System Upgrade.
-
Just ordered two more 1LC tool boards and another mini5+ board.
That combination should allow for 6+7+5=18 axis drivers - z8, x4, y4 = 16 so should be enough for now - with the option to go up to 20 with another mini5 expansion.
Bad news is that my current mini5+ board is v1.02 - not sure what version E3D will send me for the 2nd board - their listing says 1.01 - so looks like some desoldering of terminator resistors on one of the boards is going to be required.
-
Added MGN9C carriage and Z lifter works quite well now.
See -
https://youtube.com/shorts/JexMhHyFkvI?si=BZMB12EFMrDNep2BNext challenge after this is how to get a ball probe working with RepRap firmware to align the two heads - as per this Klipper add-on.
https://github.com/viesturz/NozzleAlign
I may have to do some maths in a macro to get this to work.
Am going to try one of the Ember Prototypes Camera based aligners too.
-
@dwuk i beleive @Sindarius has this concept working, hopefully he will be able to chime in.
-
Added optical limit switch to front gantry linear Z hopper - and it is working pretty well.
The limit switch triggers at about -1.6 below the Z height of the other gantry, and the Z hopper can drop down by a further around 0.5mm.
So the 2.1mm difference also allows 'Voron Tap' type Z height detection to also work if the extruder is lowered down - although haven't yet implemented this in homeX.
I changed the M569 definition of the stepper from D2 to D3 and I think that has made it quieter - but it is staying a little hot on idle - so I need to add some switching off of IDLE's somewhere into the macros (M84 B) - however this does mean it loses it homing status. Maybe lowering the current percentage might work instead.
Next step tomorrow is to try some tests with the ball probe - I think I will just print something that I can place 4 magnets around it to hold it in a fixed place on the build plate for stability - and see what I can create in terms of macro code to accurately locate it on one gantry, then get the other gantry to do the same probing to get the two aligned.
Would be interesting to see what @Sindarius has developed for this too.
In terms of where the place the probe on the build plate.
It the short term I think I will just manually place it somewhere - bet ideally I would like to make the alignment fully automated. Am wondering whether it might be feasible to cut a small hole in the build plate and create a mechanism to lift the probe up from below when required.
Any prints over this area could potentially just bridge over the hole.
Haven't yet added any magnets to hold the front gantry extruder down - but I think something at 45 degrees like the voron tap can be added later once I get to some high speed printing tests.
-
Good progress made on Ball Probe
Demo of first attempt at Macro here - which I have initially done on the front Gantry
Video show G32 first, followed by Ball Probe alignment Macro
https://youtube.com/shorts/uPcV3BAuwyc?si=bT-t0YxPR4qDQWooHeld in place for now by Magnets - but I would like to automate the deployment and stowing of the Probe.
The 4 magnets at the edge are for basic positioning, with the larger one near the probe to hold it in place.
probe.g Macro - Currently just front Gantry
G90 G1 U150 V290 F20000 G1 Z50 F5000 G1 X235 Y179 F10000 M574 Z1 S2 K3; Set Z to Ball Probe ; Find basic Z position G1 H4 Z-10 F300 echo "Z", {move.axes[2].userPosition} G1 Z50 F300 G1 H4 Z-10 F300 echo "Z", {move.axes[2].userPosition} G1 Z48 F300 G1 H4 Z-10 F100 echo "Z", {move.axes[2].userPosition} var ZP = move.axes[2].userPosition G1 Z50 F5000 M574 Z1 S2 K0; configure Z axis endstop ; Now find X middle G91 G1 X-10 F5000 G90 G1 Z{var.ZP-0.2} F300 G91 M574 X1 S2 K3 G1 H4 X+10 F300 echo "X1", {move.axes[0].userPosition} G1 X-5 G1 H4 X+10 F300 echo "X1", {move.axes[0].userPosition} G1 X-5 G1 H4 X+10 F300 echo "X1", {move.axes[0].userPosition} var X1 = move.axes[0].userPosition G1 Z5 F300 G1 X10 F5000 G1 Z-5 F300 G1 H4 X-10 F300 echo "X2", {move.axes[0].userPosition} G1 X5 G1 H4 X-10 F300 echo "X2", {move.axes[0].userPosition} G1 X5 G1 H4 X-10 F300 echo "X2", {move.axes[0].userPosition} var X2 = move.axes[0].userPosition G1 Z5 G90 var XM = (var.X1+var.X2)/2 G1 X{var.XM} M574 X1 S3 ; configure X axis endstop ; Now Y G91 G1 Y-10 F5000 G1 Z-5 F300 M574 Y1 S2 K3 G1 H4 Y+10 F300 echo "Y1", {move.axes[1].userPosition} G1 Y-5 F5000 G1 H4 Y+10 F300 echo "Y1", {move.axes[1].userPosition} G1 Y-3 F5000 G1 H4 Y+10 F100 echo "Y1", {move.axes[1].userPosition} var Y1 = move.axes[1].userPosition G1 Z5 F300 G1 Y10 F5000 G1 Z-5 F300 G1 H4 Y-10 F300 echo "Y2", {move.axes[1].userPosition} G1 Y5 F5000 G1 H4 Y-10 F300 echo "Y2", {move.axes[1].userPosition} G1 Y2 F1000 G1 H4 Y-10 F100 echo "Y2", {move.axes[1].userPosition} var Y2 = move.axes[1].userPosition var YM = (var.Y1 + var.Y2) / 2 G1 Z5 F300 G90 G1 X{var.XM} Y{var.YM} F2000 G90 M574 Y1 S3 ; configure Y axis endstop
Results from test - to show level of consistency
19/02/2025, 22:32:59 Y2 182.625
19/02/2025, 22:32:57 Y2 182.625
19/02/2025, 22:32:56 Y2 182.625
19/02/2025, 22:32:53 Y1 174.275
19/02/2025, 22:32:51 Y1 174.300
19/02/2025, 22:32:49 Y1 174.288
19/02/2025, 22:32:44 X2 243.038
19/02/2025, 22:32:42 X2 243.038
19/02/2025, 22:32:40 X2 243.038
19/02/2025, 22:32:37 X1 234.812
19/02/2025, 22:32:35 X1 234.812
19/02/2025, 22:32:32 X1 234.812
19/02/2025, 22:32:28 Z 45.645
19/02/2025, 22:32:26 Z 45.647
19/02/2025, 22:32:23 M98 P"0:/macros/Probe.g"
Z 45.647