I think it's best that I explain what my issue is before I explain how I arrived here. I have a Tronxy x5s with a stock board that I am repairing for the sake of repairing, even though I know I should probably just spring for a new board. It's the principle of the thing.

  • The extruder thermistor accurately reads for a few seconds, and then gives a negative reading as if it's been unplugged.
  • I know that this is the same reading of an unplugged thermistor because when you unplug either the extruder or bed thermistor from a known-good port, it gives this same negative reading.
  • It is not attached to the original pin. It is attached to a new pin that I moved it to. I cut the old pin off from the thermistor port and soldered the new pin to the traces of the port. Then I changed the pin in the configuration file, and it works, for a while.
  • The electronics are messy but sound; I have used my voltmeter to verify connectivity and voltage.
  • The thermistor works; it reads a little over 100kΩ in my hot garage and the temperature changes after I put it in my hand for a few minutes. But this temperature change only registers, as explained in the rest, for a few seconds.
  • I am sure there's a configuration somewhere in the firmware that I am missing that causes that pin to either go "off" or become disused after a few seconds.

Greater context:

The printer was working great for months, but one day the extruder thermistor shorted so badly that the Analog to Digital pin on the Arduino powering the Melzi board was permanently damaged. The temperature reading consistently stayed at 260 °C, even when unplugged.

I wanted to come up with a repair solution rather than replacing the board (even though I have plans to do that anyway), so I downloaded the datasheet for the Arduino Mega 1248P and looked for other ADC pins I could use. I found that ADC Pin0 was unused on the board, so I thought I'd isolate old pin (ADC Pin 7), solder the trace to the new pin, and change the firmware to reflect the new pin.

Datasheet pinout

Photo of trace and isolation

Then I changed the pin used for that extruder thermistor reading in the Pins_SANGUINOLOLU_11.h config file (the old Melzi board for the Tronxy X5s is a Sanguino):

// Temperature Sensors
#define TEMP_0_PIN          7    // Analog Input (pin 33 extruder) 
#define TEMP_BED_PIN        6   // Analog Input (pin 34 bed)

Changed to

// Temperature Sensors
#define TEMP_0_PIN          0    // Analog Input (pin xx extruder) 
#define TEMP_BED_PIN        6   // Analog Input (pin 34 bed)

I didn't know what "pin 33" was or used to be so I just put xx in the comment.

Anyway, my hardware was good, and my software was supposedly good, so I flashed the new firmware, plugged it in, and turned it on:

Good temperature reading

Yay! But after a few seconds...

Bad temperature reading

Boo. It stops working.

I am sure my connections are solid: I've tested for connectivity and voltage. Both the new port and the heat bed thermistor port get 4.97 volts, so it's not a voltage drop. It's something in the Arduino.

Any ideas?

  • $\begingroup$ Is the old pin still connected to the trace? And what is the output of that pin? $\endgroup$ – 0scar Aug 10 '18 at 5:59
  • $\begingroup$ do you have a chance to test another thermistor? Or simply connect a 100k resistor to ensure that the thermistor is working properly. $\endgroup$ – profesor79 Aug 10 '18 at 10:15
  • $\begingroup$ The old pin has been thoroughly isolated from the trace. When I change it back to pin 7, I get a reading of 260 °C, even with absolutely everything disconnected. The pin is definitely shorted. $\endgroup$ – Giandroid Aug 10 '18 at 13:39
  • $\begingroup$ Oh yes, and I get the same problem when I change to a different thermistor. It's not the thermistor as far as I can tell. $\endgroup$ – Giandroid Aug 10 '18 at 13:40
  • $\begingroup$ so it looks like the ARM chip is asking for a replacement. $\endgroup$ – profesor79 Aug 11 '18 at 1:55

Thermal expansion is opening a connection somewhere. It might not be one of your solderings, but if you shorted the board bad enough to fry pins, it could have cooked something somewhere else, and putting current through it is heating up the spot enough to break the connection. Either somewhere else in/on the board, or inside of the IC chip itself.


I am having the same issue so in the firmware instead of changing to an empty pin, I swapped pins 6 and 7 so the nozzle temp would read from the bed temp plug on the board. Now the nozzle temp is reading properly i went into configurations.h line 291 and changed the 1 to 999 and on line 295 i changed the value to 60 now the bed temp will always be 60 so as long as my print settings match it will never engage the heat bed and allow the machine to print. Now I will use an ESP8266 nodeMCU to read the temp and control the MOSFET for the heat bed.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.