Releases: BaudBound/baudbound
Release list
v1.1.7 — WebSocket Triggers & Console Commands
What's New
WebSocket Trigger Source
- Events can now be triggered by incoming WebSocket messages in addition to serial input
- Built-in WebSocket server with optional token authentication (
AUTH:<token>handshake) - New WebSocket panel under the Triggers menu to configure host/port and connection status
Console Command System
- New interactive console with a modular command framework
- Commands:
devices,simulate,send,reload,events,webhook,ports,states,programs,exit - All command actions are silently logged to the log file
GUI Improvements
- All panels refactored from modal dialogs to floating, moveable windows — they can now be open simultaneously
- New Simulate panel to inject test events from any trigger source
- New States panel showing currently active event states
- Logs viewer added under the Debug menu
- Debug tools reorganized under a dedicated Debug menu
v1.1.6 — Console Command System & GUI Debug Tools
What's New
Console Command System
A fully modular console command system is now built into BaudBound. Type commands directly
into the terminal where the app is running. All commands support quoted names with
spaces (e.g. devices connect "My Device"), and every action is silently logged to the
application log file.
Available commands:
| Command | Description |
|---|---|
help |
List all available commands |
version |
Show running version and build date |
status [get|set <name>] |
Read or toggle named boolean statuses (e.g. status set gui false hides the window) |
devices [connect|disconnect <name>] |
List devices with connection status, or connect/disconnect by name |
ports |
List all serial ports currently visible to the OS |
events |
List configured events with condition and action counts |
simulate [<device>] <input> |
Inject a fake serial line through the event system — useful for testing without hardware |
send <device> <text> |
Write raw text to a connected serial device |
webhook [fire <name> [input]] |
List configured webhooks or fire one manually |
programs |
List configured programs |
states [clear <name>|all] |
Inspect or clear the runtime event state map |
reload |
Reload storage.json from disk without restarting |
update [check|install] |
Check for or download and install the latest release |
exit |
Save configuration, disconnect devices, and exit |
GUI — Simulate Dialog
A Simulate dialog is now available under the Debug menu. Select an optional device
context, type an input string, and click Fire to push it through the event system — same
as real serial input.
GUI — Debug Menu
The Debug menu consolidates all developer and diagnostic tools: Simulate, Logs, States,
and Debug Overlay.
Bug Fix
Fixed SocketTimeoutException on Linux when the background update checker ran at startup.
Caused by a 5-second HTTP timeout in the underlying library — bumped to 15 seconds via
foxlib 1.4.1.
v1.1.5 — Fix update check timeout on Linux
Bug fixes
- Fixed
SocketTimeoutException: Read timeoutwhen checking for updates on Linux — the
GitHub API request timeout was 5 s which was too short on some systems. Bumped to 15 s via
foxlib 1.4.1.
Improvements
- Fixed
SocketTimeoutExceptionon Linux when checking for updates — request timeout raised
from 5 s to 15 s - Added Logs viewer under Help → Logs — shows the in-session log with color-coded
entries (red for errors, yellow for warnings, green for info)
v1.1.4 — Auto-updater, CLI flags & Linux fixes
What's new
Auto-updater
- Background update check on startup (toggle in Settings → General)
- In-app download with progress bar and automatic restart via platform script
- Manual Check for Updates in the Help menu
- Update dialog shows current/latest version and full release notes
CLI flags
--nogui— headless mode, full serial processing with no window or tray icon--hidden— start minimized to the system tray--debug— enable the debug overlay on launch--version— print version and exit
Fixes & improvements
- Config directory moved to the platform standard location (
%APPDATA%\BaudBound/
~/.config/BaudBound/~/Library/Application Support/BaudBound) so autostart and manual
launches always share the same config - Linux: UI now scales correctly on HiDPI / fractional-scaled displays via
glfwGetWindowContentScale - Linux: fixed white border bleed-through on window edges
- Debug overlay toggle added to the Help menu as a quick shortcut
- Settings dialog now always reflects the current saved state when reopened
v1.1.3 — Debug Overlay, Graphics Settings & Linux Serial Fixes
What's New
Debug Overlay
A real-time debug overlay can now be enabled under Settings → Debug.
When active, two pinned windows appear on screen:
- Info panel — FPS (min/max/avg), frame time, heap & non-heap memory, JVM
runtime/threads/GC, OS/CPU info, connected devices, and event/state counts - Graphs panel — rolling plots for FPS, frame time, and heap memory usage
The graph sample interval is configurable in Settings so spikes are easier to catch.
Graphics Settings
A new Settings → Graphics section lets you control rendering performance:
- VSync toggle — locks the frame rate to your monitor's refresh rate
- FPS Limit slider (1–240) — caps the frame rate when VSync is disabled, reducing idle
CPU usage from 70–80% to near zero
Performance Improvements
- Regex patterns used in event conditions are now cached, avoiding recompilation on every
serial input - Event sort order is cached and only recomputed when events are modified
Bug Fixes
Linux Serial Port Fixes
- Fixed a crash on Linux when opening the device editor (ImGui
BeginDisabled/EndCombo
assertion) - Port dropdown now shows the system port name (e.g.
ttyUSB0) alongside the descriptive
name, making devices with misleading USB product strings (e.g. "USB Keyboard")
identifiable - Added an Info button next to Refresh that shows full port details: system name,
path, VID/PID, serial number, and location
Multi-Device Support & Event System Improvements
v1.1.2 — Multi-Device Support & Event System Improvements
New Features
Multi-Device Support
- Devices are now managed through a dedicated Devices dialog (Settings menu)
- Add, edit, and delete multiple serial devices, each with its own name, port, baud rate,
and serial settings - Connect and disconnect each device independently from the Devices dialog
- Auto-connect on startup works per device
- Ports already assigned to another device are shown as disabled in the editor to prevent
conflicts
New Conditions
- Device Equals — trigger only when input arrives from one or more specific devices; uses
a multi-select combo - Device Not Equals — trigger when input did not come from any of the selected devices
- State Not Equals — the inverse of State Equals; fires when the named state does not
match the expected value
New Action: Send to Device
- Write a command or data string to any connected serial device
- Supports
{input}and{timestamp}substitution in the data field
Improvements
Event Editor — split inputs for multi-value fields
Previously several fields required manually typing a |-separated string. These are now
separate labelled inputs:
- Show Notification — notification type dropdown (INFO / WARNING / ERROR / NONE) + message
field - Write to File / Append to File — file path field + optional content template field
- Set State — optional state name field + value field
- State Equals / State Not Equals — optional state name field + expected value field
Crash-safe single instance detection
The single-instance lock now uses a loopback socket handshake instead of a lock file, so a
crash or forced shutdown no longer prevents the app from starting again on next boot.
Release v1.1.1
- Fixed auto start not working the the pc crashes
- Renamed the main jar file to not have a version number for easier updates
Usage:
- Download the 'BaudBound.jar' file
- Run command 'java -jar BaudBound.jar'
- When the app starts to to settings and create shortcut
Release v1.1.0
What's New in 1.1.0
State System
Events can now share context across serial scans using named states.
- Set State action — stores a value under a named state (or the default state)
- Clear State action — removes a named or default state
- State Equals condition — matches when a named state holds a specific value
- State Is Empty condition — matches when a named state is unset
States use a name|value format. Omitting the name targets the built-in default state, so simple
use cases need no extra configuration.
Example use case: Scan a "move" command QR code to arm the move state, then scan an item QR code
— BaudBound will call a webhook instead of opening the URL. Scanning the item QR without the move
command behaves as normal.
States Dialog
A new States entry in the menu bar opens a live view of all currently active states. Individual
states can be cleared on the fly, or all states can be wiped at once.
Webhook URL Encoding
Webhooks now have a URL-encode variables checkbox. When enabled, the values substituted for
{input} and {timestamp} are percent-encoded before being inserted into the URL, headers, and body
— useful when passing serial data as a query parameter or path segment.
Release v1.0.0
First Release
Using instructions:
- Download the
baudbound-1.0.0.jarfile - Make a new directory somewhere where you want to keep the app
- Move the
baudbound-1.0.0.jarfile to that folder you created - Open terminal in that folder and run this command
java -jar baudbound-1.0.0.jar - After the app launches go to settings in the top menu and press the create shortcut button then you don't have to run this command anymore you can just use the shortcut