I’ve been toying with the VelBus library for C#. After a while got it to do what I wanted, but the response from the RS232 module is not quite what I expect. When the device is connected to the bus I get 2 messages back, namely ‘receive ready’ and ‘bus active’, which makes sense (BTW, the user manual is incorrect as it says COMMAND_BUS_OFF = H’0A’ while it should be COMMAND_BUS_ACTIVE = H’0A’).
When I disconnect the device from the bus, I get no response at all. Should it say ‘COMMAND_BUS_OFF (H’09’) ?

While we’re at it… I’m wondering why you add a checksum to the command, while the CAN controller actually does it’s own CRC ?
Is this a left-over from early prototypes ?


Glad you got it working! Well, the bus off and buffer full commands are only sent in case of an error: packets sent at a too high rate to the Velbus, etc. those kinds of errors. Other causes of errors are mostly due to bad wiring. If I’m not mistaken, the bus active and receive ready commands are only sent when the VMB1RS is powered on or when the bus recovers from an error. I’d recommend you only use this command to temporarily suspend traffic until bus errors are cleared.

The checksum is included to be able to parse packets properly. If you don’t include a checksum byte then there is no way to clearly identify a packet from a string of random garbage.