Temperature Sensor Calibration
Calibrate the chamber air and build plate temperature sensors with the Temp Sensor Tuning macros: when to run them, Automatic vs Manual mode, heating options, what gets saved and how to undo it.
The chamber air sensor and the build plate sensor tell the firmware how hot the chamber and the plate really are. If a sensor reads high, the printer thinks the target is reached while the real temperature is lower; if it reads low, the printer keeps heating and the pre-print wait drags on. Both sensors are calibrated at the factory, but a sensor that was replaced, moved, or has simply drifted with age can be brought back in line with two macros: Temp Sensor Tuning Chamber and Temp Sensor Tuning Bed. This guide covers both. It applies to the Vision Miner 22 IDEX V4 on current firmware.
Before you begin - safety and risk
Read the Safety - Before You Begin article before working on your printer. It covers electrical hazards, hot surfaces, moving parts, and other risks that could cause injury or equipment damage.
When to run this calibration
Run the chamber sensor calibration if:
- Chamber heating takes much longer than usual before a print starts. The printer waits for the chamber sensor to reach the target; if the sensor reads low, that wait stretches out, sometimes to the point of a chamber heater fault.
- The chamber is clearly not as hot as the Web Interface says. A quick check: with the machine heat-soaked and the nozzle heaters off, the nozzle temperatures in the Web Interface should sit close to the chamber temperature. If the nozzles show 80 °C while the chamber sensor claims 105 °C, the chamber sensor is off.
- The chamber temperature sensor or its holder was replaced or moved.
- Prints in high-temperature materials warp or delaminate even though the chamber target matches the material's data sheet.
Need to replace a sensor?
The V3 and V4 have a different frame and sensor mounting, so the replacement procedure is different between them, and there is currently no V4 sensor replacement guide. If you need to replace a temperature sensor, contact our support team for guidance.
Run the build plate sensor calibration if:
- The first layer behaves as if the plate were colder or hotter than the set temperature: poor adhesion at the usual bed temperature, or elephant's foot and overly glossy bottoms.
- The bed thermistor was replaced.
- You measure the plate surface with a pyrometer and it differs from the Web Interface reading by more than a few degrees.
Sensor calibration is not PID tuning
Sensor calibration corrects what the sensor reports. PID tuning corrects how the heater is driven to hold a target. If the temperature reading is right but the heater overshoots or oscillates, run PID Tuning Bed Heater instead, listed in Macros.
What the macros do
Both sensors are thermistors, and the firmware converts their resistance into a temperature with three parameters: the nominal resistance (T), the beta value (B), and a correction coefficient (C). The Temp Sensor Tuning macros search for the value of C that makes the sensor reading match a reference temperature; they do not tune T or B. The chamber macro first applies a fixed sensor configuration with T200000, B3950, and C0. Both macros use a binary search: try a C value, wait for the reading to settle, compare it with the reference, narrow the range, repeat.
The behavior below was checked against the V4 4.1.7 macro files.
| Chamber sensor | Build plate sensor | |
|---|---|---|
| Macro | Temp Sensor Tuning Chamber | Temp Sensor Tuning Bed |
| Location | Macros > System > Calibration > Temperature Tuning | same |
| Reference temperature | Average of the two nozzle sensors (Automatic), or your IR/probe reading (Manual) | Your pyrometer reading of the plate surface |
| Heating during the test | Chamber 105 °C and bed 160 °C for 30 minutes (adjustable), then 5 minutes of settling with the heaters off | Bed to 160 °C (adjustable), then 10 minutes of settling with the heater on |
| Accuracy target | ±0.5 °C | ±0.2 °C |
| Result written to | 0:/sys/user/actions/ChamberTempSensor.g | 0:/sys/user/actions/BedTempCalibration.g |
| Log files | 0:/sys/logs/sensor_chamber.csv and .txt | 0:/sys/logs/sensor_bed.csv and .txt |
| Duration | About 40 minutes with default heating; a few minutes in Immediate mode | About 20 to 25 minutes |
The result files are loaded at every boot, so the calibration survives restarts and firmware updates that keep the user folder. Both macros also write a .txt snapshot of all heater parameters and a .csv temperature log; support may ask for these if the calibration fails.
Tools and Materials
- Infrared thermometer (pyrometer) or a contact temperature probe. Required for the bed calibration and for the chamber Manual mode.
- The carbon fiber sheet (or the print surface you normally print on) for the bed calibration.
- Nothing heat-sensitive inside the chamber: remove PLA, PETG, and TPU spools before the chamber test.
1. Chamber Sensor Calibration
Remove low-temperature materials first
The test heats the chamber to 105 °C and the bed to 160 °C. Any PLA, PETG, or TPU left inside softens or deforms. Also remove tools, spool holders that are not rated for chamber temperature, and anything on the build plate.
Choosing the options
The macro asks three questions before it starts. Here is what each choice means.
1. Start mode
| Option | What it does | When to use it |
|---|---|---|
| Start test | Full run using the current chamber fault detection settings; this option does not change them. | Normal choice. |
| Start (No fault detection) | Relaxes chamber heater fault detection during heating, then restores the default settings before the settling phase. Early cancellation can leave detection relaxed; see the callout below. | For a confirmed sensor calibration problem that interrupts the heating phase. Rule out a heater or wiring fault before choosing this option. |
| Immediate calibration | Skips heating and settling and calibrates at whatever temperature the chamber is at right now. | Chamber is already heat-soaked from a print or a previous attempt. Quick re-check after a calibration. |
2. Calibration method
| Option | Reference | Notes |
|---|---|---|
| Automatic (T0+T1 avg) | The average of the two nozzle temperature sensors. With the nozzle heaters off, the hotends sit in the chamber air and act as two independent thermometers. | No tools needed. The toolheads are homed and parked at X-100 / U100, Z150 so they hang in the middle of the chamber air. The macro aborts if the two nozzles disagree by more than 30 °C, which points at a hotend sensor problem rather than a chamber problem. |
| Manual (IR/Probe) | A temperature you measure yourself and type in. | Use when a nozzle sensor is suspect, or when you have a trusted probe. Measure the air near the sensor, not a metal surface; metal parts lag behind the air and read lower. |
3. Heating duration (not asked in Immediate mode)
30 minutes is the default and enough for most machines. Choose Custom duration (5 to 120 minutes) for a longer soak if the chamber is large or the ambient is cold; 30 to 60 minutes is the useful range. A longer soak gives the nozzles and the sensor more time to reach the same temperature, which is what makes the Automatic reference valid.
Running the test
- Open Macros > System > Calibration > Temperature Tuning > Temp Sensor Tuning Chamber in the Web Interface.
- Answer the applicable prompts as described above. For a full run, confirm that low-temperature materials are removed, then close the door and the lid when asked. The macro clears the tool temperature targets, applies the fixed chamber sensor configuration (
M308 S3 A"Chamber Air" P"1.temp0" Y"thermistor" T200000 B3950 C0 R2200), and checks the initial reading. A reading below -50 °C or above 1500 °C aborts the test. This does not overwrite the saved calibration file.
- Heating phase. The bed goes to 160 °C and the chamber to 105 °C, the status LED changes to the pause color, and the Console reports the remaining time and the current chamber reading once a minute. Let it run. To skip the rest of the heating, hold the X or U endstop until the Console says the phase was skipped.
- Settling phase. After the heating time is up, the macro switches the chamber heater and bed off and waits 5 minutes so the air, the sensor, and the nozzles equalize. This can also be skipped with an endstop, but do not skip it in Automatic mode; the reference comes from this equilibrium.
- Calibration. In Manual mode a dialog asks you to measure and enter the chamber temperature. In Automatic mode the macro takes the nozzle average itself. It then runs the search, printing each iteration to the Console (coefficient, sensor reading, error).
- Result. A dialog reports success or failure with the final coefficient, the remaining error, and the number of iterations.
- Success (error ≤ 0.5 °C): the new coefficient is written to
ChamberTempSensor.g, applied immediately, and the LED turns green. - Failed (error > 0.5 °C): the macro reloads the previous saved configuration from
ChamberTempSensor.g; it does not save the attempted calibration. The dialog calls these "default sensor settings", but the file may contain an earlier calibrated coefficient. See Troubleshooting.
- Success (error ≤ 0.5 °C): the new coefficient is written to
Chamber heater fault detection
If you chose Start (No fault detection), the macro restores the default detection (M570 H3 P600 T70 R5) after heating, before the 5-minute settling phase. It also restores detection if the initial chamber sensor health check fails. Known issue: some earlier exits, including canceling a setup prompt or failing the nozzle temperature comparison, do not restore detection.
After an interrupted run, open Macros > System > Settings > Faults > Chamber Fault Detection, choose Default, and confirm the prompt before printing. The M570 command above restores the defaults for the current session; the macro also saves the selection for future starts.
After a power loss or restart, config.g reloads ChamberFaultDetection.g. The calibration macro does not overwrite this file. The supplied file uses default detection, but a previously saved Moderate or Off setting will be reloaded instead.
2. Build Plate Sensor Calibration
The bed macro is simpler: one mode, one reference, always your pyrometer.
- Put the carbon fiber sheet (or your usual print surface) on the build plate. The pyrometer will read this surface, so it has to be the surface you print on.
- Open Macros > System > Calibration > Temperature Tuning > Temp Sensor Tuning Bed.
- Choose the calibration temperature: Start with 160 °C (default) or Custom temperature (70 to 200 °C). Pick the bed temperature you actually use most; the correction is most accurate near the temperature it was made at.
- The macro turns off the hotend heaters, heats the bed, homes the axes, and parks the toolheads at X-100 / U100 with the plate lowered to Z300 so nothing shadows the surface. It waits until the sensor is within 5 °C of the target, then holds the temperature for 10 minutes so the plate is even. Holding the X or U endstop skips the rest of the settling time.
- When prompted, measure the plate surface with the pyrometer near the center of the sheet and enter the reading. Take the reading quickly and with the lid closed as much as possible; an open lid cools the surface within seconds.
- The macro searches for the coefficient and reports progress every 10 iterations. It saves the best coefficient to
BedTempCalibration.gwhen the error reaches 0.2 °C or the search interval becomes sufficiently small. It then turns the bed off and shows Calibration completed successfully! Check Final Error in the Console: the success dialog alone does not guarantee that the 0.2 °C target was reached.
The macro applies trial coefficients during the search but does not reload the saved result at the end. Restart the printer before verifying the result so config.g applies the saved coefficient. If the Console reports Maximum iterations reached, that exit does not save a new result, even though the final success dialog is still shown; contact support with the log.
Verifying the result
- Chamber: heat the chamber to your usual print temperature, wait 20 minutes with the nozzle heaters off, and compare the chamber reading with the two nozzle readings in the Web Interface. They should be within a few degrees.
- Bed: heat the bed to your usual temperature, wait 10 minutes, and check it with the pyrometer.
- Pre-print heating should return to its normal duration. If it was the chamber sensor causing the long waits, the difference is obvious on the next print.
Undoing a calibration
The factory values are not stored separately, but resetting a sensor to defaults is one line in the Console:
- Chamber:
M308 S3 A"Chamber Air" P"1.temp0" Y"thermistor" T200000 B3950 R2200 C0and then re-run the calibration. - Bed:
M308 S2 A"Bed Heater" P"1.temp1" Y"thermistor" T100000 B3950 R2200 C0and then re-run the calibration.
To make a reset permanent, copy the same line into the matching file under System > user > actions (ChamberTempSensor.g or BedTempCalibration.g). Running calibration again can instead save a newly calculated coefficient; it does not preserve a reset to C0, and an unsuccessful or interrupted run may leave the saved file unchanged.
Troubleshooting
Support
If you could not find an answer here, reach out to our support team.