Force Probe / Strain gauge

I am working on some modifications to my SV08 and wanted to investigate the functionality of the “force probe.” When I opened it, it looked like we had the popular HX711 handling the analog-to-digital conversion/ amplification and an STC8G1K08 microcontroller.

I started by probing the pin to the HX711. For some reason, the sampling rate is set for 10Hz instead of the optional 80Hz. For this application, I would expect that we would want the highest sample rate possible.

Does anyone know where I could find this board’s schematic or the microcontroller’s firmware? I haven’t been able to locate it on Sovol’s site. This printer is meant to be open source, but the documentation is a bit lacking in some respects, and some things (like this sensor) are just missing completely.

Thanks in advance for any help. I am happy to share my findings if anyone else is interested.

The force probe is only used to find the “touch point” (Z offset). No matter how the number is displayed it is actually an INTERGER number of micro steps.

I didn’t do the math but more than one sample per microstep is useless. Most A to D converters average over the sample period making the slower sample stream less noisy.

What do you hope to gain? Speed up the Z rate during touch to save 4 seconds on a 60 minute print?

Fair points but my concern is accuracy of the touch point and access to open source firmware so that I can understand and manipulate the system for myself.

If we are only sampling at 10 reading per second and move at 5mm/sec then my z touch off could be .5 mm variation (±.25mm) which is not great for z-offset.

We could re probe at a slower speed but I am not sure how the strain gauge trigger is calculated because I don’t know the firmware for the microcontroller so doing that is a bit risky.

I could write my own firmware but having a reference point based on the “open source” system seems to be a good start.

10 kHz… error is .0005mm, half a micron

It’s htz not khtz! That’s why I am concerned. Here is the data sheet. HX711 Datasheet by SparkFun Electronics | Digi-Key Electronics

10 hz? what use is a 24 bit A to D at that speed?

I’m positive they are getting better accuracy than that.

I don’t have a SV08 but if I were tasked with setting the offset with that slow of hardware I raise SLOWLY and find the separation point on the rebound. Accelerate on trigger. Would be almost imperceptible to a human observer. I’m sure the algorithm is working off the derivative of the signal to avoid having to zero the system. Dig into the HX711 discussions at Klippper I bet the STC8G1K08 microcontroller is sending the raw data to the host for analysis.

What kind of repeatability do you get on multiple rezeros without a MCU reset?

1 Like

I would be happy to report the the expected vs resulting variability if I could get the firmware. Does anyone know where to find it?

Based on the data sheet 80htz is the max rate you can get from the hx711 and it looks like they are not even using that mode because pin 15 is grounded not 5v.

You seem confident that this is wrong but haven’t provided any data to support that claim.

Sorry, you sent me down a 4 hour rabbit hole reading Strain Gauge/Load Cell based Endstops - #492 by ki2k - Developers - Klipper

It is 10htz right? Seems like a fundamental flaw.

I can find zero info on the board connected between the load cell and the MB except that it is connected to Motherboard pin PE12 which is labeled for the Z limit switch.

[probe_pressure]
pin: ^!PE12     
x_offset: 0                  
y_offset: 0
z_offset : 0
speed: 1.0

The ! tells me the output of the module is essentially simple switch. I doubt very highly you’ll EVER get hold of the firmware for the microcontroller connected to the HX711. Probably has auto zero function and perhaps different switch points force rising VS force falling. Probe the output and stack nickels on the plate (New nickels are 5000±5 mg) if you’re curious.

Seems like swatting a fly with a sledgehammer. An optical switch and spring under the touch pad could do similar accuracy. I bet Sovol had grand plans for a more elaborate system and gave up on making it work.

Yes 10 samples per second.
The discussion I linked earlier talked about code to run regression on the slope of the points when force was changing rapidly to interpolate the “instant of contact” to about 1/5 of a sample period. They eventually (18 months in) came up with my idea of a slow lift and find the point of separation.

10 Hz sensor
2 mm/s lift
regression interpolation
got them about 4 micron resolution

Yeah it just makes no sense that they put a dollar worth of components just to make a mediocre switch. Looks like the MCU is stc which I don’t think klipper even supports and it just triggers the transistors to pull the pin high.

Looks like I can pull the strain gauge off and maybe replace the board with an ads1220 and and Arduino of some kind.

With that said the said am am intrigued by the uart pins on the breakout board.

UART may exist solely to flash firmware OR could be left over from the higher tech prototype they couldn’t make work.
Also why split the ground circuit at the motherboard? I bet it was intended for SPI connection originally.
Back to the stuff I read at Strain Gauge/Load Cell based Endstops - #492 by ki2k - Developers - Klipper the Pi pico has has HX711 interface ready to roll.

BUT how well does the system work as released? If the scatter on the Z offset it yields is 1 or 2 micro steps put it back and find something that NEEDS to be fixed

Here is a project for you.

Install a toolhead off an Ace ($63) on your SV08. That gives you a force sensor connected to a HX711 connected to a MCU that you DO have source code to.

Fair assessment, if it’s working, why touch it? I am working on making some fundamental changes to the machine for a rather specific application. I was hoping harvesting these parts might be the path forward, but it seems like just transitioning to an as2020 is a better bet.