8b9ff4fce1
* Add defines for LED, button and serial port To make supporting different board layouts easier, this introduces some new defines: For all platforms: - `KNX_LED` - the programming LED, defaults to `LED_BUILTIN` - `KNX_BUTTON` - the programming button, defaults to `0` For Arduino platforms: - `KNX_DEBUG_SERIAL` - the serial port that is used for debugging, defaults to `Serial` - `KNX_SERIAL` - the serial port used for communication with the TPUART, default depends on platform * GD32 flash workaround Addressing #181 At least some GD32 devices seem to require unlocking the flash twice. As the unlock function exits with `HAL_OK` if the flash is already unlocked, STM32 devices can run the same code without issues. * Add H8I8O and H8C09 configurations to knx-demo Addressing #181 These configurations both serve as examples for the use of these boards and other custom boards that don't use the standard pinout. * Add STM32 unlock target This copies the brute force unlock approach by @pavkriz into a custom target. With this commit, it is possible to automatically unlock e.g. a H8I8O board without leaving the PlatformIO IDE. See #181 |
||
---|---|---|
.github/workflows | ||
.vscode | ||
doc | ||
examples | ||
src | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
library.properties | ||
LICENSE | ||
platformio.ini | ||
README.md |
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.