Ethernet Gateway with Nano - Invalid message length, 0 (actual) != 7 (expected)



  • Hi Guys,
    back again with another problem; i m trying to build Ethernet gateway, it starts ok, gets ip but then it goes into some loop with this message on serial port:

    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    

    Gateway Startup

    ⸮⸮⸮⸮=⸮0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    IP: 192.168.99.7
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7```
    
    No Major change in code, 
    
    ```/**
     * 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.
     *
     *******************************
     *
     * REVISION HISTORY
     * Version 1.0 - Henrik EKblad
     * Contribution by a-lurker and Anticimex,
     * Contribution by Norbert Truchsess <norbert.truchsess@t-online.de>
     * Contribution by Tomas Hozza <thozza@gmail.com>
     *
     *
     * DESCRIPTION
     * The EthernetGateway sends data received from sensors to the ethernet link.
     * The gateway also accepts input on ethernet interface, which is then sent out to the radio network.
     *
     * The GW code is designed for Arduino 328p / 16MHz.  ATmega168 does not have enough memory to run this program.
     *
     * LED purposes:
     * - To use the feature, uncomment MY_DEFAULT_xxx_LED_PIN in the sketch below
     * - RX (green) - blink fast on radio message received. In inclusion mode will blink fast only on presentation received
     * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
     * - ERR (red) - fast blink on error during transmission error or receive crc error
     *
     * See http://www.mysensors.org/build/ethernet_gateway for wiring instructions.
     *
     */
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    //#define MY_RADIO_NRF5_ESB
    //#define MY_RADIO_RFM69
    //#define MY_RADIO_RFM95
    
    #define MY_RF24_PA_LEVEL RF24_PA_MAX
    //#define MY_DEBUG_VERBOSE_RF24
    // RF channel for the sensor net, 0-127
    #define RF24_CHANNEL     125
    //RF24_250KBPS for 250kbs, RF24_1MBPS for 1Mbps, or RF24_2MBPS for 2Mbps
    #define RF24_DATARATE 	   RF24_250KBPS
    
    
    // Enable gateway ethernet module type
    #define MY_GATEWAY_W5100
    
    // W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal)
    //#define MY_W5100_SPI_EN 4
    
    // Enable Soft SPI for NRF radio (note different radio wiring is required)
    // The W5100 ethernet module seems to have a hard time co-operate with
    // radio on the same spi bus.
    #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
    #define MY_SOFTSPI
    #define MY_SOFT_SPI_SCK_PIN 14
    #define MY_SOFT_SPI_MISO_PIN 16
    #define MY_SOFT_SPI_MOSI_PIN 15
    #endif
    
    // When W5100 is connected we have to move CE/CSN pins for NRF radio
    #ifndef MY_RF24_CE_PIN
    #define MY_RF24_CE_PIN 5
    #endif
    #ifndef MY_RF24_CS_PIN
    #define MY_RF24_CS_PIN 6
    #endif
    
    // Enable UDP communication
    //#define MY_USE_UDP  // If using UDP you need to set MY_CONTROLLER_IP_ADDRESS below
    
    // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
    //#define MY_IP_ADDRESS 192,168,99,166
    
    // If using static ip you can define Gateway and Subnet address as well
    //#define MY_IP_GATEWAY_ADDRESS 192,168,99,1
    //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
    
    // Renewal period if using DHCP
    //#define MY_IP_RENEWAL_INTERVAL 600
    
    // The port to keep open on node server mode / or port to contact in client mode
    #define MY_PORT 5003
    
    // Controller ip address. Enables client mode (default is "server" mode).
    // Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere.
    //#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 254
    
    // The MAC address can be anything you want but should be unique on your network.
    // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
    // Note that most of the Arduino examples use  "DEAD BEEF FEED" for the MAC address.
    #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    
    // Enable inclusion mode
    //#define MY_INCLUSION_MODE_FEATURE
    // Enable Inclusion mode button on gateway
    //#define MY_INCLUSION_BUTTON_FEATURE
    // Set inclusion mode duration (in seconds)
    //#define MY_INCLUSION_MODE_DURATION 60
    // Digital pin used for inclusion mode button
    //#define MY_INCLUSION_MODE_BUTTON_PIN  3
    
    // Set blinking period
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    
    // Flash leds on rx/tx/err
    // Uncomment to override default HW configurations
    //#define MY_DEFAULT_ERR_LED_PIN 7  // Error led pin
    //#define MY_DEFAULT_RX_LED_PIN  8  // Receive led pin
    //#define MY_DEFAULT_TX_LED_PIN  9  // Transmit led pin
    
    #if defined(MY_USE_UDP)
    #include <EthernetUdp.h>
    #endif
    #include <Ethernet.h>
    #include <MySensors.h>
    
    void setup()
    {
        // Setup locally attached sensors
    }
    
    void presentation()
    {
        // Present locally attached sensors here
    }
    
    void loop()
    {
        // Send locally attached sensors data here
    }```

  • Mod

    @pihome said in Ethernet Gateway with Nano - Invalid message length, 0 (actual) != 7 (expected):

    0;255;3;0;9;TSF:MSG:READ,0-0-0,s=0,c=0,t=0,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7

    As you can see the gateway is only receiving zeroes, probably due to a radio communication problem.
    See this thread for some suggestions on how to solve it.



  • @Yveaux
    yes it looks like power issue, haven't fixed it yet but for future if some one stumbled upon this posts: gateway starts ok, but as soon as some message arrives gateway reset and controller lost connection with gateway (serial output below), i dont have inductor available to test suggested solution.
    PS: i have tried supplying power from separate source to W5100, changed cap on nrf from 10uf to 100uf but no luck.

    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    IP: 192.168.99.7
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
    
    
    
    0;255;3;0;9;TSF:MSG:READ,26-18-0,s=1,c=1,t=38,pt=7,l=5,sg=0:3.36
    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    IP: 192.168.99.7
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
    
    
    0;255;3;0;9;TSF:MSG:READ,27-27-0,s=1,c=1,t=38,pt=7,l=5,sg=0:1.61
    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    IP: 192.168.99.7
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1```

  • Mod



  • @Yveaux
    thank you for help, downgrading to the 1.16.11 version fixed the disconnection issue. now back to power problem, i have order inductors to test this but it need another 4 weeks 😞

    How to Change to version 1.116.11
    172pilot: "Tools, Board, and at the top of the list, choose board manager, click in the window for "Arduino AVR Boards" and it will give you a pull-down for 'version' in the bottom left. Choose your 1.16.11 version, and click install.."

    0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.1
    0;255;3;0;9;TSM:INIT
    0;255;3;0;9;TSF:WUR:MS=0
    0;255;3;0;9;TSM:INIT:TSP OK
    0;255;3;0;9;TSM:INIT:GW MODE
    0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;MCO:REG:NOT NEEDED
    IP: 192.168.99.5
    0;255;3;0;9;MCO:BGN:STP
    0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
    0;255;3;0;9;TSF:MSG:READ,25-25-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    0;255;3;0;9;TSF:MSG:BC
    0;255;3;0;9;TSF:MSG:FPAR REQ,ID=25
    0;255;3;0;9;TSF:CKU:OK,FCTRL
    0;255;3;0;9;TSF:MSG:GWL OK
    0;255;3;0;9;TSF:MSG:SEND,0-0-25-25,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
    0;255;3;0;9;TSF:MSG:READ,25-25-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    0;255;3;0;9;!TSF:MSG:LEN,0!=7
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    0;255;3;0;9;!TSF:MSG:SEND,0-0-25-25,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=NACK:0100
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=11,pt=0,l=18,sg=0:Temperature Sensor
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=12,pt=0,l=4,sg=0:1.35
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=0,c=0,t=6,pt=0,l=0,sg=0:
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=26,pt=1,l=1,sg=0:2
    0;255;3;0;9;TSF:MSG:SEND,0-0-25-25,s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=OK:1
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=1,c=1,t=38,pt=7,l=5,sg=0:1.47
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=0,pt=1,l=1,sg=0:34
    0;255;3;0;9;TSF:MSG:READ,25-27-0,s=0,c=1,t=0,pt=7,l=5,sg=0:29.5
    0;255;3;0;9;TSF:MSG:READ,26-26-0,s=1,c=5,t=46,pt=7,l=5,sg=0:6.53
    0;255;3;0;9;TSF:MSG:READ,26-26-0,s=255,c=3,t=0,pt=1,l=1,sg=0:77
    0;255;3;0;9;TSF:MSG:READ,26-26-0,s=0,c=1,t=0,pt=7,l=5,sg=0:28.7
    0;255;3;0;9;TSF:MSG:READ,21-21-0,s=0,c=1,t=0,pt=7,l=5,sg=0:24.1
    0;255;3;0;9;TSF:MSG:READ,20-20-0,s=0,c=1,t=0,pt=7,l=5,sg=0:22.8
    0;255;3;0;9;TSF:MSG:READ,0-0-255,s=255,c=3,t=20,pt=0,l=0,sg=0:
    0;255;3;0;9;TSF:MSG:BC
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=1,c=1,t=38,pt=7,l=5,sg=0:0.38
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=255,c=3,t=0,pt=3,l=1,sg=0:37899
    0;255;3;0;9;!TSF:MSG:LEN,9!=8
    0;255;3;0;9;TSF:MSG:READ,26-26-0,s=255,c=3,t=0,pt=1,l=1,sg=0:77
    0;255;3;0;9;TSF:MSG:READ,25-25-0,s=0,c=1,t=0,pt=7,l=5,sg=0:29.2```


  • Hi Guys,
    while troubleshooting Ethernet gateway, i discover my arduino nano voltage on different pin as i wasn't sure from where to feed power to W51000 module just decided to check voltage on these three different pins and to my surprise all three gives different values . i can not find any decent schematic to check reason for these different voltage. can some shed some light please... i always thought 5v is straight from usb connector without any regulator etc...

    voltage at USB connector 5.11v
    VIN Pin 4.33v
    5v Pin 4.76v


  • Mod

    @pihome according to the arduino nano schematic 5v is connected through a diode to vusb; you'll see the voltage drop.
    Vin is meant as input for the nano's voltage regulator. You should only feed power to it, not sink from it.



  • @Yveaux
    thank you for reply, found something similar for 5v, just in case some one stumble upon this.

    +5V	Output or Input	
    +5V Output (From On-board Regulator) or
    +5V (Input from External Power Supply
    

    ref: http://www.circuitstoday.com/arduino-nano-tutorial-pinout-schematics


Log in to reply
 

Suggested Topics

3
Online

11.4k
Users

11.1k
Topics

112.7k
Posts