Arduino and KNX

Arduino is a hardware platform based on an Atmel processor which can be programmed via an IDE. It runs no operating system on it, just a very tiny bootloader which directly starts its own program. With a variety of I / O ports, which can be directly addressed, it is perfect as a sensor and control platform

Arduino Pro Mini

Connection to KNX

Since I use KNX as my main bus system, I ask myself how to connect it. During my research I came across a knx bus connector from Siemens. A voltage of 5 V as well as a serial interface is provided via the pin header of the bus coupling unit. Thus no additional voltage supply is necessary.

Siemens Serial / KNX bus connector assembled

Chosse the right arduino board

First you need to decide on a hardware version. For me the Arduino Pro Mini fits perfect. It is available in a energy-saving variant with 3.3V which consumes under full load just 4,47mA. This can be further optimized.

API to control the bus coupler

There are 2 community projects which offers an API to access the bus coupler from your Arduino program.

Component list


First, the pin connector on the front of the bus coupler is unsoldered and on the back a new 5-pin header is soldered . In addition, you must cut, with a sharp knife or scalpel, a small opening for the new pin strip.

KNX bus connector disassembled KNX bus connector with removed plug KNX bus connector backside

Now you can connect the bus coupler with Arduino using the pin header cable and the following pins

ArduinoBus coupler

Arduino circuit diagram for 3.3V
Connection of the 3.3V Arduino Pro Mini

Arduino circuit diagram for 5.0V
or of the 5V Arduino Pro Mini Variant

Arduino Pro Mini connected with the KNX bus connector
and the final solution.

A careless mistakes at the beginning, which cost me 2 hours, was the wrong connection of the serial port between the bus coupler and Arduino.
**The pins RX and TX need to be crossed **.


Now you can send or receive KNX messages from your arduino program through the KNX bus. In this way, data measured by the Arduino can be sent periodically or, if the Arduino Board is programmed as a listener, messages can also be received and trigger switching operations.
In my case the Arduinoboard periodically sends sensor data which are received by openHAB with its KNX Binding.

All together is small enough to fit comfortably in a 40 mm flush-mounted box.

A first scenario are my different sensors. However, an infinite number of other possibilities are conceivable thanks to the flexibility of Arduino.