[FEATURE] Add BACnet stack support to NuttX
Is your feature request related to a problem? Please describe.
Currently, NuttX does not have native support for the BACnet protocol stack, which is widely used in building automation and control networks. Many embedded systems in industrial and IoT environments rely on BACnet for device interoperability, particularly for HVAC, sensors, and actuators.
Describe the solution you'd like
I propose adding official support for the BACnet protocol stack in NuttX, ideally as a configurable component or library that can be built through menuconfig. This would include:
Integrating an open-source BACnet stack (such as bacnet-stack [https://github.com/bacnet-stack/bacnet-stack]) into the NuttX apps repository.
Providing sample applications demonstrating basic BACnet functionality (e.g., reading/writing properties, object management, device discovery).
Implementing optional support for both MSTP (via UART) and BACnet/IP (via network stack).
Describe alternatives you've considered
No response
Verification
- [x] I have verified before submitting the report.
Hi @omar-faruk that is a good suggestion! Actually BACnet stack should work on NuttX with few or not modifications at all, since it is POSIX and works on Linux.
Do you (or your company) have experience with BACnet?
Yes, I'm personally working on some projects that require BACnet. I'm using the BACnet on an embedded Linux platform. I'm using this repo: https://github.com/bacnet-stack/bacnet-stack.
While working on this, I found it could be easily integrated with Nuttx.
bacnet-stack is GPL which is not the best solution for NuttX. Unfortunately, I think there is no BACnet implementation with a permissive license.
@omar-faruk is there some way to test BACnet without using a high price device?
@raiden00pl maybe we can include it depending on ALLOW_GPL license. Not ideal but will work for many users
@omar-faruk is there some way to test BACnet without using a high price device?
There is a BACnet device simulator using Python BAC0 library. Here is the simulator repo: https://github.com/Kretiss/BACnet-simulator