Added checks for RF 0x27B0 as that should work ootb I suppose.
Builds and uploads successfully.
Gives the debug output "ERROR, RF transceiver not responding" since I have no RF hw to test.
Same goes for the TP 0x07B0. Build and uploads successfully.
Gives the debug output "ERROR, TPUART not responding" since no I have no TP uart hw to test.
Removed unnecesary Qspi stuff for now. Compiles fine for samd51 and samd21. Have no samd21 platform or tpuart to do thorough testing but nothing fundamental was changed in samd_platform other than the ifdef checks.
Now checking for __SAMD21__ and __SAMD51__ in knx_facade, samd_platform (samd21) and samd51_platform (samd51)
Preparation for external flash functionality in platform.h
* RP2040 EEPROM/Flash compiler flag fix
only check flash size if Flash is used, not EEPROM
* RP2040 EEPROM/Flash compiler flag fix
use EEPROM emulation as default to allow build of the knx-demo (memory.h defines EEPROM size 1024 which doesn't work with Flashsize 4k)
* Update rp2040_arduino_platform.h
* 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
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* progbutton fix
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* Update knx_facade.h
Remove superfluous attribute _buttonPinInterruptOn
* Update knx_facade.h
attachInterrup on CHANGE for progbutton detection
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* Code style fix
- happens just with large applications
- occured mainly on SAMD platform
- new crc16ccitt algorithm without additional buffer
- reorder groupObjTable in memory for less fragmentation
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
* 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
* GroupObjects can communicate internally
- GroupObjects use callback infrastructure also during write to bus
- external and internal write of a GO can be handled identically
- needs #define INTERNAL_GROUPOBJECT
* FIX-Works now also if SMALL_GROUPOBJECT is not set
* Remove #ifdef INTERNAL_GROUPOBJECT
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
* Feature: Allow additional version check on startup
- added versionCheckCallback
- added apiVersion to DeviceObject
- added new versionCheck to memory,cpp
* updated source code formatting
* changes for PR
- (old) version is again part of version check
- naming conventions
* forgotten parameter in callback
* correct wrong buffer initialization
* version <-> apiVersion swapped
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
* solves #178 bugfix when sending frames > 63 byte, missing masking of upper bits after sending a U_DataOffset
* also masked U_L_DATA_END_REQ correctly
* used bit masking instead of %
* save WIP on flash api + header reorder
* reduce diffs to master
* added support for RP2040 (Raspberry Pi Pico)
* support DPT9.009 (airflow) and DPT9.029 (absolute humidity)
* added support for RP2040 (Raspberry Pi Pico) (#145)
* worked on flash implementation
* worked on flash implementation
* added malloc for _EraseBlockBuffer, fixed some bugs
* fixed memoryread and crash while loading KOs (+debugstuff)
* some fixes and debugs
* align to pagesize
* clean up debug stuff, comments ...
* added support for both Eeprom and Flash (NvMemoryType) plattforms.
* changed memoryReadIndicationP to memoryReadIndication
added stdlib and defines
* fixed std::min
* another try for fixing the min problem
* rolled back linux plattform to eeprom
* comments only, hints for plattforms
* bugfix when calculating memorywrites over multiple blocks by mumpf
* added support for EEPROM-Emulation / RAM-buffered Flash
improvements in RP2040 plattform
* fixed typo in KNX_FLASH_OFFSET
* - writebuffersize clarified (PR discussion)
- changed alignment from flashpagesize to 32bit
- added override modifier (PR discussion)
- changed comment regarding flash/eeprom functions for plattforms to override/implement (PR discussion)
* resolved CodeFactor issue
Co-authored-by: Thomas Kunze <thomas.kunze@gmx.com>
* added support for RP2040 (Raspberry Pi Pico)
* support DPT9.009 (airflow) and DPT9.029 (absolute humidity)
* adapted to work with the latest arduino-pico core V1.11.0
- setPollingMode for knxSerial