The Cimetrics uBACstac saves man-years of development when your company needs to develop low volume or high volume BACnet-compliant applications that run on small devices with or without OS! BACstac with source code will provide you with example programs and reference ports to three hardware platforms with or without Free RTOS - ATmega, ARM-7, Cortex-M4.
Many Building Automation and Controls manufacturers use a Cimetrics uBACstac protocol stack because of our reputation for delivering high-quality software and excellent technical support. Cimetrics does the heavy lifting of testing the uBACstac on different hardware platforms and implementing the new Addenda approved by the BACnet Committee in a timely fashion. We keep our customers UP-TO-DATE with the latest BACnet features and make sure that the code is compatible with a growing number of hardware platforms.
BACnet Building Blocks supported in the current example: DS-RP-B, DS-RPM-B, DS-WP-B, DS-WPM-B, DM-DDB-B, DM-DOB-A,B, DM-DCC-B, AE-N-I-B, AE-ACK-B, AE-INFO-B, SCHED-I-B, DM-TS-B, DM-UTC-B, DM-RD-B, DS-RP-A, DS-WP-A (it is also possible to implement other services and building blockse.g. COV/COVP/Add-remove list element/file transfer etc..)
BACnet objects types supported in the current example: Accumulator, Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Device, File, Multi-state Input, Multi-state Value, Multi-state Output, Notification Class, Calendar, Schedule.
BACstac Comparison Chart: Check which BACstac is right for you!
This is a BACnet protocol stack designed for the development of low and high volume BACnet-compliant devices with or without OS. It allows a simple, easy and quick way porting on a new hardware. You can make a device with B-AAC profile and more. Supports following device profiles: BSS, BSA, B-ASC, B-AAC.
Data links: BACnet/IP, MS/TP.
Support for Foreign Device operation in BACnet/IP Data Link.
Hardware platforms supported: Support for any platforms from 8, 32 to 64 bit processor from 8MHz frequency and more. If you use hardware without OS it should have at least 32K program memory and 3KB RAM is sufficient. If you use hardware with OS then you need more memory. For MS/TP use you need EIA-485 transceiver. Also if you use hardware with OS for MS/TP then you need Real Time Operating System. The OS should have TCP/IP supports.
Our example runs on these platforms:
1. ATmega2560 (Arduino Mega 2560 with DFRobot RS485 Shield) - 8 bit
2. ATmel ARM7 (AT91SAM7SE256-EK evaluation board), with and without FreeRTOS - 32 bit3. ARM Cortex-M4 (STM32F429ZI evaluation board DFRobot RS485 Shield) running FreeRTOS+lwIP, supports MS/TP and BACnet/IP in one image - 32 bit.
4. Linux and Linux-on-Windows, - 32 and 64 bit, Little or Big Endian, Intel, ARM or MIPS.
Tested on the following platforms: Ubuntu and Debian Linux on Intel desktop, Raspberry Pi, BeagleBone Black (will also work on BeagleBone Green, BeagleBone Blue, BeagleBone-xM, BeagleBone-x15); Linux-on-Windows (Windows Subsystem for Linux a.k.a. WSL); Linux on MIPS emulator (QEMU) and more.
Development environment supported: GNU toolchain (gcc, gnu Make).
Code provided: Source code for all libraries (MS/TP and BACnet/IP datalinks, Transaction State Machines, ASN.1 encoders/decoders). Also a full-fledged BACnet device source code is provided as an example. All code is written in portable C language. Source code for different platforms is also provided (in C language).
BACnet Building Blocks supported in the example: DS-RP-B, DS-RPM-B, DS-WP-B, DS-WPM-B, DM-DDB-A,B, DM-DOB-B, DM-DCC-B, AE-N-I-B, AE-ACK-B, AE-INFO-B, SCHED-I-B, SCHED-WS-I-B, DM-TS-B, DM-UTC-B, DM-RD-B, DM-R-B, DS-COV-B, DS-COVU-B, DS-RP-A, DS-WP-A..
BACnet objects types supported in the supplied example Device implementation: Accumulator, Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Device, File, Multi-state Input, Multi-state Value, Multi-state Output, Notification Class, Calendar, Schedule. (it is possible to implement any other BACnet objects in your device)
Documentation provided: User's Guide, and Porting Guide
You can create devices for the embedded systems including small footprint BACnet Devices and Application Specific Controllers and Advanced Application Controller, especially ones with MS/TP. You can also add BACnet support to existing products, including hardware platforms with OS and TCP/IP protocol. Different platforms have different memory requirements but the good rule of thumb is to have at least 40KB program memory (FLASH) and 4K RAM for uBACstac. Processor capacity depends on the platform too. E.g. ATMega (an 8-bit microprocessor running at 16MHz) is capable of supporting all standard MS/TP baud rates including 115200bps.
More than 150 manufacturers are registered members of the BACnet community. This group includes prestigious companies like Siemens, Honeywell, Secom, JVC, Trane, KMC Controls, LG Electronics, Priva, Loytec, Matsushita, Matrikon, Mitsubishi, Samsung, Sauter, Trend, Wago, and many more.
ALL of these companies mentioned using the Cimetrics BACstac!
Our role in the industry is to keep these well-known companies UP-TO-DATE with the latest BACnet features and to make sure that this code is compatible with the more and more hardware platforms.