FreeRange Very Small BACnet (VSB)

Embedded BACnet Stacks for Small Processors

If you're a developer of microcomputer-based equipment, with applications in commercial buildings, you probably know about BACnet, the international standard for building and control systems networking. Many of your customers are specifying BACnet for new equipment. If you've looked at the BACnet standard, you know that even simple communications functions can present some daunting problems, and you probably don't have the time to become that much of a BACnet expert. You may not have the time or resources necessary to convert all of your existing products to BACnet, but you don't want to be excluded from consideration just because your products don't yet support BACnet. You need a reliable platform to help jumpstart the process of getting your existing products communicating with BACnet devices. But you need a compact and efficient implementation with basic features that won't make too many demands on your platform's limited resources.
You need FreeRange™ VSB.


PolarSoft FreeRange VSB (Very Small BACnet stack) is a modular software component that provides BACnet application layer, network layer and media access (MAC) layer communications services to embedded systems programs. FreeRange VSB is written entirely in the C language for ease of portability to various platforms.


FreeRange VSB interfaces with the embedded system through simple function calls. FreeRange VSB provides entrypoints that your application program must call periodically or under certain circumstances. Also, your application program must provide certain routines that FreeRange VSB may call when needed, for example to send and receive bytes from a serial port for MS/TP, or to handle specific service requests.


The VSB BACnet Stack implements generic handling for BACnet services, passing control to routines in your application program when particular services are requested.


MS/TP communication is handled completely within the FreeRange VSB stack. Other types of communications media, such as Ethernet 8802-3 and BACnet/IP are handled by MAC layer drivers that interface with the VSB stack. The diagram illustrates the relationship of these programs with each other.


FreeRange VSB automatically handles various services such as Who-Is, I-Am, and DeviceCommunicationControl execution. The FreeRange stack pre-qualifies ReadProperty and WriteProperty services and passes the parameters for these requests directly to your application. This allows your application to enforce whatever policies that you want on interpretation of BACnet object identifiers. The only exception is that most of the properties of the Device object are handled directly within FreeRange VSB.


The stack is available in two versions. FreeRange VSB Server-only (VSBSO) is the simplest and provides only a modest set of server functions. These are shown in the table below marked with an X.


FreeRange VSB high-performance (VSBHP) includes even more functionality as well as a high-performance MAC layer API that is fully queued and allows for asynchronous multi-threaded handling. Generally VSBHP is more suitable for use with high-performance networks such as BACnet/IP.


FreeRange VSB has been implemented on a wide range of processors including 8051, Rabbit 3000, 68HC11, H8, 80186, Atmel ATmega128/644 and even the PIC18F, as well as larger processors such as ColdFire/386EX/ARM7/ARM9 and Windows, OS/X and Linux PCs.


Supported Services

DeviceCommunicationControl X
ReinitializeDevice X
SubscribeCOV H
Unsubscribed COVNotificationHH
GetAlarmSummary H
GetEventInformation H
AcknowledgeAlarm H
AtomicReadFile X
AtomicWriteFile X
CreateObject H
DeleteObject H
all versions X
VSBHP only H



Operating System:
Operating System-Independent (multi-threading OS or "main loop")
8, 16 or 32 bit Processor, 1ms timer resolution Recommended

VSBHP MS/TP, BACnet/IP, Ethernet 8802-3

FreeRange VSB is licensed on a one-time fee basis. The license provides for the unrestricted use of the development libraries, and their code components, for the development of BACnet products to be resold in binary form. The development libraries, and components, may not be resold or sublicensed or redistributed. License fees include fully commented source code, documentation, and one year warranty on all code produced by PolarSoft.