Skip to content

Inductive probe EMI from extruder heater PWM - #127

Open
640kilobyte wants to merge 5 commits into
qidi-community:mainfrom
640kilobyte:inductive-probe-emi
Open

Inductive probe EMI from extruder heater PWM#127
640kilobyte wants to merge 5 commits into
qidi-community:mainfrom
640kilobyte:inductive-probe-emi

Conversation

@640kilobyte

@640kilobyte 640kilobyte commented Jul 28, 2026

Copy link
Copy Markdown

I discovered that the stock inductive sensor was picking up interference from the extruder heater PWM, which is always on at 140c. Apparently, this is critically dependent on the relative position of the wiring - it`s not shielded from interference.

After disabling the extruder heater during meshing, the readings and their repeatability improved significantly. Disabling it has no effect on other aspects - it doesn't participate in the measurement when the probe is running, and its geometric stability isn't required.

Disabling the heater is a good method of preventing interference, along with rerouting the wiring.

@hayden-t

Copy link
Copy Markdown
Contributor

thats sounds interesting, i look forward to trying it when home next

@640kilobyte

640kilobyte commented Jul 28, 2026

Copy link
Copy Markdown
Author

Update: I was told about the parameters deactivate_on_each_sample, activate_gcode, and deactivate_gcode.

I'm currently testing rewriting them to disable heaters only during data collection. Will test today later.

[smart_effector]
deactivate_on_each_sample: True
activate_gcode:
    _PROBE_HEATERS_ACTIVATE
deactivate_gcode:
    _PROBE_HEATERS_DEACTIVATE
[gcode_macro _PROBE_HEATERS_ACTIVATE]
description: Induction sensor/probe activate heaters
variable_extruder_temp: 0
gcode:
    {% if extruder_temp > 0 %}
        M104 S{extruder_temp} # extruder
    {% endif %}

[gcode_macro _PROBE_HEATERS_DEACTIVATE]
description: Induction sensor/probe deactivate heaters for EMI
gcode:
    SET_GCODE_VARIABLE MACRO=_PROBE_HEATERS_ACTIVATE VARIABLE=extruder_temp VALUE={printer["extruder"].target}
    M104 S0 # extruder

P.S. bed and chamber (thank you, auto heating!) off don't work because default recovery_time=0. Also activate_gcode and deactivate_gcode work on start and stop meshing also with this setting. So i only disable extruder heater.

@640kilobyte

Copy link
Copy Markdown
Author

Will rewrite to activate_gcode/deactivate_gcode - no need to edit g29 and work as expected on 2 printers (one where has current problem with incutive probe data)

@640kilobyte

Copy link
Copy Markdown
Author

Based on the investigation, the inductive sensors appear to be working properly, but fail when overheated above approximately 60-70 degrees Celsius, causing collisions between the bed and the head.

Apparently, the sensor is cooled by the thermal barrier fan.
Because of this, I can't turn off the heater; instead, I keep it at 50 degrees Celsius (the default switch-on temperature), which simply reduces the number of heater activations.

There is a risk of thermal drift in the data, but the repeatability is within acceptable limits. It seems the thermal barrier fan works sufficiently to maintain the temperature below the switch-off temperature, but not enough to overcool the sensor.

My personal opinion: the stock sensor is extremely problematic, especially when paired with the Phaetus Conch, and it's best to switch to a different type. I'm switching to cartographer3d on all my printers and can no longer support this article.

@hayden-t

hayden-t commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Hi, interested research, some thoughts and questions ?

How is the probe getting too hot with the hotend fan off ? the heatbed or are you manually heating the chamber prior to printing.

I might do some testing to see if i have that problem, do you just say run PROBE_ACCURACY SAMPLES=10 to compare the variation ? What sort of results do you get ?

@hayden-t

Copy link
Copy Markdown
Contributor

Also how old is your plus 4, as i thought i read at somepoint they imporved the probe, mine is pretty new ( a few months) and i get these results

hotend off
// probe accuracy results: maximum 1.017344, minimum 1.011563, range 0.005781, average 1.014609, median 1.014297, standard deviation 0.001829
// probe accuracy results: maximum 1.029219, minimum 1.026250, range 0.002969, average 1.027922, median 1.028203, standard deviation 0.000973
// probe accuracy results: maximum 1.046406, minimum 1.042969, range 0.003438, average 1.044234, median 1.044219, standard deviation 0.000944

hot end on, the first result it was on 100% the whole time
// probe accuracy results: maximum 1.058750, minimum 1.055313, range 0.003437, average 1.056656, median 1.056406, standard deviation 0.001023
// probe accuracy results: maximum 1.061406, minimum 1.058906, range 0.002500, average 1.060406, median 1.060625, standard deviation 0.000935
// probe accuracy results: maximum 1.064063, minimum 1.061250, range 0.002812, average 1.062375, median 1.062031, standard deviation 0.000847

so unless im missing it these seem ok either way ?

@640kilobyte

640kilobyte commented Aug 13, 2026

Copy link
Copy Markdown
Author

How is the probe getting too hot with the hotend fan off ? the heatbed or are you manually heating the chamber prior to printing.

Preheat chamber to 65c, bed 105c.

It needs to be clarified that "noise" in mesurment was also at chamber off and bed ~70c.

I might do some testing to see if i have that problem, do you just say run PROBE_ACCURACY SAMPLES=10 to compare the variation ? What sort of results do you get ?

When taking multiple measurements of a single point, sometimes a sharp deviation occurs over several consecutive measurements, which resolves on its own in few seconds. This doesn't always happen, and it occurs in different locations. In the best-case scenario, the printer will notice the deviation and begin re-measuring; in the worst-case scenario, the deviations converge, creating a "bump" on the map (which is slightly smoothed out by adjusting the grid tension).
It`s not bed problem - rapidly meshing (same bed, same temps, no dismount) shows deviations ("bad points") in different places like "noise". The first layer is problematic - some "zones" have bad z-offset.

In my case it happens same way on any my used stock pei (2 plates), custom thin-metal pei (4 plates) and more-thiner-metal fr4 (4 plates).

Carto3d, however, works without problems on the same printers and beds, so mechanics can probably be ruled out.

For the test, I reduced the accuracy and increased the number of point measurement (5), lower tolerance (0.013) and looks for point mesurment retry while building bigger mesh (11x11). With no heated retry was only few times with deviation little bit higher then tolerance. With heater - retry count and deviations was greatly increased.

I also apologize - I can't show the results because I simply abandoned these sensors and did not save the old results.

Also how old is your plus 4, as i thought i read at somepoint they imporved the probe, mine is pretty new ( a few months) and i get these results

2 printers: 10 and 8 months months from the date of purchase. ABS, PC, PA (chamber 65c) with hour preheat almoust 50% of time (all time, not printing time). Bad first layer (monolayer in all bed size with bad z-offset zones) and "samples exceed tolerance" was from first day on stock hardware.

Can you show how looks you inductive probe? I know that Qidi fixed the sensor and it may be different, but I was just unlucky to get printers without it (but with the new SSR).

so unless im missing it these seem ok either way ?

Increase samples per point, start building table mesh and look for probe retry frequency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants