Sovol SV08 Multiple Motion System Upgrade.
-
-
@dwuk3d said in Sovol SV08 Multiple Motion System Upgrade.:
Update - found a command by looking at the RRF code - M606 S1.
This seems to be needed to get the parallel printing to work - it is not mentioned in the Multi Motion System documentation - but is in the Gcode dictionary.
Thanks for pointing this out, this may be the reason that multiple motion systems haven't been working for people. Unfortunately, it mostly beyond my test rig (and comprehension) to test! However, from your description, I think I understand how it should be used. I've a couple of the paragraphs in the documentation to highlight M606:
https://docs.duet3d.com/en/User_manual/RepRapFirmware/Multiple_motion_systems#enabling-and-selecting-a-motion-queue
https://docs.duet3d.com/en/User_manual/RepRapFirmware/Multiple_motion_systems#command-streams-from-fileCan you check they are correct from your understanding, please?
Ian
-
@droftarts Looks good. The only comment I have is that in my current test configuration I have the M606 near the end of the Start Gcode in Orca Slicer, not at the start of the print file - just before it starts actual printing - as I didn't need homing etc. to be parallel processed.
I wouldn't personally expect to put it in the start.g - as I wouldn't want every print to be forked, also I guess the Macro issue mentioned in this post might start occurring.
-
Managed to get Voron Tap type probing to work on the front gantry, and printing now working fairly well. Time now to return to the alignment probes.
Electromagnet wired up - on Mini5+ 6A output - which has a flyback diode ok
; Electro Magnet M950 P4 C"1.out1" M42 P4 S0
Magnet seems to work ok - and hold pliers on anything above S30
Next on to Servo - decided to use on of these, as I have a few in stock
Powering it with 6v for now - via a LM2596 Buck Converter from the main input PSU
Tried it on io0 - but it didn't work as no PWM (although no error message).
Switched to io1 and now workingM950 S0 C"1.io1.out" ; Probe Servo M280 P0 S60 ; Set Servo
Made hole in case to hold servo next to bed.
3d printing of parts and macro's tomorrow.
-
@dwuk3d Those digital servos can draw a lot of current. You'd not want to block the arm or run it above the spec'd angle or the buck converter might fail.
-
@o_lampe Thanks - yes I was a little worried about that - I can't find it documented anywhere how much power the Servo uses.
It goes up to 8.4 volts - so decided to keep it down to 6v, plus also am turning off the servo as soon as I have done any moves.
Might switch to a geared stepper at some point
-
Auto alignment with ball probe complete.
Original plan was to use the electro magnet on the bed - but it is quite weak - despite specs being near to the permanent magnet that works very well.
So switched to having the magnet off the bed grabbing a big circular plate.
Not sure how much it is really needed.
Also ordered a bigger magnet - but not sure if I will need to use it.
Demo video of homing, levelling, deployment of probe and alignment attached.
-
@dwuk3d Nice video, but I watched it without sound.
The problem with any nozzle touch probes is, you have to make sure the surface is completely clean. (and conductive too?)
I hope your homing macros are ready for "murphy's law" -
@o_lampe Thanks - sorry about the music - will have to get a bit more creative with that - and maybe think about some narration.
Agreed about the nozzles needing to be clean, will have to add in some auto cleaning as part of my start up phase. I've put a cleaning pad on the swing out arm - but haven't done the automation for this yet.
The ball probe is mechanical - so no worries about conductivity.
I think my ultimate solution is likely to be a 3 stage approach - with the inductive probe or an eddy probe to find the ball probe and do some basic alignment, then using a cleaned nozzle pressing on the ball probe for a 2nd phase of alignment, with then a final check using the camera for fine adjustments,
There is some software to do the camera based adjustments automatically - but I suspect that it will be hard to get that to work reliably too - especially in different lighting conditions and with different bits of waste on the nozzle.
-
@dwuk3d Added Nozzle cleaning into alignment process, also decided to start making use of Daemon.g for timeouts of things like magnets, servo's, hot ends - which seems to be working ok.
Only issue is with the hot ends - where if the process is left on when a print is about to start then the daemon.g could drop in and switch tools - so will need to disable any tool based timers when prints are started.
Example switch on Servo and Magnet - in Probe Deploy Macro.
M42 P5 S1 ; Servo On if exists(global.servo5Off) == false global servo5Off = 0 set global.servo5Off = state.upTime + 120 M42 P4 S255 ; Magnet on if exists(global.magnetOff) == false global magnetOff = 0 set global.magnetOff = state.upTime + 200
Example Daemon.g
;daemon.g if exists(global.servo5Off) if global.servo5Off != 0 && global.servo5Off < state.upTime M42 P5 S0 ; Servo Off set global.servo5Off = 0 echo "daemon.g servo5 switched off" if exists(global.magnetOff) if global.magnetOff != 0 && global.magnetOff < state.upTime M42 P4 S0 ; Magnet off set global.magnetOff = 0 echo "daemon.g magnet switched off" if exists(global.T1Off) if global.T1Off != 0 && global.T1Off < state.upTime M596 P0 T1 M109 S0 set global.T1Off = 0 echo "daemon.g T1 switched off" if exists(global.T0Off) if global.T0Off != 0 && global.T0Off < state.upTime M596 P1 T0 M109 S0 set global.T0Off = 0 echo "daemon.g T0 switched off"