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
kduinoK

kduino

@kduino
About
Posts
40
Topics
6
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    I'll try this as soon as possible. Although the ip network connection doesn't seem to be the issue since ip dedication is without problem.

    Troubleshooting

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    What I have to mention: The setting was running great as a Serial Gateway config. But when I changed to ethernet gateway I was not able to restore this condition together with the W5100 shield. Moreover I don't know if the pin4 is making some trouble. As far as I know its used for writing to the sd card (which I don't use...).

    Troubleshooting

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    This is what is coming out of the gateway debug:

     MCO:BGN:INIT GW,CP=RNNGAS--,VER=2.3.0
    53 TSM:INIT
    54 TSF:WUR:MS=0
    55 RF24:INIT
    56 RF24:INIT:PIN,CE=5,CS=6
    59 RF24:WBR:REG=0,VAL=14
    66 RF24:WBR:REG=3,VAL=3
    68 RF24:WBR:REG=4,VAL=95
    70 RF24:WBR:REG=5,VAL=76
    72 RF24:WBR:REG=6,VAL=37
    74 RF24:WBR:REG=16,VAL=115
    77 RF24:WBR:REG=29,VAL=4
    79 RF24:RBR:REG=6,VAL=37
    81 RF24:RBR:REG=5,VAL=76
    83 RF24:WBR:REG=2,VAL=2
    87 RF24:WBR:REG=1,VAL=0
    89 RF24:WBR:REG=28,VAL=3
    91 RF24:FRX
    92 RF24:FTX
    93 RF24:WBR:REG=7,VAL=112
    96 TSM:INIT:TSP OK
    97 TSM:INIT:GW MODE
    99 RF24:WBR:REG=2,VAL=3
    101 RF24:WBR:REG=1,VAL=1
    103 RF24:STL
    105 RF24:WBR:REG=0,VAL=15
    107 RF24:WBR:REG=10,VAL=0
    109 TSM:READY:ID=0,PAR=0,DIS=0
    112 MCO:REG:NOT NEEDED
    114 RF24:RBR:REG=23,VAL=17
    16766 GWT:TIN:IP=192.168.178.XYZ
    17769 MCO:BGN:STP
    17771 RF24:RBR:REG=6,VAL=37
    17774 RF24:RBR:REG=5,VAL=76
    17776 MCO:BGN:INIT OK,TSP=1
    17779 RF24:RBR:REG=23,VAL=17
    17782 RF24:RBR:REG=23,VAL=17
    17784 RF24:RBR:REG=23,VAL=17
    17787 RF24:RBR:REG=23,VAL=17
    

    Last line is repeating for ever

    Just to be sure I insert the gateway code again:

    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_RF24
    //#define MY_RADIO_NRF5_ESB
    //#define MY_RADIO_RFM69
    //#define MY_RADIO_RFM95
    
    // 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
    #define MY_RF24_CE_PIN 5
    #define MY_RF24_CS_PIN 6
    #endif
    
    
    
    // When W5100 is connected we have to move CE/CSN pins for NRF radio
    
    // 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,178,66
    
    // If using static ip you can define Gateway and Subnet address as well
    //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
    //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
    
    // Renewal period if using DHCP
    //#define MY_IP_RENEWAL_INTERVAL 60000
    
    // 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, 46
    
    // 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>
    
    // Singing issues:
    #define MY_SIGNING_SOFT
    #define MY_SIGNING_SOFT_RANDOMSEED_PIN A5
    //#define MY_SIGNING_REQUEST_SIGNATURES
    
    #define MY_DEBUG_VERBOSE_RF24
    
    #include <MySensors.h>
    
    void setup()
    {
        // Setup locally attached sensors
    }
    
    void presentation()
    {
        // Present locally attached sensors here
    }
    
    void loop()
    {
        // Send locally attached sensors data here
    }
    
    Troubleshooting

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    Wow cool, so the hardware is basically running, but for some reason, the gateway doesn't accept the message.
    I'll double-check the signing algorithm (perhaps I comment it to see, if there are arriving unsigned messages) and I will post the result.
    Strange thing. Thank you very much!
    I'll do this tonight.

    Troubleshooting

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    Hi, I've cut present, setup and loop not to waist to much space. I edit and add them too...
    Unfortunately as you can see, the gateway is not receiving anything and therefore not answering the node.
    I will test with different hardware now, if there is something weird.

    Troubleshooting

  • Arduino Uno with Ethernet Shield W5100 not working
    kduinoK kduino

    Hi,

    I have trouble with my ethernet shield.
    I tried different methods and there where different publications on how to connect, but in the end I was not able to get it running.
    I tried: CE and CS pin on 6 and 5 with and without changing MISO/MOSI/SCK to A0 to A2, but the best result I got was an error free start of the gateway but not receiving any data from nodes so far (connection to ip network seems to be fine, at least the ip is declared via dhcp). The same setting was doing great without ethernet shield. Tried it also on a Mega but without success...
    To sort out the power issue I put an extra 3.3 power regulator together with a big 470 microF capacitor which should do the trick.
    Any ideas? I will post the exact wirings in a few minutes.

    If you have one working in this setting, can you send me the exact sketch together with the wiring information?

    Thank you!

    Here are the details:
    Gateway Debug Print:

    0 MCO:BGN:INIT GW,CP=RNNGAS--,VER=2.3.0
    48 TSM:INIT
    49 TSF:WUR:MS=0
    56 TSM:INIT:TSP OK
    58 TSM:INIT:GW MODE
    60 TSM:READY:ID=0,PAR=0,DIS=0
    62 MCO:REG:NOT NEEDED
    8695 GWT:TIN:IP=192.168.178.45
    9698 MCO:BGN:STP
    9700 MCO:BGN:INIT OK,TSP=1
    

    Gateway code:

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_RF24
    //#define MY_RADIO_NRF5_ESB
    //#define MY_RADIO_RFM69
    //#define MY_RADIO_RFM95
    
    // 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)
    
    #endif
    
    #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_RF24_CE_PIN 5
    #define MY_RF24_CS_PIN 6
    
    // When W5100 is connected we have to move CE/CSN pins for NRF radio
    
    // 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,178,66
    
    // If using static ip you can define Gateway and Subnet address as well
    //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
    //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
    
    // Renewal period if using DHCP
    //#define MY_IP_RENEWAL_INTERVAL 60000
    
    // 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, XYZ
    
    // 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>
    
    // Singing issues:
    #define MY_SIGNING_SOFT
    #define MY_SIGNING_SOFT_RANDOMSEED_PIN A5
    #define MY_SIGNING_REQUEST_SIGNATURES
    
    #include <MySensors.h>
    
    
    void setup()
    {
    	// Setup locally attached sensors
    }
    
    void presentation()
    {
    	// Present locally attached sensors here
    }
    
    void loop()
    {
    	// Send locally attached sensors data here
    }
    
    
    

    Gateway Wiring:
    GatewayArduinoUno - nRF24L01
    A2 - MISO
    A1 - MOSI
    A0 - SCK
    6 - CSN/NSS
    5 - CE

    Node:
    Node Debug Print:

     __  __       ____
    |  \/  |_   _/ ___|  ___ _ __  ___  ___  _ __ ___
    | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __|
    | |  | | |_| |___| |  __/ | | \__ \  _  | |  \__ \
    |_|  |_|\__, |____/ \___|_| |_|___/\___/|_|  |___/
            |___/                      2.3.0
    
    16 MCO:BGN:INIT NODE,CP=RNNNAS--,VER=2.3.0
    73 TSM:INIT
    74 TSF:WUR:MS=0
    81 TSM:INIT:TSP OK
    83 TSM:INIT:STATID=10
    86 TSF:SID:OK,ID=10
    87 TSM:FPAR
    123 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    2131 !TSM:FPAR:NO REPLY
    2134 TSM:FPAR
    2169 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    4178 !TSM:FPAR:NO REPLY
    4180 TSM:FPAR
    4216 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    6225 !TSM:FPAR:NO REPLY
    6227 TSM:FPAR
    6263 TSF:MSG:SEND,10-10-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
    8271 !TSM:FPAR:FAIL
    8272 TSM:FAIL:CNT=1
    8274 TSM:FAIL:DIS
    8276 TSF:TDI:TSL
    

    Node Code:

    
    // 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
    
    
    // Singing issues:
    #define MY_SIGNING_SOFT
    #define MY_SIGNING_SOFT_RANDOMSEED_PIN A2
    //#define MY_SIGNING_REQUEST_SIGNATURES
    
    
    #include <MySensors.h>
    
    
    #define SKETCH_NAME "Binary Sensor"
    #define SKETCH_MAJOR_VER "1"
    #define SKETCH_MINOR_VER "0"
    
    #define PRIMARY_CHILD_ID 3
    #define SECONDARY_CHILD_ID 4
    
    #define PRIMARY_BUTTON_PIN 2   // Arduino Digital I/O pin for button/reed switch
    #define SECONDARY_BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch
    
    #if (PRIMARY_BUTTON_PIN < 2 || PRIMARY_BUTTON_PIN > 3)
    #error PRIMARY_BUTTON_PIN must be either 2 or 3 for interrupts to work
    #endif
    #if (SECONDARY_BUTTON_PIN < 2 || SECONDARY_BUTTON_PIN > 3)
    #error SECONDARY_BUTTON_PIN must be either 2 or 3 for interrupts to work
    #endif
    #if (PRIMARY_BUTTON_PIN == SECONDARY_BUTTON_PIN)
    #error PRIMARY_BUTTON_PIN and BUTTON_PIN2 cannot be the same
    #endif
    #if (PRIMARY_CHILD_ID == SECONDARY_CHILD_ID)
    #error PRIMARY_CHILD_ID and SECONDARY_CHILD_ID cannot be the same
    #endif
    
    
    // Change to V_LIGHT if you use S_LIGHT in presentation below
    MyMessage msg(PRIMARY_CHILD_ID, V_TRIPPED);
    MyMessage msg2(SECONDARY_CHILD_ID, V_TRIPPED);
    
    void setup()
    {
    	// Setup the buttons
    	pinMode(PRIMARY_BUTTON_PIN, INPUT_PULLUP);
    	pinMode(SECONDARY_BUTTON_PIN, INPUT_PULLUP);
    }
    
    void presentation()
    {
    	// Send the sketch version information to the gateway and Controller
    	sendSketchInfo(SKETCH_NAME, SKETCH_MAJOR_VER "." SKETCH_MINOR_VER);
    
    	// Register binary input sensor to sensor_node (they will be created as child devices)
    	// You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage.
    	// If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
    	present(PRIMARY_CHILD_ID, S_DOOR);
    	present(SECONDARY_CHILD_ID, S_DOOR);
    }
    
    // Loop will iterate on changes on the BUTTON_PINs
    void loop()
    {
    	uint8_t value1, value2;
    	static uint8_t sentValue=2;
    	static uint8_t sentValue2=2;
    
    	// Short delay to allow buttons to properly settle
    	sleep(5);
    
    	value1 = digitalRead(PRIMARY_BUTTON_PIN);
    
    	if (value1 != sentValue) {
    		// Value has changed from last transmission, send the updated value
    		send(msg.set(value1==HIGH));
    		sentValue = value1;
        Serial.print("Sensor1: "); Serial.println(value1);
    	}
    
    	value2 = digitalRead(SECONDARY_BUTTON_PIN);
    
    	if (value2 != sentValue2) {
    		// Value has changed from last transmission, send the updated value
    		send(msg2.set(value2==HIGH));
    		sentValue2 = value2;
        Serial.print("Sensor2: "); Serial.println(value2);
    	}
    
    	// Sleep until something happens with the sensor
    	sleep(PRIMARY_BUTTON_PIN-2, CHANGE, SECONDARY_BUTTON_PIN-3, CHANGE, 0);
    }
    
    

    Node Wiring:
    Arduino Nano Breakout Board with Connector (was working fine before).

    Troubleshooting

  • installing node-red and node-red-contrib-mysensors
    kduinoK kduino

    Hi,
    I was wondering if I could use the node red flows to attach mysensors to loxone. But I failed already in the first step: I don't get the my sensors software imported in node red.
    Although I find the "Import" option in the UI, there is only little space and no specific name under library to depict what to import. So the left options are only clipboard and examples.
    Could one of you experienced guys give me short push where i have to copy the files of the node-red-contrib-mysensors-master folder?
    Thank you so much kd

    Node-RED

  • esp8266 for wired solutions
    kduinoK kduino

    thank you for the important hint.
    Unfortunately it didn't solve the failure message. For my understanding the altsoftserial shouldn't be called since MY_RS485_ESPSERIAL is defined.

    My code looks like this:

    // ESP Software Serial
    #include <SoftwareSerialESP.h>
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    // Enable RS485 transport layer
    #define MY_RS485
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 2
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    SoftwareSerial swESP(14, 12, false, 256); 
    #define MY_RS485_ESPSERIAL swESP
    #include <MySensors.h>
    

    My error message looks like this:

    In file included from /Documents/Arduino/libraries/MySensors-development/MySensors.h:311:0,
                     from /Users/macmuc/Documents/Arduino/MotionSensorESP_RS485/MotionSensorESP_RS485.ino:78:
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:93:1: error: 'AltSoftSerial' does not name a type
     AltSoftSerial _dev;
     ^
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp: In function 'bool _serialProcess()':
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:132:7: error: '_dev' was not declared in this scope
      if (!_dev.available()) {
           ^
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:136:8: error: '_dev' was not declared in this scope
      while(_dev.available()) {
            ^
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp: In function 'bool transportSend(uint8_t, const void*, uint8_t, bool)':
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:270:3: error: '_dev' was not declared in this scope
       _dev.write(SOH);
       ^
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:272:2: error: '_dev' was not declared in this scope
      _dev.write(to);  // Destination address
      ^
    In file included from /Documents/Arduino/libraries/MySensors-development/MySensors.h:311:0,
                     from /Documents/Arduino/MotionSensorESP_RS485/MotionSensorESP_RS485.ino:78:
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp: In function 'bool transportInit()':
    /Documents/Arduino/libraries/MySensors-development/hal/transport/MyTransportRS485.cpp:320:2: error: '_dev' was not declared in this scope
      _dev.begin(MY_RS485_BAUD_RATE);
      ^
    exit status 1
    

    Thank you for your opinion!

    Development

  • esp8266 for wired solutions
    kduinoK kduino

    Hi,
    I am just wondering, if it would be possible to use the esp8266 chip for wired projects with RS485. My intention is to use the form factor as well as power and mem space for small projects. Furthermore it would be possible to start the ESP with wlan connection for possible OTA update.
    Because of the different softwareSerials tried to include the settings for ESP, but was not successful.
    Please have a look. Do you see any problem in the following sketch files?

    1. MyTransportRS485.cpp:
    #if defined(MY_RS485_SWSERIAL)
    SoftwareSerial& _dev = MY_RS485_SWSERIAL;
    #elif defined(MY_RS485_ESPSERIAL)
    SoftwareSerialESP& _dev = MY_RS485_ESPSERIAL;
    #elif defined(__linux__)
    SerialPort _dev = SerialPort(MY_RS485_HWSERIAL);
    #elif defined(MY_RS485_HWSERIAL)
    HardwareSerial& _dev = MY_RS485_HWSERIAL;
    #else
    AltSoftSerial _dev;
    #endif
    
    1. MotionSensorESP sample:
    // ESP Software Serial
    #include <SoftwareSerialESP.h>
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 2
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // Enable this if RS485 is connected to a hardware serial port
    //#define MY_RS485_HWSERIAL Serial1
    //#define MY_RS485_ESPSERIAL
    #include <MySensors.h>
    SoftwareSerial swESP(14, 12, false, 256); 
    #define MY_RS485_ESPSERIAL swESP
    

    Now what is the output? The serial monitor tells me:

    In file included from /Documents/Arduino/libraries/MySensors-development/drivers/AltSoftSerial/AltSoftSerial.cpp:32:0,
                     from /Documents/Arduino/libraries/MySensors-development/MySensors.h:309,
                     from /Documents/Arduino/MotionSensorESP_RS485/MotionSensorESP_RS485.ino:74:
    /Documents/Arduino/libraries/MySensors-development/drivers/AltSoftSerial/config/AltSoftSerial_Boards.h:136:2: error: #error "Please define your board timer and pins"
     #error "Please define your board timer and pins"
      ^
    exit status 1
    

    Unfortunately I dont know where the AltSoftSerial is chosen. It is not included because of my definitions (as you can see above). So if it is not used, why I need to define boards? Any idea?
    Thanks for your help!

    Development

  • RS485 to Ethernet Gateway
    kduinoK kduino

    Hi,
    after getting the prototypes working (I dont know why but the ready to use bricks of max485 are not working, the bare ones do) I like to attach the gateway via ethernet to my controller. I am using the Arduino Ethernet Shield v1 from HanRun HR911105A 16/02.
    Unfortunately I dont get any ethernet connection.
    This is how I modified my code. Any ideas what went wrong?

    Appreciate any suggestions...

    Thanks kduino

    // 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
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN A8
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // Enable this if RS485 is connected to a hardware serial port
    #define MY_RS485_HWSERIAL Serial1
    
    // 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, 178, 45
    
    // If using static ip you can define Gateway and Subnet address as well
    //#define MY_IP_GATEWAY_ADDRESS 192,168,178,1
    //#define MY_IP_SUBNET_ADDRESS 255,255,255,0
    
    // Renewal period if using DHCP
    #define MY_IP_RENEWAL_INTERVAL 60000
    
    // 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, 91
    
    // 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 Ardunio examples use  "DEAD BEEF FEED" for the MAC address.
    #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xFE
    
    // 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>
    
    
    Development

  • How to use SoftwareSerial Library?
    kduinoK kduino

    Hi PJR,
    now it is working with this code in the MyTransportRS485 without any changes on MySensors.h:

    #if defined(MY_RS485_SWSERIAL)
    SoftwareSerial& _dev = MY_RS485_SWSERIAL;
    #elif defined(__linux__)
    SerialPort _dev = SerialPort(MY_RS485_HWSERIAL);
    #elif defined(MY_RS485_HWSERIAL)
    HardwareSerial& _dev = MY_RS485_HWSERIAL;
    #else
    AltSoftSerial _dev;
    #endif
    

    As far as I can interpret the peace of code, the
    #include "hal/transport/MyTransportRS485.cpp"
    is active as soon as the MY_RS485 layer is defined.

    This is a great step, I can use all my nodes from now on!
    Thank you very much for your support!
    By Kduino

    Development softwareserial rs485 arduino nano

  • How to use SoftwareSerial Library?
    kduinoK kduino

    Hi PJR,
    thanks a lot! This is obvious. Please apologize that I didn't take a look at this site. So the MyTransportRS485.cpp is loaded only in case of defining MY_HWSERIAL... This explains why it was not working after skipping the MY_HWSERIAL definition.
    Unfortunately I was not able to run another test now but I hope it will come up soon.
    The changes regarding softwareSerial would be a great help for those who are not able to use the altSoftSerial pins.
    Once it is running stable I will post a request @hek to ask for implementation.
    I will come back with more tests.
    By kduino

    PS: It seams that during compilation it loads also the AltSoftSerial.cpp. In case of use of the SoftwareSerial it would be unnecessary overhead, of course. Is there a reason why it is loaded at this stage? I would rather load it at MyTransportXYZ.cpp.

    Development softwareserial rs485 arduino nano

  • How to use SoftwareSerial Library?
    kduinoK kduino

    I did it like this:

    #if defined(__linux__)
    SerialPort _dev = SerialPort(MY_RS485_HWSERIAL);
    #elif defined(MY_RS485_SWSERIAL)
    SoftwareSerial& _dev = MY_RS485_SWSERIAL;
    #elif defined(MY_RS485_HWSERIAL)
    HardwareSerial& _dev = MY_RS485_HWSERIAL;
    #else
    AltSoftSerial _dev;
    #endif
    

    The Arduino code is extended by:

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 3
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // Enable this if RS485 is connected to a hardware serial port
    //#define MY_RS485_HWSERIAL Serial1
    
    // Enable this if RS485 is connected to Software Serial port:
    #include <SoftwareSerial.h>
    SoftwareSerial softSerial(4, 2); //rx, tx
    #define MY_RS485_SWSERIAL softSerial
    
    #include <MySensors.h>
    
    Development softwareserial rs485 arduino nano

  • How to use SoftwareSerial Library?
    kduinoK kduino

    Hi PJR,
    would you mind explaining me the reason for defining MY_RS485_HWSERIAL?
    Thank you,
    by kduino

    Development softwareserial rs485 arduino nano

  • How to use SoftwareSerial Library?
    kduinoK kduino

    HI PJR,
    thank you very much for your reply. I did as you suggested but were not able to test during the last days.
    Today I wired it up and it worked. Unfortunately updating some sensor code it is currently not working but as soon as possible I will post the whole sketch together with the adapted MyTransportRS485.ccp.

    By kduino

    Development softwareserial rs485 arduino nano

  • How to use SoftwareSerial Library?
    kduinoK kduino

    Hi,
    I think I got to the specific part of code:

    From Github MySensors/hal/transport/MyTransportRS485.cpp
    https://github.com/mysensors/MySensors/blob/development/hal/transport/MyTransportRS485.cpp#L88

    #if defined(__linux__)
    SerialPort _dev = SerialPort(MY_RS485_HWSERIAL);
    #elif defined(MY_RS485_HWSERIAL)
    HardwareSerial& _dev = MY_RS485_HWSERIAL;
    #else
    AltSoftSerial _dev;
    #endif
    

    But unfortunately I am not able to change it to the softwareSerial option. How would the code look like if I would make an additional if for the softwareSerial?
    Help is very appreciated.

    By, kduino

    Development softwareserial rs485 arduino nano

  • RS485 network not running... please help!
    kduinoK kduino

    Hi Kisse66,

    thank you very much for this advice. Most of the forum writers are pointing on the terminating resistors, but in my experience they are not the key.
    I put two 680R from B to GND and A to 5V and the reliability I experienced has improved tremendously!
    Thank you for the hint.

    Another question I have: The gateway is receiving the messages now but there is no ACK. How can I ask for an ack for security relevant messages?

    Thank you
    By kduino

    Troubleshooting

  • RS485 Gateway on Raspberry Pi
    kduinoK kduino

    Hi,
    @admins
    an advice about the MY_NODE_ID in the how to for the rs485 section would be helpful. I think, there are at least the double of the people trying for hours until they give up. Only some of them take the efforts to register and login here to get useful information...
    By kduino

    Development

  • RS485 network not running... please help!
    kduinoK kduino

    @hek
    I used some time to get further. As my tests show I can easily use the Arduino nano on pin 8 and 9, but the strategy of using SoftwareSerial you mentioned is not working.
    See what I did below. The problem is now as follows:
    If I state the HW_SERIAL command before the inclusion of mysensors.h the hardware serial is somehow not initialized and therefore throws an error on compilation. Only hardware serial ports are allowed.
    If I state the HW_SERIAL command after the inclusion of mysensors.h the inlcusion has no effect, thus the defined pins are not rx and tx.
    Do you know any advice for that?

    Thank you so much for your support!

    By kduino

    Part of my ino file:

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 3
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // node Id:
    #define MY_NODE_ID 5
    
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(4, 2); // RX, TX
    
    #include <MySensors.h>
    #include <Bounce2.h>
    
    // Enable this if RS485 is connected to a hardware serial port
    #define MY_RS485_HWSERIAL mySerial
    
    unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds)
    

    Part of the error:
    This line is marked yellow:
    #define MY_RS485_HWSERIAL mySerial
    Error description:

    MySTestSensorRS485_working__2017-06-20_vRS485_1:68: error: invalid initialization of reference of type 'HardwareSerial&' from expression of type 'SoftwareSerial'
     #define MY_RS485_HWSERIAL mySerial
                               ^
    /Users/macmuc/Documents/Arduino/libraries/MySensors-master/core/MyTransportRS485.cpp:97:24: note: in expansion of macro 'MY_RS485_HWSERIAL'
     HardwareSerial& _dev = MY_RS485_HWSERIAL;
                            ^
    exit status 1
    invalid initialization of reference of type 'HardwareSerial&' from expression of type 'SoftwareSerial'
    
    Troubleshooting

  • RS485 network not running... please help!
    kduinoK kduino

    Hi,
    Trank you all for your support. I got in running finally.
    I reassembled the complete thing on the breadboard. Then I connected the wires directly (rx-tx and tx-rx). After changing the position of the inclusion of mysensors.h for some times and using the standard pins and the preset node id it worked.
    Then I went further to test software serial lib which worked great. Then I extended the model to use the rs485 and after some adaptation of the wires (it's always the wires after some frustrating nights) it worked.
    For understanding I integrated also two led to signaling the sending via the de pin. This helped a lot.
    As this was working correctly I turned up the speed. Ok, 250.000 bps were too much, but 115.200 were running without any complaints. On a breadboard though but without any cable adaption or resistor as final terminator.
    So for this topic we can conclude that if rs485 is not even running on 9600 bps on a breadboard, it's not because of the cable or the terminating resistors. In this setting it should work anyway. Unless you have no bug somewhere else....
    So for all my followers again thank you very much. I can only suggest to myself to reassemble the test unit completely to rule out any wrong connections....
    Bye kduino

    Troubleshooting
  • Login

  • Don't have an account? Register

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