Sovol SV08 Multiple Motion System Upgrade.
-
Been dusting off some maths knowledge today to try and more accurately position my print head over the top of the camera after auto aligning with the ball probe.
Firstly used a few captured nozzle probe and manually aligned readings, plus some measurements of the distance of the probe and camera from the servo pivot point to try and work out the XY coordinates of the servo pivot point.
With a bit of trial and error I found some numbers that worked
Then wrote this macro to calculate the camera position from ball probed UV coordinates - really please to see SIN/COS/ASIN/ACOS functions available...
;cameraFromUV.g M98 P"0:/macros/ParkXY.g" ;probe U 251.3187 offset U -13.6500092 probe V 202.1375 offset V 41.20003 ;probe U 251.0562 offset U -14.2998352 probe V 199.4344 offset V 41.00005 ;probe U 250.8687 offset U -14.7497253 probe V 197.4219 offset V 40.84999 ;probe U 250.8938 offset U -14.6997528 probe V 197.5125 offset V 40.85002 ;probe U 250.8000 offset U -15.0500336 probe V 196.2250 offset V 40.80002 ;probe U 250.9875 offset U -14.4999847 probe V 198.0063 offset V 40.89999 ; ;G1 U251.4 V202.8 F10000 var uPos = global.ballProbeU+14.5 var vPos = global.ballProbeV-40.9 var servoX = 427.9 var servoY = 188.3 var probePosRadius = 177 var cameraPosRadius = 165 var cameraOffsetAngle = 14 var probeAngle = degrees(asin((global.ballProbeV-var.servoY)/var.probePosRadius)) if var.probeAngle < 90 set var.probeAngle = 180 - var.probeAngle var cameraX = var.servoX + var.cameraPosRadius * cos(radians(var.probeAngle+var.cameraOffsetAngle)) var cameraY = var.servoY + var.cameraPosRadius * sin(radians(var.probeAngle+var.cameraOffsetAngle)) echo "U",global.ballProbeU,"V",global.ballProbeV,"angle",var.probeAngle,"cX",var.cameraX,"cY",var.cameraY if var.cameraX > 200 && var.cameraX < 300 && var.cameraY > 140 && var.cameraY < 200 set var.uPos = var.cameraX set var.vPos = var.cameraY else abort "cameraFromUV.g - suspect camera calculations" if exists(global.savedU) == false global savedU = -1 global savedV = -1 set global.savedU = var.uPos set global.savedV = var.vPos G1 U{var.uPos} V{var.vPos} F10000 if exists(global.servo5Off) && global.servo5Off > 0 set global.servo5Off = state.upTime + 120 if exists(global.magnetOff) && global.magnetOff > 0 set global.magnetOff = state.upTime + 120
results pretty good - all photos are auto alignment and direct move to the camera
Notice the benefits of a camera over a ball probe in first photo - where the ball probe misaligned due to dirty nozzle.
UV
XY after cleaning
-
-
@dwuk3d As long as the belts along the crossbeam aren't aligned properly you won't see accurate positions anywhere else on the bed.
But it's good to have the theory behind alignement solved. -
@o_lampe yes - probably need to properly align belts in next stage.
I'm also thinking of trying the probe at some different angles to see whether the alignments of the two gantries are the same with the probe at different places on the bed.
I quite like the look of the new BambuLab H2D special alignment print bed - using camera's on the print head to read tiny qr codes at pre determined places.
-
Made a start on IDEX motor and pulley mount (above side gantry supports) - will hold the idler at the back from the top took and introduce a tensioning system.
Zip Ties just temporary until I have the new top of gantry belt coupling.
Will have a mirror of the motor mount and idler on the other side.
The new motors at the front on each side will take over the Y axis movement - with the existing X & Y used for one print head each on the rear gantry.
Also tidied up extruders a bit and created top cover for 1LC boards.
-
starting to think about my occasionally moving bed phase.
My original idea for an occasionally moving bed was to allow for the printing of longer thin objects.
But my experience of even printing fairly small object is that the area where both print heads can access without hitting each other is quite restricted - so I think even the current size 350x350 bed moving maybe only 150mm would give some quite big benefits with very little overhang outside of the main printer body.
I think though that I want to go to 350 x 500 or even 350 x 550 - so that when parked the bed still fits nicely within the main printer size - but also allows for ships like the one shown (at 1:500 scale model) to be printed in one go.
Another interesting concept when thinking about ships - is the bow - which overhangs - that doesn't need a build plate under it - so would be an interesting concept having a print going completely beyond the build surface.
-
@dwuk3d In the end we'll see a conveyor belt bed with dozends of tools heads zipping around simultaneously...
But seriously: you could do the same split_the object_trick in a big scale manner.- Build two independent printers with 4 heads each
- place them above the looong conveyor belt with a certain gap
- print parts 1 + 3
- move the belt and print part 2 + 4
- move back and repeat
-
My response to Advantages and disadvantages of Dual Gantry over IDEX and Tool changers as asked by @MostlyMessingAbout
Advantages of Dual Gantry over IDEX
- Additional degree of freedom in Y Axis - allows for parallel printing of different shaped parts or whole objects (if independent Z hopping also available). - up to doubling print speeds.
- Allows Parallel priming and wiping during tool changes - which can push tool change times from >10 seconds down to <1 second
- Only having one head on each gantry means faster speeds possible in the Y direction in particular - which can be an issue with IDEX
- When used in combination with IDEX can allow up to 4 toolheads which can all print in parallel for some parts of large prints. - which could increase print speeds by over 50% more.
- Print head can access the whole X axis
Disadvantages of Dual Gantry over IDEX
- Increased complexity of belt routing
- Slicers don’t currently support parallel printing - so post processing of GCODE required
- Print heads cannot individually access the whole Y axis
- The front gantry and print head can block the view of the rear gantry.
Advantages of Dual Gantry over Tool changing
- Parallel printing - up to doubling print speeds.
- Allows Parallel priming and wiping during gantry or tool changes - which can push tool change times from >17 seconds down to <1 second
- When used in combination with IDEX can allow up to 4 toolheads which can all print in parallel for some parts of large prints. - which could increase print speeds by over 50% more.
- When used in combination with tool changing would allow extremely fast tool changes if the tool changes occur between the two gantries
- Less equipment sitting around not being used 90% of the time.
Disadvantages of Dual Gantry over Tool changing
- Increased complexity of belt routing
- More motors if using a Nozzle changer tool changer
- Slicers don’t currently support parallel printing - so post processing of GCODE required
- Print heads cannot individually access the whole Y axis
- The front gantry and print head can block the view of the rear gantry.
In response to question from @JavierHernandez-bj5hz asking where the Quad head design will be CoreXYUVAB
The current 2 head dual gantry implementation is already CoreXYUV, with AB added on for independent Z lifting.
When I move to 4 head IDEX I will be changing the kinematics of each Gantry over from CoreXY to Dual Markforged - So I guess it will be something like Double , Dual Markforged, Might be Better to call it Quad Markforged I suppose/
In terms of AXIS it will have Z0, X1,Z1,Y,X2,Z2, U1,Z3,V,U2,Z4.
Which in RRF will be XYZUVABCDEF.Then just to add to the complication - the next phase after IDEX is 'occasionally moving bed' - which will add a additional larger Y axis movement capability - so will then be
Z0, X1,Z1,Y,X2,Z2, U1,Z3,V,U2,Z4, Y2 , Which in RRF will be XYZUVABCDEFG -
@o_lampe If you look at some of my earlier video's you might see something like that.
Interestingly if I do end up with a fairly long bed - maybe 600 or 700 mm - then I might have to consider getting a 2nd SV08 and bolting it on the front - which as you said could have 4 heads of its own.
Might get out of hand though.
I think I will probably stop at 3 heads for a while - so that I can see how beneficial adding the 3rd IDEX head really is in real life situations.
I would though really think something like an Orangestorm Giga (with the 1m x 1m x 1m). Could really benefit from 3 gantries with 2 or 3 heads on each, or maybe even 4 gantries with 2-4 heads on each.
There was a good example in this video of printing a coffee table - where the 4 legs could be printed in parallel quite easily.
-
@dwuk3d said in Sovol SV08 Multiple Motion System Upgrade.:
Z0, X1,Z1,Y,X2,Z2, U1,Z3,V,U2,Z4, Y2 , Which in RRF will be XYZUVABCDEFG
Just call it Alphabet kinematics , because there aren't many unused letters left
-
@dwuk3d said in Sovol SV08 Multiple Motion System Upgrade.:
In response to question from @JavierHernandez-bj5hz asking where the Quad head design will be CoreXYUVAB
The current 2 head dual gantry implementation is already CoreXYUV, with AB added on for independent Z lifting.
When I move to 4 head IDEX I will be changing the kinematics of each Gantry over from CoreXY to Dual Markforged - So I guess it will be something like Double , Dual Markforged, Might be Better to call it Quad Markforged I suppose/
In terms of AXIS it will have Z0, X1,Z1,Y,X2,Z2, U1,Z3,V,U2,Z4.
Which in RRF will be XYZUVABCDEF.Then just to add to the complication - the next phase after IDEX is 'occasionally moving bed' - which will add a additional larger Y axis movement capability - so will then be
Z0, X1,Z1,Y,X2,Z2, U1,Z3,V,U2,Z4, Y2 , Which in RRF will be XYZUVABCDEFGThanks David, I called it TotalPnP QuadMarkForged. I not design a 3D printer,actually I design desktop SMT (PCBA) machines. And I have some interesting ideas with this.
So, would duplicating the Dual Markforged IDEX kinematics be enough?
What do you think about using GT2 50T timing pulley instance 20T timing pulley in motors? I have been using it like this in both Y and X for years with Nema17 60mm in cartesian machine and it has worked well for me. You lose a little torque but you gain some speed, and since they are 60mm there is still enough torque to work well.
Best regards
Javier Hernandez
-
@bricobot not sure about 50t - I guess having two motors on the dual Markforged Y axis does mean there should be plenty of torque - so I could look at increasing speed.
What i would like to do is get close to SV08 standard single head speeds - which I think is fairly quick -but then double or triple this with parallel printing.
Then make colour changes between 10 and 100x quicker than any non parallel printer.
-
Rear gantry IDEX all belted and motor'd up - just need wiring and software now - plus rebuilding of 3rd extruder