knx stack (TP, IP and RF) for arduino and linux, Can be configured with ETS
Go to file
Simon Billemont 29702f69c3
Fix #191 by initializing the platform pointer in all KnxFacade constructors (#198)
* Fix #191 by initializing the platform pointer in all KnxFacade constructors

* Revert "Fix #191 by initializing the platform pointer in all KnxFacade constructors"

This reverts commit adc05cfaf7.

* Alternative fix for #191 by initializing the platform pointer in KnxFacade(&bau) from the platform stored in bau
2022-04-19 09:51:36 +02:00
.github/workflows Add workflow for CC1310 example (#102) 2020-11-17 17:54:46 +01:00
.vscode Add support for CC1310 platform based on SimpleLink SDK (#94) 2020-11-10 21:52:38 +01:00
doc
examples fix constant comparison (#162) 2021-12-29 17:20:46 +01:00
src Fix #191 by initializing the platform pointer in all KnxFacade constructors (#198) 2022-04-19 09:51:36 +02:00
.clang-format
.gitattributes opt-out global KNX, ability to DIY construct knx object, minor cleanups (#121) 2021-02-05 15:57:45 +01:00
.gitignore opt-out global KNX, ability to DIY construct knx object, minor cleanups (#121) 2021-02-05 15:57:45 +01:00
CMakeLists.txt fix knxPython build 2020-10-28 21:44:01 +01:00
library.properties
LICENSE
platformio.ini
README.md Add callback functions for prog mode and improve documentation (#173) 2022-02-19 20:23:50 +01:00

knx

This projects provides a knx-device stack for arduino (ESP8266, ESP32, SAMD21, RP2040, STM32), CC1310 and linux. (more are quite easy to add) It implements most of System-B specification and can be configured with ETS. The necessary knxprod-files can be generated with my CreateKnxProd tool.

For ESP8266 and ESP32 WifiManager is used to configure wifi.

Don't forget to reset ESP8266 manually (disconnect power) after flashing. The reboot doen't work during configuration with ETS otherwise.

The SAMD21 version uses my version of the FlashStorage lib (Pull request pending).

Generated documentation can be found here.

Stack configuration possibilities

Specify prog button GPIO other then GPIO0:

knx.buttonPin(3); // Use GPIO3 Pin

Specify a LED GPIO for programming mode other then the LED_BUILTIN:

knx.ledPin(5);

Use a custom function instead of a LED connected to GPIO to indicate the programming mode:

#include <Arduino.h>
#include <Adafruit_NeoPixel.h>
#include <knx.h>
// create a pixel strand with 1 pixel on PIN_NEOPIXEL
Adafruit_NeoPixel pixels(1, PIN_NEOPIXEL);

void progLedOff()
{
  pixels.clear();
  pixels.show();
}

void progLedOn()
{
  pixels.setPixelColor(0, pixels.Color(20, 0, 0));
  pixels.show();
}

void main ()
{
 knx.setProgLedOffCallback(progLedOff);
 knx.setProgLedOnCallback(progLedOn);
 [...]
}

More configuration options can be found in the examples.