💬 Building a wired RS485 sensor network
-
https://github.com/dukelec/cdbus_doc
This one has some is interesting, not sure if it does multi master or not. There are a few projects that seem to do multimaster/collision avoidance, the trick it to find one with low enough overhead and automatically retransmits if there is a failure, and for this project isolates this enough that my sensors doesnt need restructuring.Good wiring is crucial so you can use higher speeds. The common ground wire in addition to the differential signals seems almost required.
-
https://github.com/gioblu/PJON/wiki
Some works for MySensors done:
https://forum.mysensors.org/topic/3977/transport-based-on-single-wire-pjon-protocol -
But PJON uses completely sw bit by bit sending or HW sending with bad bus arbitration.
My idea - combination CAN bus like arbitration and UART message sending.
With ACK possibility.Time T1 ( two bytes send time for example )
Node sends message and waits T1 time for ACK.
Receiving node must send ACK within T1 interval.Node, witch needs send message listens bus.
BUT not by HW UART or SoftwareSerial - use directo IO operation.
If recognize bus free time greater then T1, it start sending its own ID.
BUT again not by HW UART or SoftwareSerial - but bit by bit by direct IO pin operation.
And listen if bit I am sending is bit I am receiving.
If not - it means, that other node with higher priority ( lower ID ) is sending - then immediately stop sending other bit and wait for next bus free T1 interval.
If yes - bus is free for me end send my message normally by UART ( HW or SW, maybe with 9 bit addressing support - time less than T1 between characters allowed).
Wait max T1 time for ACK.CAN bus driver usage TJA 1050 or MCP2551 - no DE RE pins.
-
I have the problem that I always get this error: !TSM:FPAR:NO REPLY
Once it worked briefly yesterday.
What have I tried everything?
All hardware exchanged - without success.Now I have just written two small scripts that send RS485 back and forth. without problems. So wiring has to fit. I spent then in the serial montior the data which the node sends me, there comes some. Then I once tried to display the data that sends the GW, because nothing comes.
Does anyone have an idea why my GW does not answer?
-
I have the problem that I always get this error: !TSM:FPAR:NO REPLY
Once it worked briefly yesterday.
What have I tried everything?
All hardware exchanged - without success.Now I have just written two small scripts that send RS485 back and forth. without problems. So wiring has to fit. I spent then in the serial montior the data which the node sends me, there comes some. Then I once tried to display the data that sends the GW, because nothing comes.
Does anyone have an idea why my GW does not answer?
-
| / |_ / | ___ _ __ ___ ___ _ __ ___
| |/| | | | _ \ / _ \_ \/ __|/ _ \|_/ __|
| | | | || || | / | | _ \ _ | | _
|| ||_, |/ ___|| ||/_/|| |/
|__/ 2.3.0-alpha17 MCO:BGN:INIT NODE,CP=RSNNA---,VER=2.3.0-alpha
26 TSM:INIT
27 TSF:WUR:MS=0
29 TSM:INIT:TSP OK
30 TSM:FPAR
49 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
2056 !TSM:FPAR:NO REPLY
2058 TSM:FPAR
2075 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
4083 !TSM:FPAR:NO REPLY
4085 TSM:FPAR
4103 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
6111 !TSM:FPAR:NO REPLY
6113 TSM:FPAR
6130 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:0;255;3;0;9;0 MCO:BG
0;255;3;0;9;29 MCO:BGN:INIT OK,TSP=1
0;255;3;0;9;0 MCO:BGN:INIT GW,CP=RSNGA---,VER=2.3.0-alpha
0;255;3;0;9;5 TSM:INIT
0;255;3;0;9;7 TSF:WUR:MS=0
0;255;3;0;9;9 TSM:INIT:TSP OK
0;255;3;0;9;12 TSM:INIT:GW MODE
0;255;3;0;9;15 TSM:READY:ID=0,PAR=0,DIS=0
0;255;3;0;9;18 MCO:REG:NOT NEEDED
0;255;3;0;14;Gateway startup complete.
0;255;0;0;18;2.3.0-alpha
0;255;3;0;9;22 MCO:BGN:STP
0;255;3;0;9;29 MCO:BGN:INIT OK,TSP=1 -
in the 2.2 the same problem, i have now updagradet to alpha.
When you have a solution on 2.2 i will downgrade. no problem!
Guys you are good! I had set the mynodeid. But befor i include the my sensors.. that's the mistake..
hour of hour to search... thx!
-
I just trying to work with examples but my node always transmitting some piece of shit from hardware serial:
__ __ ____ | \/ |_ _/ ___| ___ _ __ ___ ___ _ __ ___ | |\/| | | | \___ \ / _ \ `_ \/ __|/ _ \| `__/ __| | | | | |_| |___| | __/ | | \__ \ _ | | \__ \ |_| |_|\__, |____/ \___|_| |_|___/\___/|_| |___/ |___/ 2.3.0 16 MCO:BGN:INIT NODE,CP=RSNNA---,VER=2.3.0 25 TSM:INIT 26 TSF:WUR:MS=0 28 TSM:INIT:TSP OK 29 TSF:SID:OK,ID=5 31 TSM:FPAR ⸮X⸮⸮w34 TSF:MSG:SEND,5-5-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 2041 !TSM:FPAR:NO REPLY 2043 TSM:FPAR ⸮X⸮⸮w2045 TSF:MSG:SEND,5-5-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 4054 !TSM:FPAR:NO REPLY 4056 TSM:FPAR ⸮X⸮⸮w4058 TSF:MSG:SEND,5-5-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 6066 !TSM:FPAR:NO REPLY 6068 TSM:FPAR ⸮X⸮⸮w6070 TSF:MSG:SEND,5-5-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK: 8078 !TSM:FPAR:FAIL 8079 TSM:FAIL:CNT=1 8081 TSM:FAIL:DIS 8083 TSF:TDI:TSLFrom software serial too
⸮X⸮⸮w ⸮X⸮⸮w ⸮X⸮⸮w ⸮X⸮⸮wConsequently the gateway can't find any device.
I have tried also with RS485 with different baudrate. Finally I just connect my USB TTL directly to ouput pins, but always same result.
How to fix it? -
@Pavel-Polititsky
To me this looks like you mixed between-node communication (RS485) with debug output (and maybe also serial output of the gw).
The corresponding serial interface for RS485 should be dedicated to RS485 exclusively. -
Hi,
first of I have to thank you for your effort on this project! It helped me a lot.
In my house I would like to build 2 networks, one with serial gateway with RF24 for ground floor and outside. Second will be in cellar and I was thinking about Ethernet gateway (W5500) but sensors will be connected via RS485. Do you have code for that? On the video it looks like that in the box on right side it is something like this. -
| / |_ / | ___ _ __ ___ ___ _ __ ___
| |/| | | | _ \ / _ \_ \/ __|/ _ \|_/ __|
| | | | || || | / | | _ \ _ | | _
|| ||_, |/ ___|| ||/_/|| |/
|__/ 2.3.116 MCO:BGN:INIT NODE,CP=RSNNA---,REL=255,VER=2.3.1
26 TSM:INIT
27 TSF:WUR:MS=0
28 TSM:INIT:TSP OK
30 TSM:FPAR
56 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
2063 !TSM:FPAR:NO REPLY
2065 TSM:FPAR
2082 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
4090 !TSM:FPAR:NO REPLY
4092 TSM:FPAR
4110 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
6118 !TSM:FPAR:NO REPLY
6120 TSM:FPAR
6137 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
8146 !TSM:FPAR:FAIL
8147 TSM:FAIL:CNT=1
8150 TSM:FAIL:DIS
8152 TSF:TDI:TSL
18154 TSM:FAIL:RE-INIT
18156 TSM:INIT
18157 TSM:INIT:TSP OK
18159 TSM:FPAR
18178 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
20186 !TSM:FPAR:NO REPLY
20188 TSM:FPAR
20206 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
22213 !TSM:FPAR:NO REPLY
22215 TSM:FPAR
22234 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
24241 !TSM:FPAR:NO REPLY
24243 TSM:FPAR
24261 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
26268 !TSM:FPAR:FAIL
26269 TSM:FAIL:CNT=2
26271 TSM:FAIL:DIS
26273 TSF:TDI:TSL -
@giebek could you describe the problem, what your setup looks like, and what you have tried so far to troubleshoot it? There are 137 posts in this thread so it is a bit hard to figure out which problem you are referring to.
6137 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
Imo this indicates your node doesn't have a NodeID yet. When using RS485 you have to assign the ID's manually in the sketch, auto doesn't work... (e.g. #define MY_NODE_ID 123)
-
hello MySensors friends,
I am currently making a node based on an arduino Mega 2560 with transport via RS-485, the build page says that we should use the MEGA pin 46 & 48, I was wondering if I would like a reference for this. in the sketch.
Second question; can I use pin 47 for the DE pin with:#define MY_RS485_DE_PIN 47I haven't tested anything yet, so actually I just ask a lazy question ;)
-
Hello, I would like to better understand the concept here. It sounds like we still need a gateway connected to a controller (serial, Ethernet, WiFi, etc.) but the interface between gateway and multiple nodes is over wired RS485 serial interface. Please confirm. Thank you for your great efforts!