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. Bug Reports
  3. Corrupted data from RS485 Sensor Node

Corrupted data from RS485 Sensor Node

Scheduled Pinned Locked Moved Bug Reports
5 Posts 3 Posters 63 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Konrad WiniarskiK Offline
    Konrad WiniarskiK Offline
    Konrad Winiarski
    wrote on last edited by
    #1

    Hello. I'm using Arduino Pro Mini (atmega328) and checking one of basic examples (MotionSensorRS485). The gateway is connected via same RS485 converter. Unfortunately they do not communicate.
    First I checked connection (direct TX-RX/RX-TX) connection - with failure. Then I took another USB/TTL converter to check what is on the output of softserial - and I found some kind of garbage data. It looks like wrong baudrate so I checked all "standard" speeds from 2400 up to 115200. (Configured to 9600).
    Then I enabled DEBUG, enabled HWSERIAL and set to Serial. Both baudrates set to 9600. So I have now both, the communication frame and debug. See screenshot below.

    e5936525-8349-4880-bce8-24c5e80e90c2-image.png

    When I disable DEBUG, only corrupted frame left:
    6ab75562-5bfe-431a-a23b-15d84ac69bfa-image.png

    The code:

    //#define MY_DEBUG
    //#define MY_DEBUG_LOCAL
    
    // 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_BAUD_RATE 9600
    #define MY_RS485_BAUD_RATE 9600 //19200 //57600 //38400 //9600
    #define MY_RS485_SOH_COUNT 1
    #define MY_RS485_HWSERIAL Serial
    #define MY_SPLASH_SCREEN_DISABLED
    //#define MY_PASSIVE_NODE
    #define MY_NODE_ID 10
    
    #include <MySensors.h>
    
    uint32_t SLEEP_TIME = 3000;//+120000 // Sleep time between reports (in milliseconds)
    #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
    #define CHILD_ID 1   // Id of the sensor child
    
    // Initialize motion message
    MyMessage msg(CHILD_ID, V_TRIPPED);
    
    void setup()
    {
        pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
        
    }
    
    void presentation()
    {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Motion Sensor", "1.0");
    
        // Register all sensors to gw (they will be created as child devices)
        present(CHILD_ID, S_MOTION);
    }
    
    void loop()
    {
        // Read digital motion value
        bool tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH;
    
        Serial.println(tripped);
        send(msg.set(tripped?"1":"0"));  // Send tripped value to gw
    
        // Sleep until interrupt comes in on motion sensor. Send update every two minute.
        //sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
    }
    

    An Idea? Arduino board is not corrupted, any short sketch with SoftSerial library works fine. Haven't checked MySensors with SoftSerial though. MySensors version 2.3.2. Checked on Arduino IDE and VSC.
    Cheers!

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cabat
      wrote on last edited by
      #2

      What about RS485 bus topology and connection to RS485 recievers on Arduino Pro Mini module?

      1 Reply Last reply
      0
      • Konrad WiniarskiK Offline
        Konrad WiniarskiK Offline
        Konrad Winiarski
        wrote on last edited by
        #3

        Hi Cabat. Both checked. I wrote my own code to test it. I'm having my own working RS485 network at home already. I did it by myself and I'm pretty experienced in debugging ;). I want to switch to MySensors now due to more flexibility.
        So to summarize:

        • it is not a RS485 issue, tested,
        • it is not a USB/TTL converter issue, tested,
        • it is not an UART bitrate issue, not on the PC side at least,
        • there is no difference if I use hardware or software serial - same content.

        I have conserns about the Library. According to this page:
        https://www.mysensors.org/download/serial_api_20
        the typical frame sent by a node should be like this:
        12;6;0;0;3;My Light\n
        12;6;1;0;0;36.5\n
        13;7;1;0;2;1\n

        As you can see on picture in firs post, when I configured to use HWSerial for RS485 and DEBUG set ON, I shall expect both - Communication and Debug on the same line. Debug data is correct, but the frame is nothing like a text message - looks like the content is sent in HEX not ASCII.
        I learned there is no encryption, so it is not an encrypted data I assume.

        1 Reply Last reply
        0
        • karlheinz2000K Offline
          karlheinz2000K Offline
          karlheinz2000
          wrote on last edited by
          #4

          RS485 data is different to serial api. Serial api is only from gateway to controller.
          Please check links in 1st post.
          https://forum.mysensors.org/topic/1947/rs485-rs232-serial-transport-class-for-mysensors-org

          1 Reply Last reply
          0
          • Konrad WiniarskiK Offline
            Konrad WiniarskiK Offline
            Konrad Winiarski
            wrote on last edited by
            #5

            Yes, I realized that last Sunday. I went through the code of library. I had to switch to another project for a week or so, then I come back to it. Thanks!

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


            12

            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