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

Connection to KNX

Since I use KNX as my main bus system it was obvious to try to connect both. During my research I came across a bus coupler 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.

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.

  • Version 1 is my choice and it seams to be very small but enought.
  • Version 2 is more complex and therefore probably more flexible but for my needs too much.

Component list

Assembly

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.

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

Arduino
Bus coupler
GND
GND (PIN 1)
RAW
5V VCC (PIN 5)
RX
TX (PIN 4)
TX
RX (PIN 2)


Connection of the 3.3V Arduino Pro Mini


or of the 5V Arduino Pro Mini Variant


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 .

Resume

Now you can send or receive KNX messages from your arduino program thru 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.