Skip to content

Features and Limitation

Michael Jonker edited this page Nov 12, 2015 · 2 revisions

There are a few features and limitations that you should be aware of:

RS485 Bus hugging: Please be aware, if one RS485 bus participant continuously occupies the bus, then all other slaves trying to emit a message, will hang without escape possible. (A time out needs to be implemented here).

Collision detection limits: Please be aware, the capability of a RS485 bus participant to detect a collisions has its limit, specially when using long cables. In this case it is not improbable that message sending nodes will not detect immediately a collision caused by a message from the remote node, because the signal from the remote node is too weak to disturb the local signal. In that case it may take one or two characters before the collision is detected by one of the nodes, while the other node remains unaware of the collision. A possible strategy to reduce the impact of such collisions (i.e. which usually corrupt the Start of Message) is to precede the start of message character by two or three dummy characters (e.g. replacing print('{') with print("**{") in the above startMessage example).

Message retrial limitation: Please be aware, messages that have exceeded the internal buffer size, cannot be retried in case of a collision (as the start of the message was overwritten). If this occurred, an error status is returned when calling endTransmission(). However, this method will lead to erratic behaviour if the message length exceeded 256 characters. (You may call this a known bug or a documented restriction). It will be fixed in a later release.