busware

TULX — firmware

Bus-powered KNX TP device with Wi-Fi. No USB — firmware is installed from the device itself.

Installing firmware

There is nothing to flash on this page. The TULX has no USB port; it carries a recovery system that installs firmware over your network. This page publishes the images and explains how to build your own.

  1. Start the recovery. A new TULX ships without an application and starts in the recovery by itself. Later, hold the button S1 while connecting the KNX bus and keep it held for 5 s — the LED lights up when it has taken. From a running busware application, its web page has a Restart into recovery button.
  2. Connect. Without a known network, and always while no application is installed that starts, the recovery opens the access point TULX32-Recovery-xxxx — without a key as delivered — with its page at http://192.168.4.1/. Scan for your network there and join it; the page then shows the device's new address. Until an application is installed that starts, the access point stays open, so you can go on with the next step on the same page.
  3. Install. Under Install from busware press Check online and pick an image — the device downloads it and checks it itself. Without internet access, download a .bin below and upload it under Install from a file.
  4. Leave. An installed image starts by itself and runs on your network; the recovery page names the address it will most likely have there. Start application returns to the installed one without changing anything; after 15 minutes without activity the recovery does that on its own.

Access-point key and factory reset

The recovery's access point is open as delivered, so the device stays reachable when it has no network. Give it a key under Recovery access point on the recovery page if you want to close it.

Factory reset: while the recovery is running, hold S1 for 10 s until the LED stays on, then release it. This erases the installed application with all its settings (the KNX configuration included), the Wi-Fi settings and the access-point key. The recovery itself stays: the device comes back as delivered, with its access point open, and an application can be installed again.

Images

FileApplicationVersionSizeMD5

These are application images, not full flash images. The recovery checks the MD5 from the manifest before it starts what it wrote.

Your own firmware

Any ESP32-C6 application can run on the TULX. It is installed like the images above (Install from a file); an image without the busware marker is installed after you confirm it. Checked with ESP-IDF 5.5 and Arduino-ESP32 3.x.

What the recovery accepts

Partition table and linking

The partition table is fixed on the device. Build against it: partitions_tulx.csv

NameOffsetSizeUse
nvs0x900020 KiBNVS — yours, and where the Wi-Fi driver keeps the network
otadata0xE0008 KiBstart selection
ota_00x100002 528 KiByour application
storage0x288000128 KiBLittleFS — yours
actor_db0x2A800032 KiBNVS used by busware applications
factory0x2B00001 280 KiBthe recovery — do not touch
prov0x3F00004 KiBstart pass — do not touch
rcfg0x3F10004 KiBaccess-point key of the recovery — do not touch
coredump0x3F200056 KiBcore dump

PlatformIO (Arduino):

[env:tulx]
platform  = <an Arduino-ESP32 3.x platform, e.g. pioarduino>
board     = esp32-c6-devkitc-1
framework = arduino
board_build.flash_size = 4MB
board_build.partitions = partitions_tulx.csv
; do not add -DARDUINO_USB_CDC_ON_BOOT=1 -- Serial has to stay on UART0

ESP-IDF (sdkconfig.defaults):

CONFIG_IDF_TARGET="esp32c6"
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_tulx.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
CONFIG_ESP_CONSOLE_UART_NUM=0

Upload the application image: .pio/build/tulx/firmware.bin (PlatformIO) or build/<project>.bin (ESP-IDF).

Hardware

PartConnection
MCUESP32-C6FH4, 4 MB flash in the package
KNX transceiverNCN5130 in TP-UART mode: GPIO4 = ESP TX → NCN RXD, GPIO5 = ESP RX ← NCN TXD, 38 400 baud 8E1 (set by the hardware)
LEDGPIO8, active low
Button S1GPIO14, active low with an external pull-up. At start-up it is the recovery button (5 s).
ConsoleUART0, on the service connector only — there is no USB

Rules for the TULX

Machine-readable index: manifest.json · partition table: partitions_tulx.csv