Skip to content

Releases: bluerobotics/pressboi

v1.10.2

21 Nov 00:15

Choose a tag to compare

v1.10.2 - Further reduce packet limits for USB reconnection robustness

v1.10.1

20 Nov 21:44

Choose a tag to compare

Added

  • Extended watchdog breadcrumbs: Added NETWORK_REFRESH, USB_SEND, USB_RECONNECT, and USB_RECOVERY breadcrumbs 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

20 Nov 05:43

Choose a tag to compare

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_log command: 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

19 Nov 23:59

Choose a tag to compare

Changed

  • Multi-step command handling: Commands with force_action=retract now 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

19 Nov 07:09

Choose a tag to compare

[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

19 Nov 00:39

Choose a tag to compare

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_UPPER and DEVICE_NAME_LOWER defines from config.h

v1.7.0

18 Nov 22:27

Choose a tag to compare

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

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_pos reporting 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

17 Nov 22:24

Choose a tag to compare

Changed

  • Repository structure: Reorganized project layout - moved libraries to lib/ folder and flattened pressboi/ subfolder to root
  • Build system: Updated project paths to reflect new library locations

v1.6.0

17 Nov 18:08

Choose a tag to compare

Added

  • Endpoint telemetry: New endpoint variable records the exact position (mm) where press moves stop

Fixed

  • CRITICAL: Fixed infinite retract loop that caused watchdog timeouts when using retract or abort force actions.
  • Fixed abort force action to only trigger retract when force limit is actually hit. Previously, abort action 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 DONE instead of attempting to execute and timing out.

Changed

  • Updated force_action parameter documentation to clarify behavior: retract always retracts on any completion, abort only retracts when force limit is hit.

v1.5.0

14 Nov 02:23

Choose a tag to compare

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)