After too many hours of struggling though trial and error, packet sniffing, and lots of various materials found on the Internet, I have uncovered a few very important secrets that were not readily apparent in the official vendor documentation I had available.
The device I was working with: Trane UC400 BACnet Communications Interface
In general, none of the BACnet configuration software or documentation makes reference to the number of data bits, parity, or stop bits used. Baud is the only thing that is set. The problem is that unless you are integrating with something specific to BACnet, you will need to set these parameters. Here they are:
- Data bits: 8
- Parity: none
- Stop bits: 1
The Trane documentation tells you to connect your communications cable to 4 terminals labeled (-) (+) (-) (+). For some reason, I took that to mean it was a 4-wire serial system. BACnet is a RS-485 multidrop system, so it has to be a 2-wire. I ran jumper wires like in the picture, but now that I think about it, it might work without the jumpers as well.
The last thing that threw me in a loop is that BACnet allows (expects) MULTIPLE masters in their master/slave system. What? While slaves are more efficient for bandwidth use, it is OK to have multiple masters. I read a note that said most vendors require their devices to be a master. I wound up having to configure my other device (a Redlion DSP) as a master. So my BACnet network consists of two masters and no slaves. Go figure.
I used two different packet sniffer programs, but the most useful and easiest to use was CAS BACspy, available for free from chipkin.com. Hopefully, these notes will help save someone a little time in the future! (find more of my controls articles at sparkygeek.com)