The daemon reads its configuration from a TOML file. The default path is
/etc/ht32-panel/config.toml. You can specify an alternative path as a
command-line argument:
ht32paneld /path/to/config.toml
The full default configuration file:
# HT32 Panel Daemon Configuration
# Web Server Configuration
[web]
# Enable the web server (disabled by default)
enable = false
# Server listen address
listen = "[::1]:8686"
# Display refresh interval (milliseconds, 500-10000)
refresh_interval = 2500
# Heartbeat interval (milliseconds)
heartbeat = 1000
# Device Configuration
[devices]
# LCD device path or "auto" for auto-detection by VID:PID
lcd = "auto"
# Serial port path for LED controller (CH340)
led = "/dev/ttyUSB0"
# Note: LED theme, intensity, and speed are stored in the state directory.
# Use `ht32panelctl led set <theme>` to change them.
# Canvas Configuration
[canvas]
width = 320
height = 170
[web] — Web Server| Key | Type | Default | Description |
|---|---|---|---|
enable | bool | false | Enable the HTMX web UI for monitoring and controlling the panel |
listen | string | "[::1]:8686" | Address and port the web server listens on |
refresh_interval — Display Refresh| Key | Type | Default | Description |
|---|---|---|---|
refresh_interval | integer | 2500 | Display refresh interval in milliseconds. Valid range: 500–10000 |
heartbeat — Heartbeat Interval| Key | Type | Default | Description |
|---|---|---|---|
heartbeat | integer | 1000 | Heartbeat interval in milliseconds |
[devices] — Hardware Devices| Key | Type | Default | Description |
|---|---|---|---|
lcd | string | "auto" | LCD device path, or "auto" to auto-detect by USB VID:PID (04D9:FD01) |
led | string | "/dev/ttyUSB0" | Serial port path for the CH340 LED controller |
LED theme, intensity, and speed are stored in the daemon state directory, not in the config file.
Use ht32panelctl led set <theme> to change them at runtime.
[canvas] — Display Canvas| Key | Type | Default | Description |
|---|---|---|---|
width | integer | 320 | Canvas width in pixels |
height | integer | 170 | Canvas height in pixels |
The daemon exposes the org.ht32panel.Daemon1 D-Bus interface for
inter-process communication. The CLI tool ht32panelctl uses this interface
to control the daemon.
Configure the bus type with services.ht32-panel.dbus.bus in your Nix configuration.
Valid values are "system", "session", or "auto".
The daemon needs access to two USB devices:
04D9:FD01The installed packages (.deb, .rpm) include udev rules that grant access to these devices. On NixOS, enable udev rules in your configuration:
{ inputs, ... }:
{
imports = [ inputs.ht32-panel.nixosModules.udevRules ];
services.ht32-panel.udevRules = {
enable = true;
group = "users"; # group that gets device access
};
}
The group option controls which Unix group receives read/write permissions
on the hardware devices. Users must be members of this group to run the daemon
without root privileges.