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.
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.
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)
// 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:
Yay! But after a few seconds...
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.
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.