bad heated chamber temp

Why is my heated chamber temperature stuck at 60 degrees? Even while thermistor is disconnected. Same condition on test rig.


  • Which firmware? What does log show in M105 response in host/server?
    If also removing thermistor makes no difference it is probably reading a different pin than you think.
  • Trying dev2 with rumba32. M105 reports C: 59.4 even though its unplugged. I was able to make the fault occur for the bed but I cant seem to fix it.

    Isn't this right?

    // Rumba32.h  Temperature Sensors
    #define TEMP_0_PIN static_cast<int>(PC_4) // T0
    #define TEMP_2_PIN static_cast<int>(PC_3) // T1
    #define TEMP_3_PIN static_cast<int>(PC_2) // T2
    #define TEMP_4_PIN static_cast<int>(PC_1) // T3
    #define TEMP_1_PIN static_cast<int>(PC_0) // TB bed

    IO_ANALOG_INPUT(IOAnalogChambers, TEMP_4_PIN, 5)
    IO_ANALOG_INPUT(IOAnalogBed1, TEMP_1_PIN, 5)
    IO_ANALOG_INPUT(IOAnalogExt1, TEMP_0_PIN, 5)
    IO_ANALOG_INPUT(IOAnalogExt2, TEMP_3_PIN, 5)

    // Need a conversion table for epcos NTC
    IO_TEMP_TABLE_NTC(TempTableatc, ATC_104GT)
    IO_TEMP_TABLE_NTC(TempTablePT100, PT100_5V)

    // Now create the temperature inputs
    IO_TEMPERATURE_TABLE(TempChambers, IOAnalogChambers, TempTableatc)
    IO_TEMPERATURE_TABLE(TempBed1, IOAnalogBed1, TempTableatc)
    IO_TEMPERATURE_TABLE(TempExt1, IOAnalogExt1, TempTablePT100)
    IO_TEMPERATURE_TABLE(TempExt2, IOAnalogExt2, TempTableatc)

  • Have you already tried using TEMP_2_PIN instead of TEMP_3_PIN or putting sensor or other Tx pin and see if it changes? From logic it looks good so most likely number/physical pin mismatch or defect analog input or input pin is set to another function by some other config part using PC1 pin for whatever.

    Also important in V2 is it listed in heaters array in configuration.h? The chamber using the sensor I mean. This I mean
    #define NUM_HEATERS 4
    #define HEATERS \
    { &HeaterExtruder1, &HeaterExtruder2, &HeatedBed1, &HeatedChamber }

    Guess you have as it appears in temp output, also not sure if that is required for reporting at the moment.
  • I have this in configuration.h

    #define NUM_FANS 1
    #define FAN_LIST \
        { &Fan1PWM }

    #define NUM_HEATED_BEDS 1
    #define HEATED_BED_LIST \
        { &HeatedBed1 }

        { &HeatedChambers }

    #define SERVO_LIST \
        { &ZProbeServo }
    #define TOOLS \
        { &ToolExtruder1, &ToolExtruder2 }

    #define NUM_HEATERS 4
    #define HEATERS \
        { &HeaterExtruder1, &HeaterExtruder2, &HeatedBed1, &HeatedChambers }

  • I tried different pins and confirmed the pin definitions from the stm data sheet. Marlin uses PA1 for heated bed. Using PA1 didnt' help.

  • edited July 2022
    Screenshot of printer with nothing connected, chamber reporting temp.
  • I managed to create 2 erroneous readings now. I'm so confused.
  • PC_0 - 5 is correct. I also have a rumba32 running on my delta. The delta rumba32 is the config I'm running.

    Which is the second and what does it show and what did you change?

    What is with your PT100 - you know that that one needs an amplifier board and a different sensor pin not one with 4.7k in serial? Did not say anything so far because you only mention chamber using a thermistor. Also PT100 is not a NTC sensor, you need IO_TEMP_TABLE_PTC for it as it has temperatures in inverse order.
  • If I change 

    IO_ANALOG_INPUT(IOAnalogChamber, TEMP_2_PIN, 5)


    IO_ANALOG_INPUT(IOAnalogChamber, TEMP_1_PIN, 5)

    Then the temperature reads correct but I was never able to get more than 3 temperatures to work.

    I need the heated bed to work now so if I change TEMP_2_PIN to TEMP_4_PIN the same erroneous reading exists.

    Now I'm out of possible pins. (I even tried using the aux pins used for thermocouples)
  • chasing this error from one pin to the next it seems
  • Ok makes no sense to me mainly because I get not full informations. For every test I would need to know the configuration and wiring. Especially since PT100 will normally not work on thermistor inputs without extra board. But these boards can only be connected to thermistor input pins.  

    // Temperature Sensors
    #define TEMP_0_PIN static_cast<int>(PC_4) // T0
    #define TEMP_2_PIN static_cast<int>(PC_3) // T1
    #define TEMP_3_PIN static_cast<int>(PC_2) // T2
    #define TEMP_4_PIN static_cast<int>(PC_1) // T3
    #define TEMP_1_PIN static_cast<int>(PC_0) // TB bed

    #define THERMOCOUPLE_0_PIN static_cast<int>(PA_3) // A10 on EXP3
    #define THERMOCOUPLE_1_PIN static_cast<int>(PA_4) // A9 on EXP3

    So PT100 must be at THERMOCOUPLE_0_PIN or THERMOCOUPLE_1_PIN with pt100 sensor board.

    So my guess is that your problems come from this mixing. Se better start with one input pin with ATC sensor for all analog tables and all heaters. Just for reading test that all show correct temperatures. Form there, start assigning the sensors you have. For first test also unplug all other sensors just to be sure that the one you read is connected where it should. You see in list above as comment how the pins are named on the board to find correct slot.
  • Can I start over? I just made a fresh start in the firmware too from the repo. Where all I've changed is this

    // Need a conversion table for epcos NTC

    // Now create the temperature inputs

    IO_TEMPERATURE_TABLE(TempBed1, IOAnalogBed1, TempTableATC)
    IO_TEMPERATURE_TABLE(TempExt1, IOAnalogExt1, TempTableATC)
    IO_TEMPERATURE_TABLE(TempExt2, IOAnalogExt2, TempTableATC)

    After successful upload...

    Extruder 2 reads 59.6 degrees and the board is brand new with nothing plugged into it except USB.
  • Ok so as mentioned what happens if you set in TempExt2 instead of IOAnalogExt1 the value IOAnalogExt1 and also what are bed and extruder 1 showing? With that change you should see the same as for extruder 1.

    Then change sensor of ext1 with ext2 and see if it becomes 60°C. If that happens sensor is defect or some other type with different resistence/temperature relationship.
  • "set in TempExt2 instead of IOAnalogExt1"

    With that, both extruders now read 59.6

  • So you now have
    IO_TEMPERATURE_TABLE(TempExt1, IOAnalogExt1, TempTableATC)
    IO_TEMPERATURE_TABLE(TempExt2, IOAnalogExt1, TempTableATC)

    and before ext1 showed correct temperature and now in switched to 59.6? That would not make much sense except ext1 had 59.6 before as well.

    Are you sure it is a ATC thermocouple? Did you measure resistance at room temperature. A PTC sensor would lead to completely wrong values and would be an explaination.
  •  -  screenshot of test
    The sensor is Semitec 104GT thermistor
    It seems temp_2_pin and temp_4_pin don't work as it should?

  • I could try setting up a thermocouple for use instead.
  • The others have 0 temperature which is also wrong, so none works with that logic. Also what do I see - I mean which sensors were connected to what. You show definition of inputs but not which heater was assigned which.  Do they change ich you remove or use a different sensor or 100k resistor. If not they are not working as supposed.  But readings of 0 is nearly impossible to fake.

    I think it is time to check the analog values read directly. In commands.cpp file add after
    case 669: // Measure lcd refresh time

    these lines
    case 820:

    Reupload and then sending M820 shows you the read analog values (0-4095). These change with real sensors and changed values. If not it is not configured as input e.g. because some other function uses pc2 or there might be some defect.
  • I put a thermistor on all pins now for you. This is a test setup. M820 results is there in the log. As you can see heated chamber is still a false/erroneous reading. Where is adc 3?
  • Ok pin 36 is PC4 and if it has same resistor as other pins the measured value is just wrong. From
    you see it is T0. If you have a multimeter measure if the resistors on board for this are 4.7k like the others (no power/usb connected during test). Would not be the first board with wrong resistors. Or if you have enough free analog inputs just use one of the other pins where measurements is ok. It is no must to use TEMP_0_PIN for ext0. Any pin is allowed.
  • I have extruder 1 and 2 and heated bed working. I expected T0 to be different because that is the pt100. It's just when you connect heated chamber the temp rises over 400 and goes to DEF (maybe the clue I didn't realize).


    IO_TEMPERATURE_TABLE(TempChamber, IOAnalogChamber, TempTableatc)


    IO_PWM_SOFTWARE(PWMChamber, IOChamber, 1)


    HEAT_MANAGER_PID(HeatedChamber, 'C', 0, TempChamber, PWMChamber, 400, 255, 1000, 10, 20000, 20.0, 0.6, 65.0, 40, 220, false)

    This should work but the temp rises out of bounds. Am I missing something?
  • T0-T4 are thermistor inputs - connecting PT100 to them will never give correct results!

    Also THERMOCOUPLE_0_PIN is named thermocouple pin you can not connect a thermocouple directly. These are just direct analog pins on expansion header 3:
    #define THERMOCOUPLE_0_PIN static_cast<int>(PA_3) // A10 on EXP3
    #define THERMOCOUPLE_1_PIN static_cast<int>(PA_4) // A9 on EXP3

    You need a PT100 amplifier board to connect the PT100 to it or you get defect message.
  • I tried really hard to find another
    ATC_104GT thermistor so we could stop talking about the pt100

  • edited July 2022
    Maybe a different solution could be you to send me an example of repetier dev2 with 4 working temperatures.
  • Ok that is the board I mean. Did you already replace IO_TEMP_TABLE_NTC(TempTablePT100, PT100_5V) by IO_TEMP_TABLE_PTC(TempTablePT100, PT100_5V) as PT100 is PTC table I think.

    I have no printer with 4 temperatures so also no config with four of them, but it is straight forward - just if you get wrong readings from a pin it gets hard:-)
  • I think I've finally have a usable setup. I have put another PT100 on thermocouple_1_pin. I cannot use temp_2_pin or temp_4_pin. I have no idea why.
  • Great you have at least a solution. Reason can be that you have defined the pins as output or a defect on board. But verifying would need a self written verification sketch, so probably too much.
Sign In or Register to comment.