Are you ready to supercharge your development across multiple platforms? Looking to develop BACnet-compliant applications for small devices with or without an OS? The Cimetrics uBACstac is the ultimate solution for Building Automation and Controls manufacturers, saving man-years of development time for both low- and high-volume projects. Here's why:
Adaptability Across Platforms:
With source code written in portable C, uBACstac supports a wide range of platforms, ranging from 8-bit micro controllers to 32-bit processors and 64-bit high-end CPUs. Any modern C compiler can be used. uBACstac was tested on Linux with glibc or musl on various hardware platforms, including:
uBACstac features:
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: B-SS, B-SA, B-ASC, B-AAC. Now we support revision 26!
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 4KB 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. ARM Cortex-M7 (STM32F767ZI evaluation board DFRobot RS485 Shield) running FreeRTOS+lwIP, supports MS/TP and BACnet/IP in one image - 32 bit.3. Linux and WSL2, - 32 and 64 bit, Little or Big Endian, Intel, ARM or MIPS.
Development environment supported: GNU toolchain (gcc/clang, gnu Make).
Code provided: Source code for all libraries (MS/TP and BACnet/IP datalinks, Transaction State Machines, ASN.1 encoders/decoders, standard BACnet application-level functions). 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: DS-RP-A,B, DS-RPM-A,B, DS-WP-A,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, DM-TS-B, DM-UTC-B, DM-RD-B, DS-COV-A,B, DS-COVU-A,B.
BACnet objects types supported: Accumulator, Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Calendar, Device, File, Loop, Multi-state Input, Multi-state Value, Multi-state Output, Network Port, Notification Class, 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.