Releases: bluerobotics/pressboi
Releases · bluerobotics/pressboi
v1.10.2
v1.10.2 - Further reduce packet limits for USB reconnection robustness
v1.10.1
Added
- Extended watchdog breadcrumbs: Added
NETWORK_REFRESH,USB_SEND,USB_RECONNECT, andUSB_RECOVERYbreadcrumbs for finer-grained watchdog timeout diagnostics
Fixed
- CRITICAL: Unbounded network processing: Limited
EthernetManager::Refresh()to process maximum 10 packets per call, preventing watchdog timeouts when network accumulates many packets during USB reconnection - Unbounded UDP processing: Limited
processUdp()to process maximum 10 UDP packets per call, preventing main loop from blocking >128ms - USB recovery watchdog feeding removed: Removed watchdog feeds during USB port recovery operations - if USB operations hang, watchdog should fire to recover system (feeding defeats the purpose of the watchdog)
- Watchdog timeout on USB reconnection: USB host reconnection and message sending now properly tracked with breadcrumbs, allowing identification of exactly where blocking occurs
v1.10.0
Added
- Error logging system: Circular buffer with 100 entries (8.8KB) supporting DEBUG/INFO/WARN/ERROR/CRITICAL levels
- Heartbeat log: 24-hour USB/network status tracker (2880 × 8-byte entries, 23KB) recorded every 30 seconds
dump_error_logcommand: Retrieve diagnostic logs via USB or network- USB auto-recovery: Detects stuck TX buffer (2s timeout) and automatically reopens port with watchdog protection
Changed
- Motor fault detection: 500ms grace period after clearing faults prevents false alarms during status register stabilization
Fixed
- Watchdog timeout during USB recovery: Removed blocking delay and added watchdog feeds during port operations
- Double-reset requirement: Single RESET command now properly clears watchdog recovery state
- USB connection persistence: Auto-recovery eliminates need for power cycle after app restart
v1.9.0
Changed
- Multi-step command handling: Commands with
force_action=retractnow send a single DONE message only when the entire sequence (move + retract) completes- Move completion sends INFO message: "Move complete, retracting..." or "Force limit reached, retracting..."
- DONE message sent only when retract finishes, using original command name (e.g.,
DONE: move_abs) - Simplifies app-side logic - app waits for one DONE per command regardless of internal steps
- Makes firmware responsible for its own multi-step command flow
v1.8.3
[1.8.3] - 2025-11-19
Fixed
- Watchdog timeouts: Fixed watchdog timer triggering during USB host detection and reconnection by queueing messages instead of blocking on
ConnectorUsb.Send() - USB reconnection: USB host reconnection message now only sends when sufficient buffer space is available (>40 bytes) to prevent blocking
v1.8.0
Fixed
- USB buffer improvements: Implemented automatic USB host connection detection to prevent buffer overflow
- Message filtering: Firmware now only sends USB/network messages when respective interfaces have active listeners
Changed
- Device naming portability: Replaced hardcoded "PRESSBOI" strings with
DEVICE_NAME_UPPERandDEVICE_NAME_LOWERdefines fromconfig.h
v1.7.0
Changed
- Device definition restructuring: Moved device definition from Equipment Control App to firmware repository
- Command definitions, telemetry schemas, and GUI layouts now live in
pressboi/definition/folder - Versioning of device protocol now happens alongside firmware
- Equipment Control App automatically discovers and loads definitions from device paths
- Supports both standalone definition folders and definitions embedded in firmware repos
- Command definitions, telemetry schemas, and GUI layouts now live in
Fixed
- USB telemetry: Fixed firmware not sending telemetry over USB serial when GUI not discovered via network
- USB message buffer: Implemented chunked message sending for telemetry packets larger than 64-byte USB CDC buffer
- Network discovery: Fixed firmware accepting discovery commands even when GUI already discovered, allowing reconnection
- Retract position telemetry: Fixed
retract_posreporting garbage values when motor not homed (now reports 0.0) - Dual connection support: Both USB and network telemetry now stream simultaneously when both connections present
v1.6.1
Changed
- Repository structure: Reorganized project layout - moved libraries to
lib/folder and flattenedpressboi/subfolder to root - Build system: Updated project paths to reflect new library locations
v1.6.0
Added
- Endpoint telemetry: New
endpointvariable records the exact position (mm) where press moves stop
Fixed
- CRITICAL: Fixed infinite retract loop that caused watchdog timeouts when using
retractorabortforce actions. - Fixed
abortforce action to only trigger retract when force limit is actually hit. Previously,abortaction would retract even when the move completed normally without hitting the force limit. - Fixed zero-step moves causing timeout errors. Moves with 0 steps now immediately return
DONEinstead of attempting to execute and timing out.
Changed
- Updated
force_actionparameter documentation to clarify behavior:retractalways retracts on any completion,abortonly retracts when force limit is hit.
v1.5.0
Added
- USB serial communication: Commands and telemetry now mirrored to USB serial (ConnectorUsb) alongside network communication
- Dual-channel command processing: USB commands processed identically to network commands through unified dispatcher
Changed
- Lowercase status text: Main state and motor status use lowercase for consistency (
standby,busy,error,enabled,disabled,homed,not homed) - USB processing limit: Characters per call capped at 32 to prevent watchdog timeout (128ms threshold)