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. !MCO:SND:NODE NOT REG - what does it mean? [solved]

!MCO:SND:NODE NOT REG - what does it mean? [solved]

Scheduled Pinned Locked Moved Troubleshooting
10 Posts 3 Posters 2.9k 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.
  • alexsh1A Offline
    alexsh1A Offline
    alexsh1
    wrote on last edited by alexsh1
    #1

    Hi,

    I understand the the subject means "Node is not registered, cannot send message" , but I do not understand why? This is a rfm69 node running 2.2.0 beta. The subj appears in the log many times and the GW cannot see the node. Do I have to change some default settings? I have now used a new rfm69 driver.

    Thanks
    Alex

    PS I must also add that the GW is running a stable 2.1.1

    mfalkviddM 1 Reply Last reply
    0
    • alexsh1A alexsh1

      Hi,

      I understand the the subject means "Node is not registered, cannot send message" , but I do not understand why? This is a rfm69 node running 2.2.0 beta. The subj appears in the log many times and the GW cannot see the node. Do I have to change some default settings? I have now used a new rfm69 driver.

      Thanks
      Alex

      PS I must also add that the GW is running a stable 2.1.1

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

      @alexsh1 the debug messages before the error message are likely to give some clues

      If you want to look at the code, the message is printed here: https://github.com/mysensors/MySensors/blob/28c4f3f19e7026f56fd9bbc61d566f770fd7a9d2/core/MySensorsCore.cpp#L312

      alexsh1A 1 Reply Last reply
      0
      • mfalkviddM mfalkvidd

        @alexsh1 the debug messages before the error message are likely to give some clues

        If you want to look at the code, the message is printed here: https://github.com/mysensors/MySensors/blob/28c4f3f19e7026f56fd9bbc61d566f770fd7a9d2/core/MySensorsCore.cpp#L312

        alexsh1A Offline
        alexsh1A Offline
        alexsh1
        wrote on last edited by
        #3

        @mfalkvidd Thanks, but it does not give me any clues for now. I cannot get 2.1.1 GW to see 2.2.0 beta node unfortunately.

        mfalkviddM 1 Reply Last reply
        0
        • alexsh1A alexsh1

          @mfalkvidd Thanks, but it does not give me any clues for now. I cannot get 2.1.1 GW to see 2.2.0 beta node unfortunately.

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

          @alexsh1 if you posted the debug messages someone might be able to help.

          alexsh1A 1 Reply Last reply
          0
          • mfalkviddM mfalkvidd

            @alexsh1 if you posted the debug messages someone might be able to help.

            alexsh1A Offline
            alexsh1A Offline
            alexsh1
            wrote on last edited by alexsh1
            #5

            @mfalkvidd I had to revert to 2.1.1 on this node as it has an important PIR use. I have setup a new node (Moteino Mega with rfm69hcw), uploaded the test sketch and this is the log:

            0 MCO:BGN:INIT NODE,CP=RRNNA---,VER=2.2.0-beta
            4 TSM:INIT
            5 TSF:WUR:MS=0
            7 TSM:INIT:TSP OK
            8 TSM:INIT:STATID=6
            10 TSF:SID:OK,ID=6
            12 TSM:FPAR
            1231 TSF:MSG:SEND,6-6-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
            1888 TSF:MSG:READ,0-0-6,s=255,c=3,t=8,pt=1,l=1,sg=0:0
            1892 TSF:MSG:FPAR OK,ID=0,D=1
            3239 TSM:FPAR:OK
            3240 TSM:ID
            3241 TSM:ID:OK
            3244 TSM:UPL
            3251 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
            3272 TSF:MSG:READ,0-0-6,s=255,c=3,t=25,pt=1,l=1,sg=0:1
            3277 TSF:MSG:PONG RECV,HP=1
            3279 TSM:UPL:OK
            3281 TSM:READY:ID=6,PAR=0,DIS=1
            3291 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
            3332 TSF:MSG:READ,0-0-6,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
            3549 TSF:MSG:SEND,6-6-0-0,s=255,c=0,t=17,pt=0,l=10,sg=0,ft=0,st=OK:2.2.0-beta
            3562 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
            3584 TSF:MSG:READ,0-0-6,s=255,c=3,t=6,pt=0,l=1,sg=0:M
            3805 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=11,pt=0,l=21,sg=0,ft=0,st=OK:AIQ Sensor CO2 MH-Z14
            3819 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
            3832 TSF:MSG:SEND,6-6-0-0,s=0,c=0,t=22,pt=0,l=0,sg=0,ft=0,st=OK:
            3838 !MCO:SND:NODE NOT REG
            3841 MCO:REG:REQ
            3849 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
            3867 TSF:MSG:READ,0-0-6,s=255,c=3,t=27,pt=1,l=1,sg=0:1
            3872 MCO:PIM:NODE REG=1
            3874 MCO:BGN:STP
            4376 MCO:BGN:INIT OK,TSP=1
            5070 MCO:SLP:MS=30000,SMS=0,I1=255,M1=255,I2=255,M2=255
            5075 TSF:TDI:TSL
            

            Sketch:

            /*
               The MySensors Arduino library handles the wireless radio link and protocol
               between your home built sensors/actuators and HA controller of choice.
               The sensors forms a self healing radio network with optional repeaters. Each
               repeater and gateway builds a routing tables in EEPROM which keeps track of the
               network topology allowing messages to be routed to nodes.
            
               Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
               Copyright (C) 2013-2015 Sensnology AB
               Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
            
               Documentation: http://www.mysensors.org
               Support Forum: http://forum.mysensors.org
            
               This program is free software; you can redistribute it and/or
               modify it under the terms of the GNU General Public License
               version 2 as published by the Free Software Foundation.
            
             *******************************
            
               DESCRIPTION
            
                MH-Z14 CO2 sensor
            
                Wiring:
                 Pad 1, Pad 5: Vin (Voltage input 4.5V-6V)
                 Pad 2, Pad 3, Pad 12: GND
                 Pad 6: PWM output ==> pin 6
            
             	From: http://davidegironi.blogspot.fr/2014/01/co2-meter-using-ndir-infrared-mh-z14.html
              	  MH-Z14 has a PWM output, with a sensitivity range of 0ppm to 2000ppm CO2, an accurancy of ±200ppm.
              	  The cycle is 1004ms±5%, given the duty cicle Th (pulse high), Tl is 1004-Th, we can convert it to CO2 value using the formula:
             	  CO2ppm = 2000 * (Th - 2ms) /(Th + Tl - 4ms)
              	From: http://airqualityegg.wikispaces.com/Sensor+Tests
             	  - response time is less than 30 s
                 - 3 minute warm up time
             	datasheet: http://www.futurlec.com/Datasheet/Sensor/MH-Z14.pdf
               Contributor: epierre
            */
            
            // Enable debug prints to serial monitor
            #define MY_DEBUG
            
            // Enable and select radio type attached
            //#define MY_RADIO_NRF24
            #define MY_RADIO_RFM69
            #define MY_IS_RFM69HW
            #define MY_NODE_ID 6
            //#define MY_PARENT_NODE_ID 0
            #define MY_RFM69_FREQUENCY  RFM69_868MHZ
            
            
            #include <MySensors.h>
            
            #define CHILD_ID_AIQ 0
            #define AIQ_SENSOR_ANALOG_PIN 6
            
            unsigned long SLEEP_TIME = 30 * 1000; // Sleep time between reads (in milliseconds)
            
            float valAIQ = 0.0;
            float lastAIQ = 0.0;
            
            MyMessage msg(CHILD_ID_AIQ, V_LEVEL);
            MyMessage msg2(CHILD_ID_AIQ, V_UNIT_PREFIX);
            
            void setup()
            {
              pinMode(AIQ_SENSOR_ANALOG_PIN, INPUT);
              pinMode(15, OUTPUT);
              pinMode(15, HIGH);
              delay(500);
              pinMode(15, LOW);
            }
            
            void presentation()
            {
              // Send the sketch version information to the gateway and Controller
              sendSketchInfo("AIQ Sensor CO2 MH-Z14", "1.0");
            
              // Register all sensors to gateway (they will be created as child devices)
              present(CHILD_ID_AIQ, S_AIR_QUALITY);
              send(msg2.set("ppm"));
            }
            
            void loop()
            {
            
              //unsigned long duration = pulseIn(AIQ_SENSOR_ANALOG_PIN, HIGH);
              while (digitalRead(AIQ_SENSOR_ANALOG_PIN) == HIGH) {
                ;
              }
              //wait for the pin to go HIGH and measure HIGH time
              unsigned long duration = pulseIn(AIQ_SENSOR_ANALOG_PIN, HIGH);
            
              //Serial.print(duration/1000); Serial.println(" ms ");
              //from datasheet
              //CO2 ppm = 2000 * (Th - 2ms) / (Th + Tl - 4ms)
              //  given Tl + Th = 1004
              //        Tl = 1004 - Th
              //        = 2000 * (Th - 2ms) / (Th + 1004 - Th -4ms)
              //        = 2000 * (Th - 2ms) / 1000 = 2 * (Th - 2ms)
              long co2ppm = 2 * ((duration / 1000) - 2);
              //Serial.print(co2ppm);
              if ((co2ppm != lastAIQ) && (abs(co2ppm - lastAIQ) >= 10)) {
                send(msg.set((long)ceil(co2ppm)));
                lastAIQ = ceil(co2ppm);
              }
            
              //Serial.println();
            
              // Power down the radio.  Note that the radio will get powered back up
              // on the next write() call.
              sleep(SLEEP_TIME); //sleep for: sleepTime
            }
            

            The node is running latest 2.2.0 beta
            The GW is running 2.1.1 Stable.
            They do communicate though I still see "MCO:SND:NODE NOT REG"

            The other node had rfm69w and was throwing many "MCO:SND:NODE NOT REG"

            alexsh1A 1 Reply Last reply
            0
            • alexsh1A alexsh1

              @mfalkvidd I had to revert to 2.1.1 on this node as it has an important PIR use. I have setup a new node (Moteino Mega with rfm69hcw), uploaded the test sketch and this is the log:

              0 MCO:BGN:INIT NODE,CP=RRNNA---,VER=2.2.0-beta
              4 TSM:INIT
              5 TSF:WUR:MS=0
              7 TSM:INIT:TSP OK
              8 TSM:INIT:STATID=6
              10 TSF:SID:OK,ID=6
              12 TSM:FPAR
              1231 TSF:MSG:SEND,6-6-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
              1888 TSF:MSG:READ,0-0-6,s=255,c=3,t=8,pt=1,l=1,sg=0:0
              1892 TSF:MSG:FPAR OK,ID=0,D=1
              3239 TSM:FPAR:OK
              3240 TSM:ID
              3241 TSM:ID:OK
              3244 TSM:UPL
              3251 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
              3272 TSF:MSG:READ,0-0-6,s=255,c=3,t=25,pt=1,l=1,sg=0:1
              3277 TSF:MSG:PONG RECV,HP=1
              3279 TSM:UPL:OK
              3281 TSM:READY:ID=6,PAR=0,DIS=1
              3291 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
              3332 TSF:MSG:READ,0-0-6,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
              3549 TSF:MSG:SEND,6-6-0-0,s=255,c=0,t=17,pt=0,l=10,sg=0,ft=0,st=OK:2.2.0-beta
              3562 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
              3584 TSF:MSG:READ,0-0-6,s=255,c=3,t=6,pt=0,l=1,sg=0:M
              3805 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=11,pt=0,l=21,sg=0,ft=0,st=OK:AIQ Sensor CO2 MH-Z14
              3819 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
              3832 TSF:MSG:SEND,6-6-0-0,s=0,c=0,t=22,pt=0,l=0,sg=0,ft=0,st=OK:
              3838 !MCO:SND:NODE NOT REG
              3841 MCO:REG:REQ
              3849 TSF:MSG:SEND,6-6-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
              3867 TSF:MSG:READ,0-0-6,s=255,c=3,t=27,pt=1,l=1,sg=0:1
              3872 MCO:PIM:NODE REG=1
              3874 MCO:BGN:STP
              4376 MCO:BGN:INIT OK,TSP=1
              5070 MCO:SLP:MS=30000,SMS=0,I1=255,M1=255,I2=255,M2=255
              5075 TSF:TDI:TSL
              

              Sketch:

              /*
                 The MySensors Arduino library handles the wireless radio link and protocol
                 between your home built sensors/actuators and HA controller of choice.
                 The sensors forms a self healing radio network with optional repeaters. Each
                 repeater and gateway builds a routing tables in EEPROM which keeps track of the
                 network topology allowing messages to be routed to nodes.
              
                 Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                 Copyright (C) 2013-2015 Sensnology AB
                 Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
              
                 Documentation: http://www.mysensors.org
                 Support Forum: http://forum.mysensors.org
              
                 This program is free software; you can redistribute it and/or
                 modify it under the terms of the GNU General Public License
                 version 2 as published by the Free Software Foundation.
              
               *******************************
              
                 DESCRIPTION
              
                  MH-Z14 CO2 sensor
              
                  Wiring:
                   Pad 1, Pad 5: Vin (Voltage input 4.5V-6V)
                   Pad 2, Pad 3, Pad 12: GND
                   Pad 6: PWM output ==> pin 6
              
               	From: http://davidegironi.blogspot.fr/2014/01/co2-meter-using-ndir-infrared-mh-z14.html
                	  MH-Z14 has a PWM output, with a sensitivity range of 0ppm to 2000ppm CO2, an accurancy of ±200ppm.
                	  The cycle is 1004ms±5%, given the duty cicle Th (pulse high), Tl is 1004-Th, we can convert it to CO2 value using the formula:
               	  CO2ppm = 2000 * (Th - 2ms) /(Th + Tl - 4ms)
                	From: http://airqualityegg.wikispaces.com/Sensor+Tests
               	  - response time is less than 30 s
                   - 3 minute warm up time
               	datasheet: http://www.futurlec.com/Datasheet/Sensor/MH-Z14.pdf
                 Contributor: epierre
              */
              
              // Enable debug prints to serial monitor
              #define MY_DEBUG
              
              // Enable and select radio type attached
              //#define MY_RADIO_NRF24
              #define MY_RADIO_RFM69
              #define MY_IS_RFM69HW
              #define MY_NODE_ID 6
              //#define MY_PARENT_NODE_ID 0
              #define MY_RFM69_FREQUENCY  RFM69_868MHZ
              
              
              #include <MySensors.h>
              
              #define CHILD_ID_AIQ 0
              #define AIQ_SENSOR_ANALOG_PIN 6
              
              unsigned long SLEEP_TIME = 30 * 1000; // Sleep time between reads (in milliseconds)
              
              float valAIQ = 0.0;
              float lastAIQ = 0.0;
              
              MyMessage msg(CHILD_ID_AIQ, V_LEVEL);
              MyMessage msg2(CHILD_ID_AIQ, V_UNIT_PREFIX);
              
              void setup()
              {
                pinMode(AIQ_SENSOR_ANALOG_PIN, INPUT);
                pinMode(15, OUTPUT);
                pinMode(15, HIGH);
                delay(500);
                pinMode(15, LOW);
              }
              
              void presentation()
              {
                // Send the sketch version information to the gateway and Controller
                sendSketchInfo("AIQ Sensor CO2 MH-Z14", "1.0");
              
                // Register all sensors to gateway (they will be created as child devices)
                present(CHILD_ID_AIQ, S_AIR_QUALITY);
                send(msg2.set("ppm"));
              }
              
              void loop()
              {
              
                //unsigned long duration = pulseIn(AIQ_SENSOR_ANALOG_PIN, HIGH);
                while (digitalRead(AIQ_SENSOR_ANALOG_PIN) == HIGH) {
                  ;
                }
                //wait for the pin to go HIGH and measure HIGH time
                unsigned long duration = pulseIn(AIQ_SENSOR_ANALOG_PIN, HIGH);
              
                //Serial.print(duration/1000); Serial.println(" ms ");
                //from datasheet
                //CO2 ppm = 2000 * (Th - 2ms) / (Th + Tl - 4ms)
                //  given Tl + Th = 1004
                //        Tl = 1004 - Th
                //        = 2000 * (Th - 2ms) / (Th + 1004 - Th -4ms)
                //        = 2000 * (Th - 2ms) / 1000 = 2 * (Th - 2ms)
                long co2ppm = 2 * ((duration / 1000) - 2);
                //Serial.print(co2ppm);
                if ((co2ppm != lastAIQ) && (abs(co2ppm - lastAIQ) >= 10)) {
                  send(msg.set((long)ceil(co2ppm)));
                  lastAIQ = ceil(co2ppm);
                }
              
                //Serial.println();
              
                // Power down the radio.  Note that the radio will get powered back up
                // on the next write() call.
                sleep(SLEEP_TIME); //sleep for: sleepTime
              }
              

              The node is running latest 2.2.0 beta
              The GW is running 2.1.1 Stable.
              They do communicate though I still see "MCO:SND:NODE NOT REG"

              The other node had rfm69w and was throwing many "MCO:SND:NODE NOT REG"

              alexsh1A Offline
              alexsh1A Offline
              alexsh1
              wrote on last edited by
              #6

              Ok, sorted. For some reason my PIR sketch did not work on atmega328p. Perhaps, this is due to its size (99% of memory). The same sketch worked fine on Moteino Mega. Unfortunately, I had to get rid of signing :angry: to make sure the sketch goes down in size.

              AnticimexA 1 Reply Last reply
              0
              • alexsh1A alexsh1

                Ok, sorted. For some reason my PIR sketch did not work on atmega328p. Perhaps, this is due to its size (99% of memory). The same sketch worked fine on Moteino Mega. Unfortunately, I had to get rid of signing :angry: to make sure the sketch goes down in size.

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

                @alexsh1 drop debug when you are done hacking and it might fit again

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

                alexsh1A 1 Reply Last reply
                0
                • AnticimexA Anticimex

                  @alexsh1 drop debug when you are done hacking and it might fit again

                  alexsh1A Offline
                  alexsh1A Offline
                  alexsh1
                  wrote on last edited by
                  #8

                  @Anticimex will do! I discovered that atmega328p does not like it when the sketch is 99%. The node was throwing strange error messages. Additionally, without debug, I cannot say if everything is working fine.

                  AnticimexA 1 Reply Last reply
                  0
                  • alexsh1A alexsh1

                    @Anticimex will do! I discovered that atmega328p does not like it when the sketch is 99%. The node was throwing strange error messages. Additionally, without debug, I cannot say if everything is working fine.

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

                    @alexsh1 if you talk about ram usage, no. Then you have no space for the stack.
                    Regarding the ability to determine if things are working or not, it is no problem. You do the code you need to and make sure it works. Then you enable signing. And if messages still arrive it works. Simple as that. Signing on one node is no different from signing on another.

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

                    alexsh1A 1 Reply Last reply
                    0
                    • AnticimexA Anticimex

                      @alexsh1 if you talk about ram usage, no. Then you have no space for the stack.
                      Regarding the ability to determine if things are working or not, it is no problem. You do the code you need to and make sure it works. Then you enable signing. And if messages still arrive it works. Simple as that. Signing on one node is no different from signing on another.

                      alexsh1A Offline
                      alexsh1A Offline
                      alexsh1
                      wrote on last edited by alexsh1
                      #10

                      @Anticimex on a few nodes I cannot enable signing as even with debug disable, it still does not fit within 32kb memory. I have dualoptiboot, which means memory is 1.5kb less that using optiboot. Optiboot is not good for OTA. This is the situation either ... or
                      This is why I'm increasing often looking at Moteino Mega or ARM M0.

                      The other thing is that I can avoid using libraries and re-write the code impreling functions which I only use in the code. This is a very tedious process and the code has to be changed from node to node as some parts of a library is missing.

                      Life is just not perfect :-(

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


                      27

                      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