I have an SV08 that I’m trying to modify. I want to use it as a gantry robot, rather than a 3d printer - I’d like to completely remove the print head so I can replace it with my own sensor. My first problem is that this messes up homing. I don’t need the position to be super-repeatable - around +/-0.5mm is enough. Actual position calibration will be done externally, so I don’t need the inductive sensor - I just want a coarse measure to prevent crashing the head into the bed. I think I have two options:
Use the motor stall current. My understanding is that the SV08 has no limit switches, and uses sensorless homing via motor stall current for the X and Y axes. Can I do the same with Z? In printer.cfg, I’ve tried the following:
I disconnected the pressure sensor from PE12 (‘Z-axis limited’) on the motherboard. When I try to home, I always see the error message ‘Endstop z still triggered after retract’. I suspect the diag_pin is not actually connected for Z. As there is nothing connected to PE13 and PE15, I think the connection to the X and Y axis controllers must be via a trace on the PCB. I’m now a bit stuck here.
Add a simple limit switch. This sounds much simpler - I could add a simple microswitch to the bottom of my sensor, such that it will close (or open) if the head gets too close to the bed. But I’ve no idea how to set this up in Klipper. Does anyone have any pointers?
Thanks for any ideas or suggestions you might have,
The SV08 is a “multi MCU” printer. The open ports on the mainboard are likely going to be too limited to support your project. The printhead has its own MCU. Removing the print head not only removes the switches it removes the pins too.
I’d recommend you plan on adding at least 1 more MCU. Raspberry Pi Pico is a good choice. Klipper firmware is easy to build and flash. Plenty of GPIO pins for limit switches.
You’ll need to learn enough Klipper to connect the add on MCU. Then you’ll have to remap the limit switches and Z probe to the pins on the add on MCU.
What type of device are you planning for the gantry? There are dedicated PNP (pick and place) add ins for klipper if you search github.
Thanks for replying, and for your suggestions. I’m rapidly learning to use/reconfigure Klipper, which seems to be well documented and pretty easy to use.
I was surprised to find the 2nd MCU in the print head! But I don’t think removing it will leave me short, as I don’t need most of what it does. I hope I can do this without adding a replacement 2nd MCU - although I have experience doing that sort of thing if I really need to.
I’m planning to add an antenna connected to a Vector Network Analyser (VNA) in place of the print head. I want to sweep the antenna in 3D space to build up a picture of the radiation pattern or directivity. Gantry control and VNA measurement will be done under control of an external PC, so I don’t need the Sovol to do anything clever. The sweep can be done quite slowly, so I’m not expecting sync problems. I might want to add a ‘ready’ signal from the Sovol, or I might not need it.
So, if I add a z-axis limit switch at the bottom only, I need one GPIO line. If I add a sync signal, I’ll need a 2nd. Given that I’ve removed the heated bed, filament sensor and print head, are there two GPIO lines I can re-purpose?
Thanks! The pin def is a bit brief, but it does give a starting point.
You can do sensorless homing for X and Y but if you do the corresponding switch inputs can’t be used.
This is really useful to know. Do you know why it is so? Do PE13 and PE15 share a connection with the motor controllers, via a trace on the mainboard?
So, my plan is maturing a bit. I now intend to connect a switch via PE9 (filament detection) to use as a z-limit. AFAIK the connectors are Molex PicoBlades. I’m guessing the pins are VCC, signal and GND, which I should be able to figure out with a multimeter (not yet done). I could also use PE12, but it’s currently used for the pressure sensor. Which is a bit confusing, because I expected the pressure signal to be analogue - although maybe it’s not.
If my parts order arrives on Monday I’ll try it out and let you know what happens. Have a good weekend!
Signal is analog but there is a sub board with an HX711 and a SPI chip.
You could wire a switch in place of the loadcell but that seems to be overly complicated.
As for sensor less homing the pin ID’s are connected with the diag pin on the motor driver. NOTE the motor sockets are labeled for the corresponding INPUTS to the motor driver. They are wired to the motor driver outputs and are actually [A+][A-][B+][B-] to the motors.
You may want to update the Amrbian distro running on the H616 SOM. It will run the newest Armbian build for the BTT CM1 with a couple small tweeks.