Re-enable load cell functionality

I’m running the latest zero firmware, and I do have the load cell wired up in my printer. I’m trying to re-enable it for z-offset, but I’ve hit a wall. First, I can’t find any examples of the printer.cfg that still had the load cell stuff in it. The best I can figure is it’s probably this?

[load_cell]
sensor_type: hx711
dout_pin: PD9
sclk_pin: PD10

The printer starts up just fine, and I get no errors from klipper. The problem is klipper doesn’t seem to be getting any data from the sensor. query_adc doesn’t bring up the sensor, and I can’t get it to trigger by manually tapping the bed or the sensor. Does anyone have any insight? Is it possible that Sovol simply removed the driver from the build?

Last version with pressure sensor was 1.3.7. Tried to find deb file, unsuccessfully.
But, in SOVOL ZERO | Sovol 3D Printer Wiki we have link to google-drive with stuff - SOVOL ZERO - Google Drive - and there we have Image of whole Operation system at 1.3.7 version - named “H616_2.3.3_debian_sovol-1.3.7.zip”.

Here is a block from printer.cfg from that image:

[gcode_macro GET_PRESSURE_TARE]
description: Remeasure the tare value of pressure
gcode:
    SET_PIN PIN=sent_tare_signal VALUE=1  
    G4 P300                   
    SET_PIN PIN=sent_tare_signal VALUE=0 
    M400

[output_pin sent_tare_signal]
pin: PD9
value: 0

[probe_pressure]
pin: !PD10 
x_offset: 0                  
y_offset: 0
z_offset : 0
speed: 3.0

Klipper only supports 1 probe. You’ll have to comment out the eddy sections of your config that define it as a probe.

Note Sovol’s secret fork of Klipper is upstream of any of Klipper’s implementation of load_cell functions. Sovol won’t tell us exactly when the fork occurred so you’re on your own as to what works and what doesn’t.

@sovol3d What version of klipper is your fork based on?

Ok, after some testing, I don’t think the newer firmware was compiled with the load cell stuff at all. The load cell config from 1.3.7 makes klipper spit out errors on startup. Cleaning it up to something that allows the printer to start up without issue, unfortunately, does nothing. It’s just not getting data from the load cell pins, even though the board is powered. Sovol used their own pressure trigger logic so klipper could handle both probes. The newer mainline klipper can handle separate probes for Z and bed mesh. So I think I’ll just end up switching to mainline at some point and either run eddyng or eddy for mesh and load cell for z, depending on what gives me better results. FYI this is the load cell code I cleaned up so klipper could start without freaking out:

[gcode_macro GET_PRESSURE_TARE]
description: Remeasure the tare value of pressure
gcode:
SET_PIN PIN=probe_pressure.tare_pin VALUE=1
G4 P300
SET_PIN PIN=probe_pressure.tare_pin VALUE=0
M400

[probe_pressure]
pin: !PD10
tare_pin: PD9
tare_delay_time: 0.3
z_offset: 0.0
speed: 3.0


Please keep us updated as I’ve considered doing this also

I’ve main-lined one zero board and toolhead before and another thing to consider is that the eddy is capable of being flashed with the ‘main’ eddyNG software. Sovol possibly uses this code, but it’s probably been updated since Sovol used it.

Yes! I have the loadcell working on mainline! Check out here: GitHub - 0dysseusRex/Rex-Sovol-Zero-Mainline: Sovol Zero mainline Klipper: eddy probe Z homing + bed load cell Z offset · GitHub

My setup uses the eddy for bed mesh and the load cell for probing z-offset. It also has an axis twist compensation macro. There’s a bunch of other stuff like two different nozzle wipe macros to choose from, a KAMP style line purge, and a slight rework to the oem screen adding and fixing some functions.

It’s been working pretty well, though maybe 1 in 10 prints or so end up with a slightly sub-par first layer. I think that’s mainly due to the limitations of Sovol’s loadcell setup. Replacing the loadcell’s bed board with this and using stock klipper loadcell configs could potentially lead to better results. GitHub - mulcmu/Plimsoll: Kicad PCB design with XH717 ADC to support Klipper load cell · GitHub

You legend, thanks for all the hard work mate

I’ve only had a quick look, but did you ever play around with flashing the eddy to its mainline eddyng works quite well despite a bit of messing around in order for it to do a rapid scan in kalico

It’s been ages since I looked at the code and I’m not sure it’ll help but there should be a way to aggregate the eddy data with the load cell data and use it as a sanity check/refinement tool. Not sure if it’ll tighten it up though.

I haven’t, though I do think it should be possible. I’m eventually replacing the whole toolhead and I’m planning to switch over to a cartographer, so at the moment I’ve left it on klipper with regular eddy firmware.

I might take a look if I get free time, atm the toolhead is on an sv08 using ng firmware, though I’ve not used the ng’s py files and its using sovols implementation fine which makes me think is sovol just forked it

I recently did a ton of work on the k1max’s load cells and I’m a bit burnt out with it all, but I might just get an itch if its worthwhile.

It’s been working pretty well, though maybe 1 in 10 prints or so end up with a slightly sub-par first layer.

I never upgraded from the firmware that uses pressure probing as it is still working ok for me. I have noticed that over time I start to see more first layer issues. Then I replace my nozzle and I again have consistent excellent first layer performance and top layers and probably everything in between looks a bit better too.

I think what happens is my nozzles eventually get scratches or deposits that make them prone to being a bit dirty at the start of a print and even a very small hard to see bit of gunk can be enough to cause trouble.

Except when printing abrasive filaments I use very cheap MK8 brass nozzles so the cost of nozzle replacement is negligible. Perhaps better quality nozzles would greatly reduce this issue but the few I have tried still get gunky over time or trashed by doing something stupid. I have probably tossed nozzles that would be fine after a thorough manual cleaning but one of the things I love about the Zero is the option to use super cheap nozzles which lets me skip that step with little guilt.

I upgraded my SV08 to the zero tool-head primarily because of the use of propitiatory nozzles the stock 08 uses, there is just no-need for it considering the flow rate of the 08, iirc even with a cheap brass nozzle the zero has quite a bit more flow.

I like the cheap nozzles too, and the fact you can get them in non standard sizes more.

If you need to run something really fast, the cheap steel cht clones off aliexpress are very good too, and if you really want to be a miser, I re-drill my worn nozzles (0.2 gets drilled to 0.3) they work just as good as any other nozzle as long as you use reasonable quality pcb drills :slight_smile: