BACstac/32 – BACnet Protocol Stack for Embedded Platforms
BACstac/32 is a portable BACnet protocol stack with full C source code for 32-bit and 64-bit embedded platforms. It supports BACnet/IP, IPv6, MS/TP, Ethernet, BACnet/SC, and includes routing and gateway features—ideal for developing BACnet-compliant devices on Linux or RTOS-based systems.
Product Highlights
* C Source Code Included – Portable BACnet stack for 32/64-bit embedded platforms
* Supports BACnet/IP, IPv6, MS/TP, Ethernet & BACnet/SC
* Routing & Gateway Ready – Create multi-device BACnet solutions
* Supports 60+ Object Types & All Major BACnet Profiles
* Verified on Linux & ARM Cortex M7 + FreeRTOS
* Secure Connect (BACnet/SC) + BTL Support Available
Description
Build BACnet-Compliant Embedded Devices — Smarter, Faster, and with Full Control with BACstac/32 – BACnet Protocol Stack for Embedded Platforms (32-bit & 64-bit) with Full Source Code
Your Embedded BACnet Solution Starts Here
The Cimetrics BACstac/32 is a powerful, flexible BACnet protocol stack designed for developers creating BACnet-compliant applications on 32-bit and 64-bit embedded platforms. With complete ANSI C source code, support for BACnet routing, and proven reliability in real-world applications, BACstac/32 accelerates your embedded development process while ensuring full protocol compliance.
Whether you’re building HVAC controllers, lighting systems, security gateways, or any embedded building automation product, BACstac/32 gives you the tools to develop, port, and deploy with confidence.
Trusted by Industry Leaders Worldwide
Companies like Siemens, Mitsubishi, LG, Trane, and hundreds more rely on BACstac technology to power their BTL-listed products. Our robust, standards-compliant stack saves man-years of development and removes the burden of interpreting the 1300+ page BACnet specification.
BACstac 7.10 supports all required functionality of BACnet Protocol Revision 24 for all BACnet profiles.
New! Addendum 2020cn, Addendum 2020bx (client-only functionality), Addendum 2020cj (client-only functionality).
Most optional functionality is also supported with the following exceptions:
– Virtual Terminal services (Chapter 17).
– Slave Proxy functionality (DM-SP-B).
– BACnet Web Services.
This release has added a simplified configuration of B/IP and B/IPv6 with BDT.
Supports following profiles: B-AAC, B-AACC, B-AACWS, B-ACC, B-ACCR, B-ACDC, B-ACSD, B-ACWS, B-AEC, B-AEWS, B-ALCS, B-ALSC, B-ALSWS, B-ALWS, B- ASC, B-AWS, B-BBMD, B-BC, B-EC, B-ED, B-EM, B-EWS, B-GW, B-LCS, B-LD, B-LOD, B-LS, B-LSAP, B-LSC, B-LSWS, B-OD, B-OWS, B-RTR, B-SA, B-SS, B-XAWS.
Data links: BACnet/SC, BACnet/IP with Foreign Device and BBMD support, BACnet/IPv6 with Foreign Device and BBMD support Ethernet (IEEE 802.3), BACnet/SC IPV6, MS/TP.
BACnet routing: This product supports BACnet routing functionality and the creation of multi-device gateways.
Operating system requirements: The target platform must support threads (tasks), semaphores, recursive mutexes, dynamic memory allocation, time, persistent storage (for configuration data), and the required network interfaces; please refer to the Porting Guide for more information. BACstac 7.10 has been verified on Debian GNU/Linux 11 (Bullseye), 12 (Bookworm), Ubuntu 24.04 (Focal), Ubuntu 22.04 (Jammy Jellyfish), Ubuntu 24.04 (Noble Numbat ), TM32F7 (ARM Cortex M7 + FreeRTOS + LWIP). For lower-end ARM Cortex M microprocessors (M0 to M4) suggest using uBACstac.
Development tools: For Linux-based target platforms, supported development environments are gcc version 4.1 or later, Perl 5.6 or later (5.8 is recommended).
BACstac/32 is good for Cortex M7. ARM Cortex family includes a very powerful Cortex-A series, which runs Linux and are perfectly supported by both BACstac/32 and BACstac/Linux.
Code provided: Example programs, unit tests, makefiles for both, and complete C-language source code.
Documentation provided: User’s Guide, Porting Guide, and Programmers Reference.
Customers that want to develop a BACnet-compliant device that will run on Microsoft Windows should also consider the B1091 BACnet Software for Windows (source code).
* NOTE: BACstac v7.10 supports the following object types: Analog Input, Analog Output, Analog Value, Averaging, Audit Log, Audit Reporting, Binary Input, Binary Output, Binary Value, Calendar, Command, Device, Escalator Group, Elevator-Group, Event Enrollment, File, Group, Life Safety Point, Life Safety Zone, Lift, Loop, Multi-state Input, Multi-state Output, Multi-state Value, Notification Class, Program, Pulse Converter, Schedule, Trend Log, Access Door, Event Log, Load Control, Structured View, Trend Log Multiple.
Also supports: Access Point, Access Zone, Access User, Access Rights, Access Credential, Credential Data Input, CharacterString Value, DateTime Value, Large Analog Value, BitString Value, OctetString Value, Time Value, Integer Value, Positive Integer Value, Date Value, DateTime Pattern Value, Time Pattern Value, Date Pattern Value, Network Security, Global Group, Notification Forwarder, Alert Enrollment, Channel, Lighting Output, Binary Lighting Output, Network Port, Elevator Group, Lift, Escalator, Accumulator, Network Security, Timer, Staging.
Services supported:
Alarm and Event Services – Acknowledge-Alarm, Confirmed-Cov-Notification, Confirmed-Cov-Notification-Multiple, Confirmed-Audit-Notification, Unconfirmed-Audit-Notifications, Audit-Log-Query, Confirmed-Event-Notification, Get-Alarm-Summary, Get-Enrollment-Summary, Get-Event-Information, Life-Safety-Operation, Subscribe-Cov, Subscribe-Cov-Property, Subscribe-Cov-Property-Multiple,
File Access Services – Atomic-Read-File, Atomic-Write-File,
Object Access Services – Add-List-Element, Remove-List-Element, Create-Object, Delete-Object, Read-Property, Read-Property-Multiple, Read-Range, Write-Property, Write-Property-Multiple,
Remote Device Management Services – Device-Communication-Control, Confirmed-Private-Transfer, Confirmed-Text-Message, Reinitialize-Device,
Unconfirmed Services – I-Am, I-Have, Unconfirmed-Cov-Notification, Unconfirmed-Event-Notification, Unconfirmed-Private-Transfer, Unconfirmed-Text-Message, Time-Synchronization, Who-Has, Who-Is, Utc-Time-Synchronization, Write-Group, Unconfirmed-Cov-Notification-Multiple, Who-Am-I and You-Are Services
🔁 Compare with Other BACstac Editions
| Feature | BACstac/32 | BACstac/Linux | BACstac/Win (B1091) |
|---|---|---|---|
| Target Platform | Embedded 32/64-bit | Linux Systems | Windows |
| Source Code | ✅ Yes | ✅ Yes | ✅ Yes |
| Routing Support | ✅ | ✅ | ✅ |
| Gateway Creation | ✅ | ✅ | ✅ |
| BTL Support | ✅ | ✅ | ✅ |
| BACnet/SC | ✅ | ✅ | ✅ |
General
| Operating system requirements | The target platform must support threads (tasks), semaphores, recursive mutexes, dynamic memory allocation, time, persistent storage (for configuration data), and the required network interfaces; please refer to the Porting Guide for more information. BACstac 7.10 has been verified on Debian GNU/Linux 11 (Bullseye), 12 (Bookworm), Ubuntu 24.04 (Focal), Ubuntu 22.04 (Jammy Jellyfish), Ubuntu 24.04 (Noble Numbat ), TM32F7 (ARM Cortex M7 + FreeRTOS + LWIP). For lower-end ARM Cortex M microprocessors (M0 to M4) suggest using uBACstac. |
| Development tools: | For Linux-based target platforms, supported development environments are gcc version 4.1 or later, Perl 5.6 or later (5.8 is recommended). BACstac/32 is good for Cortex M7. ARM Cortex family includes a very powerful Cortex-A series, which runs Linux and are perfectly supported by both BACstac/32 and BACstac/Linux.Apple |
Documentation
Porting Guide (included with purchase)
User’s Guide (included with purchase)

