DALI stands for "Digital Addressable Lighting Interface".
Several years ago I heard that abbreviation for the first time when I had a necessity to develop some devices communicating via DALI bus.
Usually any development starts with tools collection. That's what I did that time as well: sourced on the web a used Tridonic DALI dimmer to be used as a slave device and started experimenting with emulation of DALI master device as I needed a working chain matser-slave for further slave development. Masters were quite pricey. So following that and "The tools don’t make the craftsman; the craftsman makes the tools" as excuses I made about what this project includes. Later I used it in more DALI projects, integrated it with different applications, used with Home Assistant and it always showed satisfying results so I guess it can be published.
The hardware includes:
- DALI physical interface;
- STM32 MCU transmitting DALI commands and reading the data from the bus;
- USB interface for communication with USB host (working as VCP - Virtual COM port)
- DALI bus power supply.
The power supply, by the way, was another reason to build the device. If you never touched the topic - DALI bus has to be externally powered. So basically connecting 2 devices together and powering them is nit enough, you need to power the data line as well with 16V and controlled current. Instead of having one more external PSU I wanted it to be part of the adapter and included it.

The commands transmitted over VCP corresponds to standard Modbus RTU protocol. The examples and the description of the protocol conversion can be found in attached pdf file. Using Modbus RTU instead of implementing some custom protocol seemed quite beneficial in my opinion as Modbus is widely supported by different systems. This, for example, allowed later to use adapter easily with Home Assistant and OpenHab. As well as creating a DIN-rail version with RS485 instead of USB (possibly will be published later). The somple C# software with GUI included in th repo was created "for internal use", and the GUI is far from modern commercial product. Nevertheless, it met my needs for development process. The repo includes C# source files.
even_notodd
Bitmerse LLP
Vitaly Kornilov
gruenst
Krists