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. Development
  3. RS485/RS232/Serial transport class for mysensors.org

RS485/RS232/Serial transport class for mysensors.org

Scheduled Pinned Locked Moved Development
rs485 serialrs485
143 Posts 27 Posters 128.1k Views 27 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.
  • H Offline
    H Offline
    hek
    Admin
    wrote on last edited by
    #98

    @Bartek-Celary
    No, not really. Just that not many that uses 2560.

    1 Reply Last reply
    0
    • BartB Offline
      BartB Offline
      Bart
      wrote on last edited by Bart
      #99

      How about adding the following define to use the Serial1/2 on Mega. I have not tested yet but assuming the AltSoftSerial lib has the same interface/functionality it should work.

      #define MY_RS485_SERIAL Serial1
      
      diff --git a/core/MyTransportRS485.cpp b/core/MyTransportRS485.cpp
      index 814f721..ea35c9e 100644
      --- a/core/MyTransportRS485.cpp
      +++ b/core/MyTransportRS485.cpp
      @@ -92,7 +92,11 @@ unsigned char _recSender;
       unsigned char _recCS;
       unsigned char _recCalcCS;
       
      +#if defined(MY_RS485_SERIAL)
      +HardwareSerial& _dev = MY_RS485_SERIAL;
      +#else
       AltSoftSerial _dev;
      +#endif
       
       
       unsigned char _nodeId;
      
      1 Reply Last reply
      0
      • H Offline
        H Offline
        hek
        Admin
        wrote on last edited by
        #100

        Looks like a neat solution. If it verifies ok, please create a pull request agains the development branch.

        1 Reply Last reply
        0
        • lanL Offline
          lanL Offline
          lan
          wrote on last edited by
          #101

          I understand that the RS485 is a separate gateway to communicate. Is it also possible to have the wireless gateway and RS485 gateway combined?

          1 Reply Last reply
          0
          • H Offline
            H Offline
            hek
            Admin
            wrote on last edited by
            #102

            Currently, no..

            lanL 1 Reply Last reply
            0
            • H hek

              Currently, no..

              lanL Offline
              lanL Offline
              lan
              wrote on last edited by
              #103

              @hek Thanks for the quick response. I'm looking for some direction (this might not be the right forum).
              I want to create a node to control my Itho Ecofan ventilation box. I now have a working program (thanks to the help of Rogier Reedijk The nodo now uses a CC1101 transceiver to control the box and thus uses the SPI bus. I'm looking for some direction to use this transmitter as part of my sensor network so I can control it from my Domoticz. Hope you can give me some directions how to proceed.

              1 Reply Last reply
              0
              • H Offline
                H Offline
                hek
                Admin
                wrote on last edited by
                #104

                Why do you need to hook it up to RS485 wired network? Can't you just forwards commands to the CC11001 from any radio node or the gateway?

                1 Reply Last reply
                0
                • lanL Offline
                  lanL Offline
                  lan
                  wrote on last edited by
                  #105

                  Is it then possible to use the two radio's on one node and share the SPI bus?

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    hek
                    Admin
                    wrote on last edited by
                    #106

                    Yes, if the CC11001 behaves correctly.

                    1 Reply Last reply
                    0
                    • lanL Offline
                      lanL Offline
                      lan
                      wrote on last edited by
                      #107

                      Thanks, will try that

                      1 Reply Last reply
                      0
                      • elektro12345E Offline
                        elektro12345E Offline
                        elektro12345
                        wrote on last edited by elektro12345
                        #108

                        Hello,
                        I have a problem running gatewayserial to rs-485 and the node with the usual lightsensor.
                        NODE # 1 as a gateway and tried to upload a sketch of the library 2.0 and 1.5.4, and the monitor serial I can not see any data, I use to check on the serial PuTTy com6 because the converter rs-485 to USB is connected to the PC.

                        NODE # 2 as a light sensor, during the upload Sketch by arduino programmer for serial monitor can see the data being sent but after plugging arduino to rs-485 as below no longer visible.

                        My question is whether I have something wrong with the connection or sketch, can someone show an example of a complete sketch for the gateway, and a node?

                        Connection mine looks like this:
                        TX and RX Connect was to pins 0 and 1 in arduino or 8 and 9, DE is always PIN 2.

                        alt text

                        BartB 1 Reply Last reply
                        0
                        • H Offline
                          H Offline
                          hek
                          Admin
                          wrote on last edited by
                          #109

                          Looks like you got the pins to the Arduino wrong.

                          Pin 9 >>> DI
                          Pin 8 >>> RO
                          Pin 2 >>> DE and RE

                          elektro12345E 1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            hek
                            Admin
                            wrote on last edited by
                            #110

                            I need a nice picture done in fritzing (or similar) for an article on the main site on how to connect the RS485 module (atmega 328 enough I guess).

                            Anyone volunteering in making one?

                            1 Reply Last reply
                            0
                            • CrankyCoderC Offline
                              CrankyCoderC Offline
                              CrankyCoder
                              wrote on last edited by
                              #111

                              so this is a 1 to 1 setup right? There is nothing here for multiple serial nodes correct?

                              Home Automation Tinkerer
                              www.CrankyCoder.net

                              Controller: HomeAssistant in Kubernetes
                              Gateway: MQTTClientGateway
                              MySensors: 2.3

                              1 Reply Last reply
                              0
                              • H Offline
                                H Offline
                                hek
                                Admin
                                wrote on last edited by
                                #112

                                Aren't they just daisy chained?

                                1 Reply Last reply
                                0
                                • H hek

                                  Looks like you got the pins to the Arduino wrong.

                                  Pin 9 >>> DI
                                  Pin 8 >>> RO
                                  Pin 2 >>> DE and RE

                                  elektro12345E Offline
                                  elektro12345E Offline
                                  elektro12345
                                  wrote on last edited by elektro12345
                                  #113

                                  @hek
                                  On the pictures is connect to TX and RX pins arduino but I tried to connect to pins 8,9,2 and result was the same :(
                                  On thsi connections with pins 8,9,2 ofcourse and library mysensors 2.0 should works fine ?

                                  1 Reply Last reply
                                  0
                                  • H Offline
                                    H Offline
                                    hek
                                    Admin
                                    wrote on last edited by
                                    #114

                                    Yes, people have reported the RS485 transport working above.

                                    I just created this article with a summary of this thread
                                    https://www.mysensors.org/build/rs485

                                    1 Reply Last reply
                                    0
                                    • elektro12345E elektro12345

                                      Hello,
                                      I have a problem running gatewayserial to rs-485 and the node with the usual lightsensor.
                                      NODE # 1 as a gateway and tried to upload a sketch of the library 2.0 and 1.5.4, and the monitor serial I can not see any data, I use to check on the serial PuTTy com6 because the converter rs-485 to USB is connected to the PC.

                                      NODE # 2 as a light sensor, during the upload Sketch by arduino programmer for serial monitor can see the data being sent but after plugging arduino to rs-485 as below no longer visible.

                                      My question is whether I have something wrong with the connection or sketch, can someone show an example of a complete sketch for the gateway, and a node?

                                      Connection mine looks like this:
                                      TX and RX Connect was to pins 0 and 1 in arduino or 8 and 9, DE is always PIN 2.

                                      alt text

                                      BartB Offline
                                      BartB Offline
                                      Bart
                                      wrote on last edited by
                                      #115

                                      @elektro12345

                                      So what's with the DE+RE pins on that USB-RS485 converter? Will it even work in this configuration? I do have such converter but so far I've used the arduino as a SerialGateway to connect to RPi.

                                      elektro12345E 1 Reply Last reply
                                      0
                                      • BartB Offline
                                        BartB Offline
                                        Bart
                                        wrote on last edited by Bart
                                        #116

                                        I am not sure if I am seeing a normal behavior. I don't know if it is expected that the sensor is taking such long time to become visible to the GW. I have recreated the examples from https://www.mysensors.org/build/rs485

                                        The only difference is that I've added SketchInfo for the GW and used Serial1 on MEGA board instead of AltSoftSerial.

                                        The debug on the motion sensor is as follows:

                                        MCO:BGN:INIT NODE,CP=RSNNA--,VER=2.0.1-beta
                                        TSM:INIT
                                        TSM:INIT:TSP OK
                                        TSF:ASID:OK,ID=1
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        !TSM:FPAR:NO REPLY
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        !TSM:FPAR:NO REPLY
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        !TSM:FPAR:NO REPLY
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        !TSM:FPAR:FAIL
                                        TSM:FAILURE
                                        TSM:FAILURE:PDT
                                        TSM:FAILURE:RE-INIT
                                        TSM:INIT
                                        TSM:INIT:TSP OK
                                        TSF:ASID:OK,ID=1
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        TSF:MSG:FPAR RES,ID=0,D=0
                                        TSF:MSG:FPAR OK,ID=0,D=1
                                        TSM:FPAR:OK
                                        TSM:ID
                                        TSM:ID:OK,ID=1
                                        TSM:UPL
                                        TSF:PING:SEND,TO=0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        TSF:CHKUPL:FAIL
                                        !TSM:UPL:FAIL
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        TSF:MSG:FPAR RES,ID=0,D=0
                                        TSF:MSG:FPAR OK,ID=0,D=1
                                        TSM:FPAR:OK
                                        TSM:ID
                                        TSM:ID:OK,ID=1
                                        TSM:UPL
                                        TSF:PING:SEND,TO=0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        TSF:CHKUPL:FAIL
                                        !TSM:UPL:FAIL
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        TSF:MSG:FPAR RES,ID=0,D=0
                                        TSF:MSG:FPAR OK,ID=0,D=1
                                        TSM:FPAR:OK
                                        TSM:ID
                                        TSM:ID:OK,ID=1
                                        TSM:UPL
                                        TSF:PING:SEND,TO=0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        TSF:CHKUPL:FAIL
                                        !TSM:UPL:FAIL
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        TSF:MSG:FPAR RES,ID=0,D=0
                                        TSF:MSG:FPAR OK,ID=0,D=1
                                        TSM:FPAR:OK
                                        TSM:ID
                                        TSM:ID:OK,ID=1
                                        TSM:UPL
                                        TSF:PING:SEND,TO=0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        TSF:CHKUPL:FAIL
                                        !TSM:UPL:FAIL
                                        TSM:FPAR
                                        TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        TSF:MSG:FPAR RES,ID=0,D=0
                                        TSF:MSG:FPAR OK,ID=0,D=1
                                        TSM:FPAR:OK
                                        TSM:ID
                                        TSM:ID:OK,ID=1
                                        TSM:UPL
                                        TSF:PING:SEND,TO=0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=25,pt=1,l=1,sg=0:1
                                        TSF:MSG:PONG RECV,HP=1
                                        TSF:CHKUPL:OK
                                        TSM:UPL:OK
                                        TSM:READY
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=0,t=17,pt=0,l=10,sg=0,ft=0,st=OK:2.0.1-beta
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=11,pt=0,l=13,sg=0,ft=0,st=OK:Motion Sensor
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=0,t=1,pt=0,l=0,sg=0,ft=0,st=OK:
                                        MCO:REG:REQ
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
                                        TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
                                        TSF:MSG:READ,0-0-1,s=255,c=3,t=27,pt=1,l=1,sg=0:1
                                        MCO:PIM:NODE REG=1
                                        MCO:BGN:STP
                                        MCO:BGN:INIT OK,ID=1,PAR=0,DIS=1,REG=1
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        0
                                        TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        

                                        I don't know how to obtain debug from the Gateway Serial but as far as the GW messages on the console it looked as follows:

                                        0;255;3;0;14;Gateway startup complete.
                                        0;255;0;0;18;2.0.1-beta
                                        0;255;3;0;11;SerialGateway
                                        0;255;3;0;12;0.1
                                        1;255;3;0;6;0
                                        1;255;3;0;11;Motion Sensor
                                        1;255;3;0;12;1.0
                                        1;1;0;0;1;
                                        1;1;1;0;16;0
                                        1;1;1;0;16;0
                                        1;1;1;0;16;0
                                        1;1;1;0;16;0
                                        1;1;1;0;16;0
                                        

                                        As you see it takes a fair amount of time (around 30-40 secs) to obtain the readings from the sensor. This happens each time I reset the sensor node but it works instantly if I reset the GW (i.e. the readings appear instantly after the reset). Is it expected behavior?

                                        1 Reply Last reply
                                        0
                                        • H Offline
                                          H Offline
                                          hek
                                          Admin
                                          wrote on last edited by
                                          #117

                                          30 seconds sound like a long time.. Not sure what could be wrong. I don't have any test setup here unfortunately.

                                          BartB 2 Replies Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          16

                                          Online

                                          12.0k

                                          Users

                                          11.2k

                                          Topics

                                          113.4k

                                          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