M109 Command not working

Hey All,
I recently upgraded my hot end temp sensor to a PT100 and ever since the printer will start without the extruder being fully heated.

The sensor is reading the correct temperature and the printer is otherwise working fine but it seems like it is totally ignoring the M109 command and beginning the print before the extruder reaches temperature. The only changes I made when I added the PT100 was the temperature table and the analog input pin the temperature is now being read through. 

Any other ideas would be appreciated.



  • Little more information, using 091 firmware on Rambo 1.3
  • Apart from 0.91 being quite old a new sensor should not finish M109 if readings are ok. You could try to send manually
    M109 S200
    and watch temperature graph and log. In log you see output of M115 when M109 is finished so you know when exactly it stops.
  • Thanks for the response. I've been hesitant to upgrade what works for fear of downtime but maybe it is about time. I seem to be getting the correct temperatures(verified at ambient and at operating temp) but perhaps I have an error in my lookup table causing the M109 to be met prematurely. Logging the temp is a good idea, if I do have an error I should be able to catch it.
  • Temperatures look spot on as far as terminal output goes. Going to verify at the hot end with a thermocouple today.

    * RAMBo Pin Assignments

    #ifndef __AVR_ATmega2560__
    #error Oops!  Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.

    #define X_STEP_PIN     37
    #define X_DIR_PIN      48
    #define X_MIN_PIN      12
    #define X_MAX_PIN      24
    #define X_ENABLE_PIN   29
    #define X_MS1_PIN      40
    #define X_MS2_PIN      41

    #define Y_STEP_PIN     36
    #define Y_DIR_PIN      49
    #define Y_MIN_PIN      11
    #define Y_MAX_PIN      23
    #define Y_ENABLE_PIN   28
    #define Y_MS1_PIN      69
    #define Y_MS2_PIN      39

    #define Z_STEP_PIN     35
    #define Z_DIR_PIN      47
    #define Z_MIN_PIN      10
    #define Z_MAX_PIN      30
    #define Z_ENABLE_PIN   27
    #define Z_MS1_PIN      68
    #define Z_MS2_PIN      67

    #define HEATER_BED_PIN 3
    #define TEMP_BED_PIN   2

    #define HEATER_0_PIN   9
    #define TEMP_0_PIN     6

    #define HEATER_1_PIN   7
    #define TEMP_1_PIN     3

    #define HEATER_2_PIN   -1
    #define TEMP_2_PIN     -1

    #define E0_STEP_PIN    34
    #define E0_DIR_PIN     43
    #define E0_ENABLE_PIN  26
    #define E0_MS1_PIN     65
    #define E0_MS2_PIN     66

    #define E1_STEP_PIN    33
    #define E1_DIR_PIN     42
    #define E1_ENABLE_PIN  25
    #define E1_MS1_PIN     63
    #define E1_MS2_PIN     64

    #define DIGIPOTSS_PIN  38
    #define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping

    #define SDPOWER        -1
    #define SDSS           53
    #define LED_PIN        13
    #define FAN_PIN        8
    #define PS_ON_PIN      4
    #define SUICIDE_PIN    -1  //PIN that has to be turned on right after start, to keep power flowing.

    #define E1_PINS

    #define SCK_PIN          52
    #define MISO_PIN         50
    #define MOSI_PIN         51
    #define MAX6675_SS       53

    Is there another pin that I need to assign? The only pin I reassigned was the analog input for my hot end see highlight. I am assuming this is scaled and used to compare to the M109 condition. Is this correct?
  • M109 always uses computed temperature but not sure on older versions.

    Since thermocouple and thermistor need different analog inputs, that would be the only thing to change.
  • Well found out my problem. When I mounted the amplifier board, a convenient spot happened to be fairly close to my stepper motor drives. I think a transient from my motors coupled to the amplifier board causing a spike just high enough to fool the M109 command. Problem fixed itself after I found a new home for the amplifier board.
Sign In or Register to comment.