Hey everyone, I just wanted to write something up to help anyone who is having the issue “MCU ‘mcu’ shutdown: ADC out of range” when booting your printing board boots on any Klipper system.
What does the error mean?
This error means that your device detected that one of the temperature sensor is out of range. Usually in the negative range. For instance, if your board is detecting that your temperature is “-150” but your extruder or bed have configured “min_temp = 0”, this error will be called out. Same goes for temperatures higher than your value under “max_temp”.
How to tell which temperature sensor is having an issue?
The easiest way to figure out which sensor is having an issue is by going to your printer.cfg file and setting both “min_temp” variables under the extruder and heated bed to a large negative number such as “min_temp = -100”.
Once you do that, reload the configuration onto your printer and it should be able to boot up.
Notice that the temperature of the bed is almost -100C. In some cases, you might need to set the temperature to a lower number such as -200 in order for the board to boot.
Causes of this temperature issue
There are multiple issues that could cause this error, all of them surround the temperature sensors:
Bad thermistor connection: the connection on your board to your thermistor might be loose, this is very apparent if the issue comes and goes while you’re printing. Ensure that the crimps and other connections are solid.
Bad thermistor: If the issue is very consistent, your thermistor or its wiring might be damaged. Thermistors are very generic so you can replace with any from Amazon or the OEM from your manufacturer and it should be good.
Bad temperature configuration: This is the simplest one to fix since it does not require any hardware. You need to ensure that your temperature sensor pin is correct in your printer.cfg configuration. For instance, for Atmega2560 based boards, it should be “sensor_pin: PK5” for the extruder temperature pin and “sensor_pin: PK6” for the heated bed temperature pin. Most manufacturers post their pinouts and example Klipper configurations for their boards, be sure to reference the right ones.
Bad thermistor configuration: This one is also a very simple one to fix. You need to ensure that the “Sensor_type” variable in the printer.cfg is the correct one or else the temperature calculations will be out of wack. For most printers it should be “sensor_type: EPCOS 100K B57560G104F”. This is not always the case though, thankfully the Klipper documentation has a list of the available thermistor types (under [extruder] section).
Bad board resistor: Most boards use a resistor in line with your thermistor, if that resistor is broken, the board will not be able to sense the resistance change. You can use a multimeter to see if you can measure any voltage across the pins where the thermistor is connected. If you are not able to see 5V or 3.3V, it is probably broken. If you don’t have the technical knowledge to troubleshoot this issue, I will recommend getting a replacement motherboard.
Bad board: It is very unlikely, but if the sense line going to the microcontroller cannot make it to it, then the system will show this error. You will need a replacement motherboard.
Once you have fixed this issue, return the variables to “min_temp = 0”. Save your configuration, reload your firmware, and enjoy printing 🙂