knx stack (TP, IP and RF) for arduino and linux, Can be configured with ETS
Go to file
Ing-Dom 470ec8b521 this adds IP (WiFi and wired Ethernet) support to the rp2040 platform.
It includes also some optimizations for KNX-IP in general.

Squashed commit of the following:

commit 14bf9bef25ccc2c9bddefe7c8f1e0f6b1d63b3bc
Author: Ing-Dom <dom@ing-dom.de>
Date:   Sun Dec 24 10:17:05 2023 +0100

    clean up, remove KNX_LOG_IP

commit 57223e46e414010662772989c2520cf1960ed268
Merge: 2911448 a870dd8
Author: Ing-Dom <dom@ing-dom.de>
Date:   Sun Dec 24 10:10:19 2023 +0100

    Merge remote-tracking branch 'remotes/origin/master' into rp2040_ip

commit 2911448d22a454aacae472762677381acce6a159
Merge: 8ac6aec 3c29d16
Author: Dom <dom@ing-dom.de>
Date:   Wed Dec 20 10:04:32 2023 +0100

    Merge pull request #13 from OpenKNX/fix_serialnumber

    Fix serialnumber

commit 8ac6aeccce20a9e5e1bbf5300008a72383f7ee71
Author: Ing-Dom <dom@ing-dom.de>
Date:   Thu Dec 14 12:28:02 2023 +0100

    fix macAddress reading for Wifi

commit 9db2cd58708e9d7bbfd485ada2ff38c829447c42
Author: Ing-Dom <dom@ing-dom.de>
Date:   Tue Dec 12 13:08:53 2023 +0100

    remove LARGE_BUFFERS and clean up header files of ETHERNET_GENERIC

commit 2f229ae90c6f72e01c2a9b9efe134f75fc85547c
Author: Ing-Dom <dom@ing-dom.de>
Date:   Tue Dec 12 00:56:32 2023 +0100

    temporary fix, solution needed for tunneling

commit f6e7e619a454f43db10e644b41c58b43a1a2b453
Author: Ing-Dom <dom@ing-dom.de>
Date:   Mon Dec 11 13:54:26 2023 +0100

    unified approach for different ip stacks with rp2040 plattform

commit 4723edab84986bca6d31ea7b3083b1b7b8ef907e
Author: Marco Scholl <develop@marco-scholl.de>
Date:   Mon Dec 11 08:34:25 2023 +0100

    wip

commit 5bf3e615c8649dd9c34be7b1fe6ad4062ce96c34
Author: Ing-Dom <dom@ing-dom.de>
Date:   Thu Dec 7 14:53:42 2023 +0100

    ip and not ip in one rp2040 plattform

commit aaca34a237686c5389888b7bd040b860331bdbff
Merge: fd97f59 d44606d
Author: Dom <dom@ing-dom.de>
Date:   Wed Dec 6 15:30:17 2023 +0100

    Merge branch 'thelsing:master' into rp2040_lwip

commit fd97f5920ef486ca955f5425cbcaec062e3ef977
Author: Marco Scholl <develop@marco-scholl.de>
Date:   Thu Nov 30 23:19:13 2023 +0100

    dd sime ifdef to allow build without ip interface

commit c665a79db9cee7063dd77a155108633db81ef8e8
Author: Ing-Dom <dom@ing-dom.de>
Date:   Tue Nov 14 10:03:48 2023 +0100

    stub for handling SearchRequestExt to prevent console messages

commit 50745be66681616681f67d7bdf17008f5d19640d
Author: Ing-Dom <dom@ing-dom.de>
Date:   Tue Nov 14 00:02:49 2023 +0100

    adding ip support for rp2040 plattform
2023-12-24 10:20:23 +01:00
.github/workflows Update CodeQL (#219) 2022-10-22 14:18:55 +02:00
.vscode 32bit eeprom size (#230) 2023-02-13 21:39:30 +01:00
doc Update conf.py 2023-09-09 21:31:37 +02:00
examples H8I8O Example (#210) 2022-08-15 11:27:57 +02:00
src this adds IP (WiFi and wired Ethernet) support to the rp2040 platform. 2023-12-24 10:20:23 +01: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
.readthedocs.yaml Update .readthedocs.yaml 2023-09-09 21:16:48 +02:00
CMakeLists.txt fix knxPython build 2020-10-28 21:44:01 +01:00
library.properties Update library.properties 2020-06-19 21:57:46 +02:00
LICENSE
platformio.ini
README.md Update README.md 2022-08-15 11:31:29 +02: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.

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.