[Solved] 2019 - Mega Board / 5100 Ethernet Shield -> Confirm Pin/etc Setup Please!

  • Hello,

    1. I've got an Elegoo Mega2560 r3 board with a Sunfounder 5100 Ethernet shield.
    2. There is NO radio on this board and it won't have one.
    3. I am trying to configure it as a MQTT gateway without transport to be concerned with local sensors only.
    4. This board/shield combo will init and get onto the network just fine using other sample basic (non-MySensors) tutorial sketches I've found, but not when running MySensors.

    -> I am trying to get the board to initialize, at this point I haven't complicated the basic MQTT gateway sample sketch with any I/O sensor configs; I am simply watching the Serial Monitor to see if the board inits and gets on the network.

    -> I know the Mega has potentially some configuration changes versus an Uno, but all of the threads I've researched and found are 2-3-4 years old and I don't know if things have been updated in the MySensors framework to support a Mega + 5100 Ethernet shield natively. Hopefully so!

    Specific Requests:

    1. If anyone could clarify what I need to change in my code to get this board/Eth shield working I would be MOST appreciative!

    2. I downgraded my Boards Manager version to 1.6.11 from 1.6.23 after reading some older threads about the Mega/5100 combo, what should I set this to?

    Here's my 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-2019 Sensnology AB
     * Full contributor list: https://github.com/mysensors/MySensors/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.
     * Version 1.0 - Henrik Ekblad
     * The W5100 MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker.
     * The node also listens to MY_MQTT_TOPIC_PREFIX and sends out those messages to the radio network
     * LED purposes:
     * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h
     * - 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/esp8266_gateway for wiring instructions.
     * nRF24L01+  ESP8266
     * VCC        VCC
     * CE         GPIO4
     * CSN/CS     GPIO15
     * SCK        GPIO14
     * MISO       GPIO12
     * MOSI       GPIO13
     * Not all ESP8266 modules have all pins available on their external interface.
     * This code has been tested on an ESP-12 module.
     * The ESP8266 requires a certain pin configuration to download code, and another one to run code:
     * - Connect REST (reset) via 10K pullup resistor to VCC, and via switch to GND ('reset switch')
     * - Connect GPIO15 via 10K pulldown resistor to GND
     * - Connect CH_PD via 10K resistor to VCC
     * - Connect GPIO2 via 10K resistor to VCC
     * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch')
      * Inclusion mode button:
     * - Connect GPIO5 via switch to GND ('inclusion switch')
     * Hardware SHA204 signing is currently not supported!
     * Make sure to fill in your ssid and WiFi password below for ssid & pass.
    // Enable debug prints to serial monitor, baud rate is 115200 for console
    #define MY_DEBUG
    // Enables and select radio type (if attached)
    //#define MY_RADIO_RF24
    //#define MY_RADIO_RFM69
    //#define MY_RADIO_RFM95
    // Set this node's subscribe and publish topic prefix
    #define MY_MQTT_PUBLISH_TOPIC_PREFIX "hvac/dampers"
    #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "hvac/dampers"
    // Set MQTT client id
    #define MY_MQTT_CLIENT_ID "mysensors-board1"
    // 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 52 //14 was default, changed to test Mega board
    #define MY_SOFT_SPI_MISO_PIN 50 //16 was default, changed to test Mega board
    #define MY_SOFT_SPI_MOSI_PIN 51 //15 was default, changed to test Mega board
    // 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
    #ifndef MY_RF24_CS_PIN
    #define MY_RF24_CS_PIN 6
    // Enable these if your MQTT broker requires username/password
    //#define MY_MQTT_USER "username"
    //#define MY_MQTT_PASSWORD "password"
    // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
    #define MY_IP_ADDRESS 10,2,20,24
    #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    // If using static ip you can define Gateway and Subnet address as well
    #define MY_IP_GATEWAY_ADDRESS 10,2,20,1
    #define MY_IP_SUBNET_ADDRESS 255,255,255,0
    // MQTT broker ip address or url. Define one or the other.
    //#define MY_CONTROLLER_URL_ADDRESS "m20.cloudmqtt.com"
    #define MY_CONTROLLER_IP_ADDRESS 10, 2, 10, 34
    // The MQTT broker port to to open
    #define MY_PORT 1883
    // Enable inclusion mode
    // Enable Inclusion mode button on gateway
    // Set inclusion mode duration (in seconds)
    // Digital pin used for inclusion mode button
    // Set blinking period
    // Flash leds on rx/tx/err
    // Uncomment to override default HW configurations
    //#define MY_DEFAULT_ERR_LED_PIN 16  // Error led pin
    //#define MY_DEFAULT_RX_LED_PIN  16  // Receive led pin
    //#define MY_DEFAULT_TX_LED_PIN  16  // the PCB, on board LED
    #include <Ethernet.h>
    #include <MySensors.h>
    #include <Bounce2.h>
    void setup()
        // Setup locally attached sensors
    void presentation()
        // Present locally attached sensors here
    void loop()
        // Send locally attached sensors data here

    Here's what pops in the Serial console:

    10:41:18.848 -> 378897 GWT:RMQ:MQTT RECONNECT
    10:41:19.428 -> 379460 GWT:TPC:IP=
    10:41:20.421 -> 380463 GWT:RMQ:MQTT RECONNECT
    10:41:21.003 -> 381026 GWT:TPC:IP=
    10:41:21.994 -> 382028 GWT:RMQ:MQTT RECONNECT
    10:41:22.579 -> 382592 GWT:TPC:IP=
    10:41:23.568 -> 383594 GWT:RMQ:MQTT RECONNECT
    10:41:24.146 -> 384157 GWT:TPC:IP=
    10:41:25.137 -> 385160 GWT:RMQ:MQTT RECONNECT

    I power cycled the board by physically removing the USB power/data cable and the board came up on the network + MQTT session to the broker was established!!

    For what it's worth and for future reference if anyone finds this thread:

    It appears the official MySensors Hello World ethernet gateway basic tutorial works great for the Mega/2560 board paired with a 5100 Ethernet shield.

Log in to reply

Suggested Topics

  • 3
  • 2
  • 2
  • 2
  • 24
  • 3