Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. Endlessly rebooting node

Endlessly rebooting node

Scheduled Pinned Locked Moved Troubleshooting
7 Posts 3 Posters 672 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • MasMatM Offline
    MasMatM Offline
    MasMat
    wrote on last edited by
    #1

    I finally got bootloader and upload issues done, but now one sketch/node is killing me. I have tried different AtMega328Ps but the symptom remains.
    The node: SlimNode, constant power (step down to 3.3V from alarm system 12V battery), non-PA NRF24, DHT11. Extra LED to blink at start-up, extra cap 100yF at power input. Pins/connections verified once extra.

    Serial:

    
     __  __       ____
    |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
    | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
    | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
    |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
            |___/                      2.3.1
    
    34 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
    55 MCO:BGN:BFR
    2093 TSM:INIT
    2097 TSF:WUR:MS=0
    2105 TSM:INIT:TSP OK
    2109 TSM:INIT:STATID=3
    2113 TSF:SID:OK,ID=3
    2117 TSM:FPAR
    2154 TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    3115 TSF:MSG:READ,0-0-3,s=255,c=3,t=8,pt=1,l=1,sg=0:0
    3125 TSF:MSG:FPAR OK,ID=0,D=1
    4167 TSM:FPAR:OK
    4169 TSM:ID
    4171 TSM:ID:OK
    4175 TSM:UPL
    4182 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
    4194 TSF:MSG:READ,0-0-3,s=255,c=3,t=25,pt=1,l=1,sg=0:1
    4204 TSF:MSG:PONG RECV,HP=1
    4208 TSM:UPL:OK
    4212 TSM:READY:ID=3,PAR=0,DIS=1
    4222 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0101
    4235 TSF:MSG:READ,0-0-3,s=255,c=3,t=15,pt=6,l=2,sg=0:0101
    4249 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=16,pt=0,l=0,sg=0,ft=0,st=OK:
    4263 TSF:MSG:READ,0-0-3,s=255,c=3,t=17,pt=6,l=25,sg=0:<NONCE>
    4329 TSF:MSG:SEND,3-3-0-0,s=255,c=0,t=18,pt=0,l=5,sg=1,ft=1,st=OK:2.3.1
    4341 !TSF:RTE:FPAR ACTIVE
     
     __  __       ____
    |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
    | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
    | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
    |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
            |___/                      2.3.1
    
    36 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
    57 MCO:BGN:BFR
    

    ...and this keeps repeating

    Code:

    /**
     *
     * DESCRIPTION
     * Temp Sensor and repeater / Slim node
     *
     */
    
    #define MY_DEBUG
    #define MY_RADIO_RF24
    #define MY_REPEATER_FEATURE   // Enable repeater functionality for this node
    #define MY_SIGNING_SIMPLE_PASSWD "XXXXXXXXXX"
    #define MY_RF24_IRQ_PIN 2
    #define MY_RX_MESSAGE_BUFFER_FEATURE
    #define MY_NODE_ID 3
    #define MY_BAUD_RATE 57600
    
    #define DHT_DATA_PIN 4
    #define SENSOR_TEMP_OFFSET 0
    #define HUM 1
    #define TEMP 2
    
    static const uint8_t FORCE_UPDATE_N_READS = 10;
    float lastTemp;
    float lastHum;
    uint8_t nNoUpdatesTemp;
    uint8_t nNoUpdatesHum;
    bool metric = true;
    
    #include <SPI.h>
    #include <DHT.h>
    #include <MySensors.h>
    
    MyMessage msgHum(HUM, V_HUM);
    MyMessage msgTemp(TEMP, V_TEMP);
    DHT dht;
    
    void before()
    {
      pinMode(7, OUTPUT);
      int i = 0;
      for(i=0; i < 5; i++) {
        digitalWrite(7, HIGH);
        delay(100);
        digitalWrite(7, LOW);
        delay(300);
    }
    }
    
    void setup()
    {
      delay(100);  // Let power settle
      dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
      wait(2000);
    }
    
    void presentation()  
    { 
      sendSketchInfo("Temp Sensor & Repeater", "v06012019");
      present(HUM, S_HUM);
      present(TEMP, S_TEMP);
      metric = getControllerConfig().isMetric;
    }
    
    void loop()
    {
       // Force reading sensor, so it works also after sleep()
      dht.readSensor(true);
      float temperature = dht.getTemperature();
      if (isnan(temperature)) {
        Serial.println("Failed reading temperature from DHT!");
      } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) {
        // Only send temperature if it changed since the last measurement or if we didn't send an update for n times
        lastTemp = temperature;
        if (!metric) {
          temperature = dht.toFahrenheit(temperature);
        }
        // Reset no updates counter
        nNoUpdatesTemp = 0;
        temperature += SENSOR_TEMP_OFFSET;
        send(msgTemp.set(temperature, 1));
    
        #ifdef MY_DEBUG
        Serial.print("T: ");
        Serial.println(temperature);
        #endif
      } else {
        // Increase no update counter if the temperature stayed the same
        nNoUpdatesTemp++;
      }
    
      float humidity = dht.getHumidity();
      if (isnan(humidity)) {
        Serial.println("Failed reading humidity from DHT");
      } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS) {
        // Only send humidity if it changed since the last measurement or if we didn't send an update for n times
        lastHum = humidity;
        // Reset no updates counter
        nNoUpdatesHum = 0;
        send(msgHum.set(humidity, 1));
    
        #ifdef MY_DEBUG
        Serial.print("H: ");
        Serial.println(humidity);
        #endif
      } else {
        // Increase no update counter if the humidity stayed the same
        nNoUpdatesHum++;
      }
    
      // Sleep for a while to save energy
      //sleep(UPDATE_INTERVAL); 
    //}
    wait(120000);
    }
    

    I dont think it's a power issue but what else could it be? Behavior is the same with DHT11 unplugged. Also same if powering from FTDI.

    AnticimexA 2 Replies Last reply
    0
    • MasMatM MasMat

      I finally got bootloader and upload issues done, but now one sketch/node is killing me. I have tried different AtMega328Ps but the symptom remains.
      The node: SlimNode, constant power (step down to 3.3V from alarm system 12V battery), non-PA NRF24, DHT11. Extra LED to blink at start-up, extra cap 100yF at power input. Pins/connections verified once extra.

      Serial:

      
       __  __       ____
      |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
      | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
      | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
      |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
              |___/                      2.3.1
      
      34 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
      55 MCO:BGN:BFR
      2093 TSM:INIT
      2097 TSF:WUR:MS=0
      2105 TSM:INIT:TSP OK
      2109 TSM:INIT:STATID=3
      2113 TSF:SID:OK,ID=3
      2117 TSM:FPAR
      2154 TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      3115 TSF:MSG:READ,0-0-3,s=255,c=3,t=8,pt=1,l=1,sg=0:0
      3125 TSF:MSG:FPAR OK,ID=0,D=1
      4167 TSM:FPAR:OK
      4169 TSM:ID
      4171 TSM:ID:OK
      4175 TSM:UPL
      4182 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
      4194 TSF:MSG:READ,0-0-3,s=255,c=3,t=25,pt=1,l=1,sg=0:1
      4204 TSF:MSG:PONG RECV,HP=1
      4208 TSM:UPL:OK
      4212 TSM:READY:ID=3,PAR=0,DIS=1
      4222 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0101
      4235 TSF:MSG:READ,0-0-3,s=255,c=3,t=15,pt=6,l=2,sg=0:0101
      4249 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=16,pt=0,l=0,sg=0,ft=0,st=OK:
      4263 TSF:MSG:READ,0-0-3,s=255,c=3,t=17,pt=6,l=25,sg=0:<NONCE>
      4329 TSF:MSG:SEND,3-3-0-0,s=255,c=0,t=18,pt=0,l=5,sg=1,ft=1,st=OK:2.3.1
      4341 !TSF:RTE:FPAR ACTIVE
       
       __  __       ____
      |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
      | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
      | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
      |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
              |___/                      2.3.1
      
      36 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
      57 MCO:BGN:BFR
      

      ...and this keeps repeating

      Code:

      /**
       *
       * DESCRIPTION
       * Temp Sensor and repeater / Slim node
       *
       */
      
      #define MY_DEBUG
      #define MY_RADIO_RF24
      #define MY_REPEATER_FEATURE   // Enable repeater functionality for this node
      #define MY_SIGNING_SIMPLE_PASSWD "XXXXXXXXXX"
      #define MY_RF24_IRQ_PIN 2
      #define MY_RX_MESSAGE_BUFFER_FEATURE
      #define MY_NODE_ID 3
      #define MY_BAUD_RATE 57600
      
      #define DHT_DATA_PIN 4
      #define SENSOR_TEMP_OFFSET 0
      #define HUM 1
      #define TEMP 2
      
      static const uint8_t FORCE_UPDATE_N_READS = 10;
      float lastTemp;
      float lastHum;
      uint8_t nNoUpdatesTemp;
      uint8_t nNoUpdatesHum;
      bool metric = true;
      
      #include <SPI.h>
      #include <DHT.h>
      #include <MySensors.h>
      
      MyMessage msgHum(HUM, V_HUM);
      MyMessage msgTemp(TEMP, V_TEMP);
      DHT dht;
      
      void before()
      {
        pinMode(7, OUTPUT);
        int i = 0;
        for(i=0; i < 5; i++) {
          digitalWrite(7, HIGH);
          delay(100);
          digitalWrite(7, LOW);
          delay(300);
      }
      }
      
      void setup()
      {
        delay(100);  // Let power settle
        dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
        wait(2000);
      }
      
      void presentation()  
      { 
        sendSketchInfo("Temp Sensor & Repeater", "v06012019");
        present(HUM, S_HUM);
        present(TEMP, S_TEMP);
        metric = getControllerConfig().isMetric;
      }
      
      void loop()
      {
         // Force reading sensor, so it works also after sleep()
        dht.readSensor(true);
        float temperature = dht.getTemperature();
        if (isnan(temperature)) {
          Serial.println("Failed reading temperature from DHT!");
        } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) {
          // Only send temperature if it changed since the last measurement or if we didn't send an update for n times
          lastTemp = temperature;
          if (!metric) {
            temperature = dht.toFahrenheit(temperature);
          }
          // Reset no updates counter
          nNoUpdatesTemp = 0;
          temperature += SENSOR_TEMP_OFFSET;
          send(msgTemp.set(temperature, 1));
      
          #ifdef MY_DEBUG
          Serial.print("T: ");
          Serial.println(temperature);
          #endif
        } else {
          // Increase no update counter if the temperature stayed the same
          nNoUpdatesTemp++;
        }
      
        float humidity = dht.getHumidity();
        if (isnan(humidity)) {
          Serial.println("Failed reading humidity from DHT");
        } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS) {
          // Only send humidity if it changed since the last measurement or if we didn't send an update for n times
          lastHum = humidity;
          // Reset no updates counter
          nNoUpdatesHum = 0;
          send(msgHum.set(humidity, 1));
      
          #ifdef MY_DEBUG
          Serial.print("H: ");
          Serial.println(humidity);
          #endif
        } else {
          // Increase no update counter if the humidity stayed the same
          nNoUpdatesHum++;
        }
      
        // Sleep for a while to save energy
        //sleep(UPDATE_INTERVAL); 
      //}
      wait(120000);
      }
      

      I dont think it's a power issue but what else could it be? Behavior is the same with DHT11 unplugged. Also same if powering from FTDI.

      AnticimexA Offline
      AnticimexA Offline
      Anticimex
      Contest Winner
      wrote on last edited by
      #2

      @masmat atmega328p with software signing and encryption will probably mean you are low on ram. Perhaps stack issues cause the reboots?

      Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

      mfalkviddM 1 Reply Last reply
      1
      • AnticimexA Anticimex

        @masmat atmega328p with software signing and encryption will probably mean you are low on ram. Perhaps stack issues cause the reboots?

        mfalkviddM Offline
        mfalkviddM Offline
        mfalkvidd
        Mod
        wrote on last edited by mfalkvidd
        #3

        Good point @anticimex
        I tried the sketch and it displays the following output on my system

        Global variables use 1655 bytes (80%) of dynamic memory, leaving 393 bytes for local variables. Maximum is 2048 bytes.
        Low memory available, stability problems may occur.
        

        @MasMat you'll need to save some ram or switch to a mcu with more ram. https://www.mysensors.org/apidocs/group__memorysavings.html might be useful but will probably be insufficient.

        1 Reply Last reply
        0
        • MasMatM MasMat

          I finally got bootloader and upload issues done, but now one sketch/node is killing me. I have tried different AtMega328Ps but the symptom remains.
          The node: SlimNode, constant power (step down to 3.3V from alarm system 12V battery), non-PA NRF24, DHT11. Extra LED to blink at start-up, extra cap 100yF at power input. Pins/connections verified once extra.

          Serial:

          
           __  __       ____
          |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
          | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
          | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
          |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
                  |___/                      2.3.1
          
          34 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
          55 MCO:BGN:BFR
          2093 TSM:INIT
          2097 TSF:WUR:MS=0
          2105 TSM:INIT:TSP OK
          2109 TSM:INIT:STATID=3
          2113 TSF:SID:OK,ID=3
          2117 TSM:FPAR
          2154 TSF:MSG:SEND,3-3-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
          3115 TSF:MSG:READ,0-0-3,s=255,c=3,t=8,pt=1,l=1,sg=0:0
          3125 TSF:MSG:FPAR OK,ID=0,D=1
          4167 TSM:FPAR:OK
          4169 TSM:ID
          4171 TSM:ID:OK
          4175 TSM:UPL
          4182 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
          4194 TSF:MSG:READ,0-0-3,s=255,c=3,t=25,pt=1,l=1,sg=0:1
          4204 TSF:MSG:PONG RECV,HP=1
          4208 TSM:UPL:OK
          4212 TSM:READY:ID=3,PAR=0,DIS=1
          4222 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0101
          4235 TSF:MSG:READ,0-0-3,s=255,c=3,t=15,pt=6,l=2,sg=0:0101
          4249 TSF:MSG:SEND,3-3-0-0,s=255,c=3,t=16,pt=0,l=0,sg=0,ft=0,st=OK:
          4263 TSF:MSG:READ,0-0-3,s=255,c=3,t=17,pt=6,l=25,sg=0:<NONCE>
          4329 TSF:MSG:SEND,3-3-0-0,s=255,c=0,t=18,pt=0,l=5,sg=1,ft=1,st=OK:2.3.1
          4341 !TSF:RTE:FPAR ACTIVE
           
           __  __       ____
          |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
          | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
          | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
          |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
                  |___/                      2.3.1
          
          36 MCO:BGN:INIT REPEATER,CP=RNNRASQ-,REL=255,VER=2.3.1
          57 MCO:BGN:BFR
          

          ...and this keeps repeating

          Code:

          /**
           *
           * DESCRIPTION
           * Temp Sensor and repeater / Slim node
           *
           */
          
          #define MY_DEBUG
          #define MY_RADIO_RF24
          #define MY_REPEATER_FEATURE   // Enable repeater functionality for this node
          #define MY_SIGNING_SIMPLE_PASSWD "XXXXXXXXXX"
          #define MY_RF24_IRQ_PIN 2
          #define MY_RX_MESSAGE_BUFFER_FEATURE
          #define MY_NODE_ID 3
          #define MY_BAUD_RATE 57600
          
          #define DHT_DATA_PIN 4
          #define SENSOR_TEMP_OFFSET 0
          #define HUM 1
          #define TEMP 2
          
          static const uint8_t FORCE_UPDATE_N_READS = 10;
          float lastTemp;
          float lastHum;
          uint8_t nNoUpdatesTemp;
          uint8_t nNoUpdatesHum;
          bool metric = true;
          
          #include <SPI.h>
          #include <DHT.h>
          #include <MySensors.h>
          
          MyMessage msgHum(HUM, V_HUM);
          MyMessage msgTemp(TEMP, V_TEMP);
          DHT dht;
          
          void before()
          {
            pinMode(7, OUTPUT);
            int i = 0;
            for(i=0; i < 5; i++) {
              digitalWrite(7, HIGH);
              delay(100);
              digitalWrite(7, LOW);
              delay(300);
          }
          }
          
          void setup()
          {
            delay(100);  // Let power settle
            dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
            wait(2000);
          }
          
          void presentation()  
          { 
            sendSketchInfo("Temp Sensor & Repeater", "v06012019");
            present(HUM, S_HUM);
            present(TEMP, S_TEMP);
            metric = getControllerConfig().isMetric;
          }
          
          void loop()
          {
             // Force reading sensor, so it works also after sleep()
            dht.readSensor(true);
            float temperature = dht.getTemperature();
            if (isnan(temperature)) {
              Serial.println("Failed reading temperature from DHT!");
            } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) {
              // Only send temperature if it changed since the last measurement or if we didn't send an update for n times
              lastTemp = temperature;
              if (!metric) {
                temperature = dht.toFahrenheit(temperature);
              }
              // Reset no updates counter
              nNoUpdatesTemp = 0;
              temperature += SENSOR_TEMP_OFFSET;
              send(msgTemp.set(temperature, 1));
          
              #ifdef MY_DEBUG
              Serial.print("T: ");
              Serial.println(temperature);
              #endif
            } else {
              // Increase no update counter if the temperature stayed the same
              nNoUpdatesTemp++;
            }
          
            float humidity = dht.getHumidity();
            if (isnan(humidity)) {
              Serial.println("Failed reading humidity from DHT");
            } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS) {
              // Only send humidity if it changed since the last measurement or if we didn't send an update for n times
              lastHum = humidity;
              // Reset no updates counter
              nNoUpdatesHum = 0;
              send(msgHum.set(humidity, 1));
          
              #ifdef MY_DEBUG
              Serial.print("H: ");
              Serial.println(humidity);
              #endif
            } else {
              // Increase no update counter if the humidity stayed the same
              nNoUpdatesHum++;
            }
          
            // Sleep for a while to save energy
            //sleep(UPDATE_INTERVAL); 
          //}
          wait(120000);
          }
          

          I dont think it's a power issue but what else could it be? Behavior is the same with DHT11 unplugged. Also same if powering from FTDI.

          AnticimexA Offline
          AnticimexA Offline
          Anticimex
          Contest Winner
          wrote on last edited by
          #4

          @masmat correction; you don't use encryption. But as @mfalkvidd says, you are probably in the grey zone of operations so stability much depend on execution paths.

          Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

          1 Reply Last reply
          0
          • mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by mfalkvidd
            #5

            By

            • Turning off MY_DEBUG (yes, you'll be blind but there isn't much to do if you want the signing feature)
            • Turning off MY_REPEATER_FEATURE (can't cram all features into an atmega328)
            • Adding #ifdef MY_DEBUG around the two serial prints that didn't have any rules
            • Changing sendsketchinfo to use the F macro

            I get the following result:

            Sketch uses 13902 bytes (45%) of program storage space. Maximum is 30720 bytes.
            Global variables use 1456 bytes (71%) of dynamic memory, leaving 592 bytes for local variables. Maximum is 2048 bytes.
            

            Not sure if that will be sufficient to avoid crashing, but maybe.

            MasMatM 1 Reply Last reply
            1
            • mfalkviddM mfalkvidd

              By

              • Turning off MY_DEBUG (yes, you'll be blind but there isn't much to do if you want the signing feature)
              • Turning off MY_REPEATER_FEATURE (can't cram all features into an atmega328)
              • Adding #ifdef MY_DEBUG around the two serial prints that didn't have any rules
              • Changing sendsketchinfo to use the F macro

              I get the following result:

              Sketch uses 13902 bytes (45%) of program storage space. Maximum is 30720 bytes.
              Global variables use 1456 bytes (71%) of dynamic memory, leaving 592 bytes for local variables. Maximum is 2048 bytes.
              

              Not sure if that will be sufficient to avoid crashing, but maybe.

              MasMatM Offline
              MasMatM Offline
              MasMat
              wrote on last edited by
              #6

              @mfalkvidd Yeah, it became stable after I did the same. I will have to simplify the tasks for my bare bones nodes.
              Since I'm getting wrong (no warnings) memory messages uploading, do you think I should edit boards.txt?

              atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
              
              atmega328bb.upload.protocol=arduino
              atmega328bb.upload.maximum_size=30720
              atmega328bb.upload.speed=57600
              
              atmega328bb.bootloader.low_fuses=0xE2
              atmega328bb.bootloader.high_fuses=0xDA
              atmega328bb.bootloader.extended_fuses=0xfd
              
              atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
              atmega328bb.bootloader.unlock_bits=0x3F
              atmega328bb.bootloader.lock_bits=0x0F
              
              atmega328bb.build.mcu=atmega328p
              atmega328bb.build.f_cpu=8000000L
              atmega328bb.build.core=arduino:arduino
              atmega328bb.build.variant=arduino:standard
              
              
              atmega328bb.bootloader.tool=arduino:avrdude
              atmega328bb.upload.tool=arduino:avrdude```
              mfalkviddM 1 Reply Last reply
              0
              • MasMatM MasMat

                @mfalkvidd Yeah, it became stable after I did the same. I will have to simplify the tasks for my bare bones nodes.
                Since I'm getting wrong (no warnings) memory messages uploading, do you think I should edit boards.txt?

                atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
                
                atmega328bb.upload.protocol=arduino
                atmega328bb.upload.maximum_size=30720
                atmega328bb.upload.speed=57600
                
                atmega328bb.bootloader.low_fuses=0xE2
                atmega328bb.bootloader.high_fuses=0xDA
                atmega328bb.bootloader.extended_fuses=0xfd
                
                atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
                atmega328bb.bootloader.unlock_bits=0x3F
                atmega328bb.bootloader.lock_bits=0x0F
                
                atmega328bb.build.mcu=atmega328p
                atmega328bb.build.f_cpu=8000000L
                atmega328bb.build.core=arduino:arduino
                atmega328bb.build.variant=arduino:standard
                
                
                atmega328bb.bootloader.tool=arduino:avrdude
                atmega328bb.upload.tool=arduino:avrdude```
                mfalkviddM Offline
                mfalkviddM Offline
                mfalkvidd
                Mod
                wrote on last edited by mfalkvidd
                #7

                @masmat I have never messed with boards.txt, but it seems like your file is missing maximum_data_size. See https://github.com/arduino/arduino-flash-tools/blob/443c0534131d2beb95d0825b6afee3fb123f3f77/hardware/avr/boards.txt#L641

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                22

                Online

                11.7k

                Users

                11.2k

                Topics

                113.1k

                Posts


                Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • MySensors
                • OpenHardware.io
                • Categories
                • Recent
                • Tags
                • Popular