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. Hardware
  3. Rocketscream Mini Ultra Pro V3 as gateway

Rocketscream Mini Ultra Pro V3 as gateway

Scheduled Pinned Locked Moved Hardware
10 Posts 2 Posters 1.6k Views 2 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.
  • R Offline
    R Offline
    robbie deloose
    wrote on last edited by
    #1

    Is anyone using a Mini Ultra Pro v3 as a gateway? I have a few of them lying around and I want to use one as a gsm gateway

    I tried getting the nRF24 radio up and running before adding other components, but I seem unable to get it working.

    20128 TSM:FAIL:DIS
    20138 TSF:TDI:TSL
    30149 TSM:FAIL:RE-INIT
    30159 TSM:INIT
    30174 !TSM:INIT:TSP FAIL
    30184 TSM:FAIL:CNT=4
    

    I found a post about the Arduino Zero, which uses the same chip, as wel as the sensebender gateway.

    I tried using the spi pins (22-23-24), defined soft spi pins and tried using the pins used by sensebender gateway (found in the schematic).

    Also used 2 different radios, used both vbus pin, as wel as bat pin with li-ion battery connected. radio has cap soldered to it and is working on pro mini and nano.

    alexsh1A 1 Reply Last reply
    0
    • R robbie deloose

      Is anyone using a Mini Ultra Pro v3 as a gateway? I have a few of them lying around and I want to use one as a gsm gateway

      I tried getting the nRF24 radio up and running before adding other components, but I seem unable to get it working.

      20128 TSM:FAIL:DIS
      20138 TSF:TDI:TSL
      30149 TSM:FAIL:RE-INIT
      30159 TSM:INIT
      30174 !TSM:INIT:TSP FAIL
      30184 TSM:FAIL:CNT=4
      

      I found a post about the Arduino Zero, which uses the same chip, as wel as the sensebender gateway.

      I tried using the spi pins (22-23-24), defined soft spi pins and tried using the pins used by sensebender gateway (found in the schematic).

      Also used 2 different radios, used both vbus pin, as wel as bat pin with li-ion battery connected. radio has cap soldered to it and is working on pro mini and nano.

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

      @robbie-deloose I have rocketscream mini ultra pro v3, but it has got rfm95 module, which I'd like to use as a gateway. I have not tried to connect it yet. I'll let you know, but I think your problem is soft spi or pins definition.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        robbie deloose
        wrote on last edited by
        #3

        thx! I'm thinking along the same lines, as the chip is in use for the sensebender gateways. I give it another try today, but still no luck.

        schematic for mini ultra: https://github.com/rocketscream/MiniUltraPro/raw/master/MINI-ULTRA-PRO.pdf
        schematic for arduino zero: https://www.arduino.cc/en/uploads/Main/ArduinoZero-schematic.pdf
        schematic for sensebenderGW: https://www.openhardware.io/dl/5691595329c41a296a5d0fd3/design/MysensorsGW.pdf

        I've tried using pins 19,20,21 and 11,12,13

        I tried using softSPI, but this seems to give errors when used on arm:

        Compiling .pioenvs\zeroUSB\src\main.cpp.o
        Compiling .pioenvs\zeroUSB\libf5a\SPI\SPI.cpp.o
        In file included from C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalIO.h:31:0,
        from C:\Users\robbi\.platformio\lib\MySensors_ID548/MySensors.h:341,
        from src\main.cpp:130:
        C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalPin.h:32:25: fatal error: util/atomic.h: No such file or directory
        #include <util/atomic.h>
        ^
        compilation terminated.
        *** [.pioenvs\zeroUSB\src\main.cpp.o] Error 1
        

        compelete code:

        #include "arduino.h"
        /*
         * 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.
         *
         *******************************
         *
         * REVISION HISTORY
         * Version 1.0 - Rait Lotamõis
         *
         * DESCRIPTION
         * The TinyGSM MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker using a GSM modem or optionally an ESP8266 as a WiFi modem.
         * 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 recieved. In inclusion mode will blink fast only on presentation recieved
         * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
         * - ERR (red) - fast blink on error during transmission error or recieve crc error
         */
        
        
        // Enable debug prints to serial monitor
        #define MY_DEBUG
        
        // Enables and select radio type (if attached)
        #define MY_RADIO_RF24
        //#define MY_RADIO_RFM69
        //#define MY_RADIO_RFM95
        #define MY_RF24_CHANNEL 120
        #define MY_RF24_PA_LEVEL RF24_PA_LOW
        
        #define MY_RF24_CE_PIN 5
        #define MY_RF24_CS_PIN 6
        #define MY_SOFTSPI 
        #define MY_SOFT_SPI_SCK_PIN 14
        #define MY_SOFT_SPI_MISO_PIN 16
        #define MY_SOFT_SPI_MOSI_PIN 15
        
        #define MY_GATEWAY_MQTT_CLIENT
        
        // Enable GSM modem support
        #define MY_GATEWAY_TINYGSM
        
        // Define your modem
        #define TINY_GSM_MODEM_SIM800
        // #define TINY_GSM_MODEM_SIM808
        // #define TINY_GSM_MODEM_SIM900
        // #define TINY_GSM_MODEM_A6
        // #define TINY_GSM_MODEM_A7
        // #define TINY_GSM_MODEM_M590
        // #define TINY_GSM_ESP8266
        
        // leave empty anything that does not apply
        #define MY_GSM_APN	"hologram"
        //#define MY_GSM_PIN	"1234"
        #define MY_GSM_USR	""
        //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
        #define MY_GSM_PSW	""
        //#define MY_GSM_SSID ""
        
        // Use Hardware Serial on Mega, Leonardo, Micro
        #define SerialAT Serial1
        // or Software Serial on Uno, Nano
        //#include <SoftwareSerial.h>
        //#define MY_GSM_RX 4
        //#define MY_GSM_TX 5
        
        // If your Mosquitto is old fashioned and does not support 3.1.1
        //#define MQTT_VERSION MQTT_VERSION_3_1
        
        // Set this node's subscribe and publish topic prefix
        #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway2-out"
        #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway2-in"
        
        // Set MQTT client id
        #define MY_MQTT_CLIENT_ID "mygateway2"
        
        // Enable these if your MQTT broker requires username/password
        #define MY_MQTT_USER ""
        #define MY_MQTT_PASSWORD ""
        
        // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
        //#define MY_IP_ADDRESS 192,168,32,220
        
        // If using static ip you can define Gateway and Subnet address as well
        //#define MY_IP_GATEWAY_ADDRESS 192,168,32,1
        //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
        
        // MQTT broker if using URL instead of ip address.
        #define MY_CONTROLLER_URL_ADDRESS "-----"
        
        // The MQTT broker port to to open
        #define MY_PORT ----
        
        /*
        // 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 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 <MySensors.h>
        
        void setup()
        {
        	// Setup locally attached sensors
        }
        
        void presentation()
        {
        	// Present locally attached sensors here
        }
        
        void loop()
        {
        	// Send locally attached sensors data here
        }
        
        alexsh1A 3 Replies Last reply
        0
        • R robbie deloose

          thx! I'm thinking along the same lines, as the chip is in use for the sensebender gateways. I give it another try today, but still no luck.

          schematic for mini ultra: https://github.com/rocketscream/MiniUltraPro/raw/master/MINI-ULTRA-PRO.pdf
          schematic for arduino zero: https://www.arduino.cc/en/uploads/Main/ArduinoZero-schematic.pdf
          schematic for sensebenderGW: https://www.openhardware.io/dl/5691595329c41a296a5d0fd3/design/MysensorsGW.pdf

          I've tried using pins 19,20,21 and 11,12,13

          I tried using softSPI, but this seems to give errors when used on arm:

          Compiling .pioenvs\zeroUSB\src\main.cpp.o
          Compiling .pioenvs\zeroUSB\libf5a\SPI\SPI.cpp.o
          In file included from C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalIO.h:31:0,
          from C:\Users\robbi\.platformio\lib\MySensors_ID548/MySensors.h:341,
          from src\main.cpp:130:
          C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalPin.h:32:25: fatal error: util/atomic.h: No such file or directory
          #include <util/atomic.h>
          ^
          compilation terminated.
          *** [.pioenvs\zeroUSB\src\main.cpp.o] Error 1
          

          compelete code:

          #include "arduino.h"
          /*
           * 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.
           *
           *******************************
           *
           * REVISION HISTORY
           * Version 1.0 - Rait Lotamõis
           *
           * DESCRIPTION
           * The TinyGSM MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker using a GSM modem or optionally an ESP8266 as a WiFi modem.
           * 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 recieved. In inclusion mode will blink fast only on presentation recieved
           * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
           * - ERR (red) - fast blink on error during transmission error or recieve crc error
           */
          
          
          // Enable debug prints to serial monitor
          #define MY_DEBUG
          
          // Enables and select radio type (if attached)
          #define MY_RADIO_RF24
          //#define MY_RADIO_RFM69
          //#define MY_RADIO_RFM95
          #define MY_RF24_CHANNEL 120
          #define MY_RF24_PA_LEVEL RF24_PA_LOW
          
          #define MY_RF24_CE_PIN 5
          #define MY_RF24_CS_PIN 6
          #define MY_SOFTSPI 
          #define MY_SOFT_SPI_SCK_PIN 14
          #define MY_SOFT_SPI_MISO_PIN 16
          #define MY_SOFT_SPI_MOSI_PIN 15
          
          #define MY_GATEWAY_MQTT_CLIENT
          
          // Enable GSM modem support
          #define MY_GATEWAY_TINYGSM
          
          // Define your modem
          #define TINY_GSM_MODEM_SIM800
          // #define TINY_GSM_MODEM_SIM808
          // #define TINY_GSM_MODEM_SIM900
          // #define TINY_GSM_MODEM_A6
          // #define TINY_GSM_MODEM_A7
          // #define TINY_GSM_MODEM_M590
          // #define TINY_GSM_ESP8266
          
          // leave empty anything that does not apply
          #define MY_GSM_APN	"hologram"
          //#define MY_GSM_PIN	"1234"
          #define MY_GSM_USR	""
          //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
          #define MY_GSM_PSW	""
          //#define MY_GSM_SSID ""
          
          // Use Hardware Serial on Mega, Leonardo, Micro
          #define SerialAT Serial1
          // or Software Serial on Uno, Nano
          //#include <SoftwareSerial.h>
          //#define MY_GSM_RX 4
          //#define MY_GSM_TX 5
          
          // If your Mosquitto is old fashioned and does not support 3.1.1
          //#define MQTT_VERSION MQTT_VERSION_3_1
          
          // Set this node's subscribe and publish topic prefix
          #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway2-out"
          #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway2-in"
          
          // Set MQTT client id
          #define MY_MQTT_CLIENT_ID "mygateway2"
          
          // Enable these if your MQTT broker requires username/password
          #define MY_MQTT_USER ""
          #define MY_MQTT_PASSWORD ""
          
          // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
          //#define MY_IP_ADDRESS 192,168,32,220
          
          // If using static ip you can define Gateway and Subnet address as well
          //#define MY_IP_GATEWAY_ADDRESS 192,168,32,1
          //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
          
          // MQTT broker if using URL instead of ip address.
          #define MY_CONTROLLER_URL_ADDRESS "-----"
          
          // The MQTT broker port to to open
          #define MY_PORT ----
          
          /*
          // 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 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 <MySensors.h>
          
          void setup()
          {
          	// Setup locally attached sensors
          }
          
          void presentation()
          {
          	// Present locally attached sensors here
          }
          
          void loop()
          {
          	// Send locally attached sensors data here
          }
          
          alexsh1A Offline
          alexsh1A Offline
          alexsh1
          wrote on last edited by alexsh1
          #4

          @robbie-deloose I cannot compile your sketch under any board. There is a problem somewhere, perhaps MY_PORT and MY_CONTROLLER_URL_ADDRESS are not defined?
          Try to compile and upload this sketch:

          // Enable debug prints to serial monitor
          #define MY_DEBUG
          
          // Enables and select radio type (if attached)
          #define MY_RADIO_NRF24
          #define MY_RF24_CHANNEL 120
          #define MY_RF24_PA_LEVEL RF24_PA_LOW
          
          #define MY_RF24_CE_PIN 5
          #define MY_RF24_CS_PIN 6
          #define MY_SOFTSPI 
          #define MY_SOFT_SPI_SCK_PIN 14
          #define MY_SOFT_SPI_MISO_PIN 16
          #define MY_SOFT_SPI_MOSI_PIN 15
          
          #define MY_GATEWAY_MQTT_CLIENT
          
          // Enable GSM modem support
          #define MY_GATEWAY_TINYGSM
          
          // Define your modem
          #define TINY_GSM_MODEM_SIM800
          // #define TINY_GSM_MODEM_SIM808
          // #define TINY_GSM_MODEM_SIM900
          // #define TINY_GSM_MODEM_A6
          // #define TINY_GSM_MODEM_A7
          // #define TINY_GSM_MODEM_M590
          // #define TINY_GSM_ESP8266
          
          // leave empty anything that does not apply
          #define MY_GSM_APN	"internet"
          //#define MY_GSM_PIN	"1234"
          #define MY_GSM_USR	""
          //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
          #define MY_GSM_PSW	""
          //#define MY_GSM_SSID ""
          
          // Use Hardware Serial on Mega, Leonardo, Micro
          //#define SerialAT Serial1
          // or Software Serial on Uno, Nano
          #include <SoftwareSerial.h>
          #define MY_GSM_RX 4
          #define MY_GSM_TX 5
          
          // If your Mosquitto is old fashioned and does not support 3.1.1
          //#define MQTT_VERSION MQTT_VERSION_3_1
          
          // Set this node's subscribe and publish topic prefix
          #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
          #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
          
          // Set MQTT client id
          #define MY_MQTT_CLIENT_ID "mysensors-1"
          
          // Enable these if your MQTT broker requires usenrame/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 192,168,32,220
          
          // If using static ip you can define Gateway and Subnet address as well
          //#define MY_IP_GATEWAY_ADDRESS 192,168,32,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 "mymqttbroker.com"
          #define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68
          
          // The MQTT broker port to to open
          #define MY_PORT 1883
          
          /*
          // 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 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 <MySensors.h>
          
          void setup()
          {
              // Setup locally attached sensors
          }
          
          void presentation()
          {
              // Present locally attached sensors here
          }
          
          void loop()
          {
              // Send locally attached sensors data here
          }
          

          It does compile for mega2560, but does not for Arduino Zero. There is a problem with

           #include <util/atomic.h>
          

          Please see this -> https://forum.arduino.cc/index.php?topic=371122.0

          1 Reply Last reply
          0
          • R robbie deloose

            thx! I'm thinking along the same lines, as the chip is in use for the sensebender gateways. I give it another try today, but still no luck.

            schematic for mini ultra: https://github.com/rocketscream/MiniUltraPro/raw/master/MINI-ULTRA-PRO.pdf
            schematic for arduino zero: https://www.arduino.cc/en/uploads/Main/ArduinoZero-schematic.pdf
            schematic for sensebenderGW: https://www.openhardware.io/dl/5691595329c41a296a5d0fd3/design/MysensorsGW.pdf

            I've tried using pins 19,20,21 and 11,12,13

            I tried using softSPI, but this seems to give errors when used on arm:

            Compiling .pioenvs\zeroUSB\src\main.cpp.o
            Compiling .pioenvs\zeroUSB\libf5a\SPI\SPI.cpp.o
            In file included from C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalIO.h:31:0,
            from C:\Users\robbi\.platformio\lib\MySensors_ID548/MySensors.h:341,
            from src\main.cpp:130:
            C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalPin.h:32:25: fatal error: util/atomic.h: No such file or directory
            #include <util/atomic.h>
            ^
            compilation terminated.
            *** [.pioenvs\zeroUSB\src\main.cpp.o] Error 1
            

            compelete code:

            #include "arduino.h"
            /*
             * 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.
             *
             *******************************
             *
             * REVISION HISTORY
             * Version 1.0 - Rait Lotamõis
             *
             * DESCRIPTION
             * The TinyGSM MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker using a GSM modem or optionally an ESP8266 as a WiFi modem.
             * 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 recieved. In inclusion mode will blink fast only on presentation recieved
             * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
             * - ERR (red) - fast blink on error during transmission error or recieve crc error
             */
            
            
            // Enable debug prints to serial monitor
            #define MY_DEBUG
            
            // Enables and select radio type (if attached)
            #define MY_RADIO_RF24
            //#define MY_RADIO_RFM69
            //#define MY_RADIO_RFM95
            #define MY_RF24_CHANNEL 120
            #define MY_RF24_PA_LEVEL RF24_PA_LOW
            
            #define MY_RF24_CE_PIN 5
            #define MY_RF24_CS_PIN 6
            #define MY_SOFTSPI 
            #define MY_SOFT_SPI_SCK_PIN 14
            #define MY_SOFT_SPI_MISO_PIN 16
            #define MY_SOFT_SPI_MOSI_PIN 15
            
            #define MY_GATEWAY_MQTT_CLIENT
            
            // Enable GSM modem support
            #define MY_GATEWAY_TINYGSM
            
            // Define your modem
            #define TINY_GSM_MODEM_SIM800
            // #define TINY_GSM_MODEM_SIM808
            // #define TINY_GSM_MODEM_SIM900
            // #define TINY_GSM_MODEM_A6
            // #define TINY_GSM_MODEM_A7
            // #define TINY_GSM_MODEM_M590
            // #define TINY_GSM_ESP8266
            
            // leave empty anything that does not apply
            #define MY_GSM_APN	"hologram"
            //#define MY_GSM_PIN	"1234"
            #define MY_GSM_USR	""
            //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
            #define MY_GSM_PSW	""
            //#define MY_GSM_SSID ""
            
            // Use Hardware Serial on Mega, Leonardo, Micro
            #define SerialAT Serial1
            // or Software Serial on Uno, Nano
            //#include <SoftwareSerial.h>
            //#define MY_GSM_RX 4
            //#define MY_GSM_TX 5
            
            // If your Mosquitto is old fashioned and does not support 3.1.1
            //#define MQTT_VERSION MQTT_VERSION_3_1
            
            // Set this node's subscribe and publish topic prefix
            #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway2-out"
            #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway2-in"
            
            // Set MQTT client id
            #define MY_MQTT_CLIENT_ID "mygateway2"
            
            // Enable these if your MQTT broker requires username/password
            #define MY_MQTT_USER ""
            #define MY_MQTT_PASSWORD ""
            
            // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
            //#define MY_IP_ADDRESS 192,168,32,220
            
            // If using static ip you can define Gateway and Subnet address as well
            //#define MY_IP_GATEWAY_ADDRESS 192,168,32,1
            //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
            
            // MQTT broker if using URL instead of ip address.
            #define MY_CONTROLLER_URL_ADDRESS "-----"
            
            // The MQTT broker port to to open
            #define MY_PORT ----
            
            /*
            // 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 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 <MySensors.h>
            
            void setup()
            {
            	// Setup locally attached sensors
            }
            
            void presentation()
            {
            	// Present locally attached sensors here
            }
            
            void loop()
            {
            	// Send locally attached sensors data here
            }
            
            alexsh1A Offline
            alexsh1A Offline
            alexsh1
            wrote on last edited by alexsh1
            #5

            @robbie-deloose For whatever season, the compiler does not see the following directory:

            C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\util
            

            Very strange. @hek - any ideas please?
            I am talking about this

            ...Arduino\libraries\MySensors/drivers/AVR/DigitalIO/DigitalPin.h
            
            

            There are several references to atomic.h, but the above location cannot be seen.

            1 Reply Last reply
            0
            • R robbie deloose

              thx! I'm thinking along the same lines, as the chip is in use for the sensebender gateways. I give it another try today, but still no luck.

              schematic for mini ultra: https://github.com/rocketscream/MiniUltraPro/raw/master/MINI-ULTRA-PRO.pdf
              schematic for arduino zero: https://www.arduino.cc/en/uploads/Main/ArduinoZero-schematic.pdf
              schematic for sensebenderGW: https://www.openhardware.io/dl/5691595329c41a296a5d0fd3/design/MysensorsGW.pdf

              I've tried using pins 19,20,21 and 11,12,13

              I tried using softSPI, but this seems to give errors when used on arm:

              Compiling .pioenvs\zeroUSB\src\main.cpp.o
              Compiling .pioenvs\zeroUSB\libf5a\SPI\SPI.cpp.o
              In file included from C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalIO.h:31:0,
              from C:\Users\robbi\.platformio\lib\MySensors_ID548/MySensors.h:341,
              from src\main.cpp:130:
              C:\Users\robbi\.platformio\lib\MySensors_ID548/hal/architecture/AVR/drivers/DigitalIO/DigitalPin.h:32:25: fatal error: util/atomic.h: No such file or directory
              #include <util/atomic.h>
              ^
              compilation terminated.
              *** [.pioenvs\zeroUSB\src\main.cpp.o] Error 1
              

              compelete code:

              #include "arduino.h"
              /*
               * 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.
               *
               *******************************
               *
               * REVISION HISTORY
               * Version 1.0 - Rait Lotamõis
               *
               * DESCRIPTION
               * The TinyGSM MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker using a GSM modem or optionally an ESP8266 as a WiFi modem.
               * 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 recieved. In inclusion mode will blink fast only on presentation recieved
               * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
               * - ERR (red) - fast blink on error during transmission error or recieve crc error
               */
              
              
              // Enable debug prints to serial monitor
              #define MY_DEBUG
              
              // Enables and select radio type (if attached)
              #define MY_RADIO_RF24
              //#define MY_RADIO_RFM69
              //#define MY_RADIO_RFM95
              #define MY_RF24_CHANNEL 120
              #define MY_RF24_PA_LEVEL RF24_PA_LOW
              
              #define MY_RF24_CE_PIN 5
              #define MY_RF24_CS_PIN 6
              #define MY_SOFTSPI 
              #define MY_SOFT_SPI_SCK_PIN 14
              #define MY_SOFT_SPI_MISO_PIN 16
              #define MY_SOFT_SPI_MOSI_PIN 15
              
              #define MY_GATEWAY_MQTT_CLIENT
              
              // Enable GSM modem support
              #define MY_GATEWAY_TINYGSM
              
              // Define your modem
              #define TINY_GSM_MODEM_SIM800
              // #define TINY_GSM_MODEM_SIM808
              // #define TINY_GSM_MODEM_SIM900
              // #define TINY_GSM_MODEM_A6
              // #define TINY_GSM_MODEM_A7
              // #define TINY_GSM_MODEM_M590
              // #define TINY_GSM_ESP8266
              
              // leave empty anything that does not apply
              #define MY_GSM_APN	"hologram"
              //#define MY_GSM_PIN	"1234"
              #define MY_GSM_USR	""
              //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
              #define MY_GSM_PSW	""
              //#define MY_GSM_SSID ""
              
              // Use Hardware Serial on Mega, Leonardo, Micro
              #define SerialAT Serial1
              // or Software Serial on Uno, Nano
              //#include <SoftwareSerial.h>
              //#define MY_GSM_RX 4
              //#define MY_GSM_TX 5
              
              // If your Mosquitto is old fashioned and does not support 3.1.1
              //#define MQTT_VERSION MQTT_VERSION_3_1
              
              // Set this node's subscribe and publish topic prefix
              #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway2-out"
              #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway2-in"
              
              // Set MQTT client id
              #define MY_MQTT_CLIENT_ID "mygateway2"
              
              // Enable these if your MQTT broker requires username/password
              #define MY_MQTT_USER ""
              #define MY_MQTT_PASSWORD ""
              
              // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
              //#define MY_IP_ADDRESS 192,168,32,220
              
              // If using static ip you can define Gateway and Subnet address as well
              //#define MY_IP_GATEWAY_ADDRESS 192,168,32,1
              //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
              
              // MQTT broker if using URL instead of ip address.
              #define MY_CONTROLLER_URL_ADDRESS "-----"
              
              // The MQTT broker port to to open
              #define MY_PORT ----
              
              /*
              // 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 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 <MySensors.h>
              
              void setup()
              {
              	// Setup locally attached sensors
              }
              
              void presentation()
              {
              	// Present locally attached sensors here
              }
              
              void loop()
              {
              	// Send locally attached sensors data here
              }
              
              alexsh1A Offline
              alexsh1A Offline
              alexsh1
              wrote on last edited by
              #6

              @robbie-deloose OK, success! I did not notice it, but before you define softSPI in SAMD, you have to have a line

              #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
              

              Otherwise, it does not compile.

              This sketch works fine for Arduino Zero (Native USB port):

              /**
               * 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 - Rait Lotamõis
               *
               * DESCRIPTION
               * The TinyGSM MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker using a GSM modem or optionally an ESP8266 as a WiFi modem.
               * 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 recieved. In inclusion mode will blink fast only on presentation recieved
               * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
               * - ERR (red) - fast blink on error during transmission error or recieve crc error
               */
              
              
              // Enable debug prints to serial monitor
              #define MY_DEBUG
              
              // Enables and select radio type (if attached)
              #define MY_RADIO_NRF24
              #define MY_RF24_CHANNEL 120
              #define MY_RF24_PA_LEVEL RF24_PA_LOW
              
              #define MY_RF24_CE_PIN 5
              #define MY_RF24_CS_PIN 6
              #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
              
              #define MY_GATEWAY_MQTT_CLIENT
              
              // Enable GSM modem support
              #define MY_GATEWAY_TINYGSM
              
              // Define your modem
              #define TINY_GSM_MODEM_SIM800
              // #define TINY_GSM_MODEM_SIM808
              // #define TINY_GSM_MODEM_SIM900
              // #define TINY_GSM_MODEM_A6
              // #define TINY_GSM_MODEM_A7
              // #define TINY_GSM_MODEM_M590
              // #define TINY_GSM_ESP8266
              
              // leave empty anything that does not apply
              #define MY_GSM_APN	"internet"
              //#define MY_GSM_PIN	"1234"
              #define MY_GSM_USR	""
              //If using a GSM modem, this stands for your GSM connection password. If using WiFi, it's your wireless password.
              #define MY_GSM_PSW	""
              //#define MY_GSM_SSID ""
              
              // Use Hardware Serial on Mega, Leonardo, Micro
              #define SerialAT Serial1
              // or Software Serial on Uno, Nano
              //#include <SoftwareSerial.h>
              //#define MY_GSM_RX 4
              //#define MY_GSM_TX 5
              
              // If your Mosquitto is old fashioned and does not support 3.1.1
              //#define MQTT_VERSION MQTT_VERSION_3_1
              
              // Set this node's subscribe and publish topic prefix
              #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
              #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
              
              // Set MQTT client id
              #define MY_MQTT_CLIENT_ID "mysensors-1"
              
              // Enable these if your MQTT broker requires usenrame/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 192,168,32,220
              
              // If using static ip you can define Gateway and Subnet address as well
              //#define MY_IP_GATEWAY_ADDRESS 192,168,32,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 "mymqttbroker.com"
              #define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68
              
              // The MQTT broker port to to open
              #define MY_PORT 1883
              
              /*
              // 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 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 <MySensors.h>
              
              void setup()
              {
                  // Setup locally attached sensors
              }
              
              void presentation()
              {
                  // Present locally attached sensors here
              }
              
              void loop()
              {
                  // Send locally attached sensors data here
              }
              
              1 Reply Last reply
              0
              • R Offline
                R Offline
                robbie deloose
                wrote on last edited by
                #7

                @alexsh1 , Thx for checking!
                Code does compile, but i'm still getting

                !TSM:INIT:TSP FAIL
                

                Tried different pins as well, but no luck. Did you managed to get the radio to initialise?

                alexsh1A 2 Replies Last reply
                0
                • R robbie deloose

                  @alexsh1 , Thx for checking!
                  Code does compile, but i'm still getting

                  !TSM:INIT:TSP FAIL
                  

                  Tried different pins as well, but no luck. Did you managed to get the radio to initialise?

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

                  @robbie-deloose Most likely you have a wiring or pin number issue.
                  I have RFM95 hooked up to Mini Ultra Pro V3 and use the following setting:

                  #define MY_RADIO_RFM95
                  #define MY_DEBUG_VERBOSE_RFM95
                  #define MY_RFM95_FREQUENCY RFM95_868MHZ
                  #define MY_RFM95_CS_PIN 5
                  #define MY_RFM95_ATC_MODE_DISABLED
                  #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
                  #define MY_SOFTSPI
                  #define MY_SOFT_SPI_SCK_PIN 24
                  #define MY_SOFT_SPI_MISO_PIN 22
                  #define MY_SOFT_SPI_MOSI_PIN 23
                  #endif
                  

                  It works like a charm. And this is from my log:

                  0;255;3;0;9;20890 MCO:BGN:INIT GW,CP=RLNGS---,VER=2.3.0
                  0;255;3;0;9;20900 TSF:LRT:OK
                  0;255;3;0;9;20910 TSM:INIT
                  0;255;3;0;9;20920 TSF:WUR:MS=0
                  0;255;3;0;9;20930 RFM95:INIT
                  0;255;3;0;9;20940 RFM95:INIT:PIN,CS=5,IQP=2,IQN=2
                  0;255;3;0;9;20960 RFM95:PTX:LEVEL=13
                  0;255;3;0;9;20970 TSM:INIT:TSP OK
                  0;255;3;0;9;20980 TSM:INIT:GW MODE
                  0;255;3;0;9;20990 TSM:READY:ID=0,PAR=0,DIS=0
                  0;255;3;0;9;21000 MCO:REG:NOT NEEDED
                  0;255;3;0;14;Gateway startup complete.
                  0;255;0;0;18;2.3.0
                  0;255;3;0;9;21010 MCO:BGN:STP
                  0;255;3;0;9;21020 MCO:BGN:INIT OK,TSP=1
                  
                  1 Reply Last reply
                  0
                  • R robbie deloose

                    @alexsh1 , Thx for checking!
                    Code does compile, but i'm still getting

                    !TSM:INIT:TSP FAIL
                    

                    Tried different pins as well, but no luck. Did you managed to get the radio to initialise?

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

                    @robbie-deloose BTW, it works even with the following minimum settings:

                    #define MY_RADIO_RFM95
                    #define MY_RFM95_FREQUENCY RFM95_868MHZ
                    #define MY_RFM95_CS_PIN 5
                    

                    given that SCK, MOSI, MISO are wired to standard pins for ATSAMD21

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      robbie deloose
                      wrote on last edited by
                      #10

                      @alexsh1 I've put this aside for a few days to clear my head. Changed to another breadboard started froms cratch and reconnected all the wiring. Now it does works! probably a bad connection or a miswiring.

                      Thx for the help!

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


                      21

                      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