Skip to content

Releases: P0k3sm0t/Ray5-Pilot

Ray5 Pilot V1.2.4

26 May 23:28

Choose a tag to compare

Ray5 Pilot v1.2.4 is a quick follow-up release to v1.2.3. It fixes release-package and update-related issues found during final fresh ZIP testing.

Fixed
Fixed first-run Settings behavior so a fresh install can save the Ray5 IP after config.json is created from config.example.json.
Fixed release ZIP validation so tools/safety_check.py can run from an extracted release package without requiring .git or .gitignore.
Hardened updater ZIP extraction to avoid unsafe ZIP paths during update installs.
Preserved Linux executable permissions for start-ray5-pilot.sh in the release ZIP.
Cleaned up placeholder/default values used in example configuration files.
Confirmed release ZIP packaging excludes local/private runtime files such as config.json, logs, .git, pycache, dist, captures, timelapse output, and job folders.
Why this release came so soon after v1.2.3
v1.2.3 added the main cross-platform camera, timelapse, Linux launcher, and release packaging improvements. During fresh Windows and Linux ZIP testing, a few packaging and first-run setup issues were found that should be fixed before wider use. v1.2.4 ships those cleanup fixes so new users have a smoother first-run experience and the updater/release package checks are more reliable.

Ray5 Pilot V1.2.3

26 May 20:07

Choose a tag to compare

Ray5 Pilot v1.2.3

Ray5 Pilot v1.2.3 is a stability and cross-platform cleanup release focused on camera capture, timelapse reliability, Linux launcher support, release packaging, and status monitor configuration.

Highlights

  • Added a cross-platform file/folder open helper for Windows, Linux, and macOS.
  • Added a Linux/macOS launcher script: start-ray5-pilot.sh.
  • Improved Linux startup by creating and validating a Python virtual environment before launching.
  • Added release ZIP packaging support for the Linux launcher and platform helper files.
  • Improved manual camera snapshots so they use the live preview frame first when available.
  • Improved timelapse frame capture so it uses the same safe camera capture path instead of calling removed/private capture methods.
  • Preserved RTSP camera config exactly as entered by the user.
  • Improved ffmpeg RTSP handling by trying the raw URL first and only using encoded credential fallback on authentication-related failures.
  • Hardened ffmpeg error logging so RTSP usernames/passwords are not exposed in logs.
  • Added status monitor settings to the Settings page:
    • Active Job Poll Interval
    • WebSocket Ping Interval
    • WebSocket Ping Timeout
  • Added config defaults for the new status monitor settings in both config.example.json and DEFAULT_CONFIG.
  • Updated safety checks to cover repo/release inclusion, platform open handling, camera snapshot architecture, timelapse capture path, ffmpeg hardening, and config key coverage.

Camera and Timelapse Improvements

Manual snapshots now prefer the latest live preview frame when the camera preview is active. This avoids opening a second RTSP/ffmpeg connection when the app already has a valid camera frame.

Timelapse capture now uses a public camera capture path and supports the same cache-first behavior. This fixes the regression where timelapse could fail with a missing _capture_bytes method after the camera capture refactor.

Linux Support

The new start-ray5-pilot.sh launcher helps Linux users start Ray5 Pilot more easily. It creates a .venv if needed, checks that pip is available, installs requirements, creates config.json from config.example.json if missing, opens the Web UI when possible, and starts the app.

On Debian/Ubuntu-based systems, users may need to install venv support first:

sudo apt update
sudo apt install python3-venv python3-pip

Ray5 Pilot V1.2.2

24 May 17:38

Choose a tag to compare

Ray5 Pilot v1.2.2

This release focuses on long-job stability and reducing unnecessary ESP32 traffic during active SD card jobs.

Highlights

  • Reduced Ray5 ESP32 load during long jobs.
  • Skips heavy SD/system-check probing while a job is active.
  • Slows live status polling during active jobs.
  • Disables Python WebSocket auto-ping by default.
  • Serializes Ray5 HTTP requests through a shared request lock.
  • Displays Status card Run Time as HH:MM:SS.
  • Adds safety-check markers to protect these long-job stability changes.

Why Update?

This version is intended to help with cases where the Ray5 continues running a long SD job, but Ray5 Pilot loses live WebSocket/status updates and falls back to offline/safety-lockout behavior.

Validation

Recommended validation before publishing:

python tools/safety_check.py
python -m py_compile app.py ray5_client.py ray5_status_monitor.py tools/safety_check.py
node --check web/static/app.js

Ray5 Pilot V1.2.1

22 May 21:13

Choose a tag to compare

Ray5 Pilot v1.2.1

Ray5 Pilot v1.2.1 improves Dashboard job-status accuracy, laser/air reporting, Upload + Run reliability, emulator compatibility, and release validation.

Highlights

  • Added native Ray5 [ESP220]/filename SD start support.
  • Improved Upload + Run so jobs start correctly after upload.
  • Improved live progress tracking using Ray5 websocket SD:<percent>,<file> status.
  • Added Pilot-local Run Time tracking instead of relying on Ray5 controller time: values.
  • Simplified Dashboard Laser display to clear On / Off status.
  • Added separate Laser Power display based on commanded S value and $30 max power.
  • Added smoothing so Laser status does not flicker Off during brief travel/blank samples.
  • Improved Air Pump status using Ray5 A: accessory flags.
  • Cleaned up the Dashboard Status card by removing low-value rows.
  • Improved displayed file names by hiding the leading / while preserving backend paths.
  • Expanded safety checks to cover the new v1.2.1 behavior.

Fixed

  • Fixed Upload + Run not starting correctly in emulator/testing flows.
  • Fixed progress reporting differences between Pilot and the native Ray5 ESP32 page.
  • Fixed Run Time showing Ray5 controller time instead of actual job runtime.
  • Fixed Air Pump staying On after normal job completion.
  • Fixed Laser status and Laser Power appearing misleading during active jobs.
  • Fixed Dashboard file display showing /filename.gc instead of filename.gc.

Notes

  • Laser status and Laser Power are based on Ray5 status flags and commanded values, not physical optical feedback.
  • Run Time is measured locally by Ray5 Pilot from observed job state changes.
  • Progress is based on Ray5 live websocket SD: percent reporting when available.
  • Existing configuration and runtime folders are preserved during updates.

Release Assets

Upload both files:

  • Ray5-Pilot-v1.2.1.zip
  • Ray5-Pilot-v1.2.1.zip.sha256.txt

SHA256:

85fd1ea3b5caa38712b20f69d33c6e86db3f9cd23158158f7badbee0ce9fe7e8  Ray5-Pilot-v1.2.1.zip

Ray5 Pilot V1.2.0

22 May 00:13

Choose a tag to compare

v1.2.0

Ray5 Pilot v1.2.0 focuses on reliability, update handling, safer backups, improved GRBL and ESP32 status visibility, and stronger local-app hardening.

Added

  • Added a GRBL Version card to the GRBL page.

    • Collects $I identity/version information during GRBL refresh.
    • Displays firmware version, options, board, machine, software version, wavelength, working size, STA network info, and AP network info.
    • Includes a collapsed raw $I output section.
    • Redacts sensitive values such as AP password from raw identity output.
  • Added Air Pump status tracking to the Dashboard status card.

    • Tracks M8 as Air Pump On.
    • Tracks M9 as Air Pump Off.
    • Parses $G parser state to confirm M8 / M9 when available.
    • Shows the air pump state as On, Off, or Unknown.
  • Added a safe /api/status/live endpoint for UI websocket status display.

    • Provides only the status fields needed by the UI.
    • Keeps internal debug details out of normal page data.
  • Added config-gated debug endpoints.

    • Debug endpoints now default to disabled.
    • Debug endpoints can be enabled in config when needed.
    • Optional localhost-only behavior is supported.
  • Added a simple state-changing request guard.

    • POST, PUT, PATCH, and DELETE requests now require a Ray5 Pilot request header.
    • Helps reduce accidental or cross-site triggering of machine-control endpoints.
  • Added minimal HTTP security headers.

    • Adds X-Content-Type-Options, X-Frame-Options, Referrer-Policy, and Permissions-Policy.
    • Adds no-store cache headers for sensitive API/debug-style routes.

Changed

  • Updated the self-updater to use a package-driven copy system.

    • The updater now installs files included in the release package instead of relying on a fixed old allowlist.
    • New shipped files, templates, static assets, and tools are copied automatically.
    • Runtime/user files remain protected.
  • Improved updater safety.

    • config.json is preserved during updates.
    • Runtime folders such as backups, logs, captures, timelapse, watched jobs, imported jobs, rejected jobs, and update work folders are protected.
    • Existing files are backed up before overwrite.
    • New files are logged during update.
    • Zero-copy updates are treated as failures.
    • Required templates are validated after update copy.
  • Improved release packaging.

    • Release zip builder uses the VERSION file automatically.
    • Release zips use a single top-level folder for updater compatibility.
    • Release zips include Ray5 Pilot.exe, VERSION, app files, tools, templates, and static assets.
    • Release zips exclude runtime folders, backups, logs, caches, and config.json.
    • SHA256 checksum files are generated automatically.
  • Improved ESP32 WebSocket Status display.

    • The ESP32 page now reads the safe status payload correctly.
    • WebSocket connected state, PAGEID, state, MPos, WPos, feed, spindle, reconnect count, and last raw status display correctly.
  • Improved ESP32 backup safety.

    • ESP32 manual backups and automatic pre-save backups now redact sensitive values before writing to disk.
    • Passwords, pass fields, tokens, keys, secrets, and auth values are masked.
    • Sensitive raw_value fields are no longer stored in plaintext.
  • Improved update asset safety.

    • GitHub release ZIP and checksum URLs are now validated before the updater is launched.
    • SHA256 verification remains in place.

Fixed

  • Fixed ESP32 WebSocket Status card incorrectly showing disconnected even when websocket status was live.
  • Fixed the updater missing new files added after older releases.
  • Fixed release packaging so future files included in the release zip are installed automatically.
  • Fixed sensitive ESP32 backup data being stored in plaintext.
  • Fixed update handling that could previously report success when no files were copied.
  • Fixed 1.1.8-to-newer update compatibility issues caused by older updater behavior.
  • Fixed missing-template risk for the ESP32 page by keeping an embedded fallback for older updater compatibility.

Safety and Reliability Notes

  • ESP32 and GRBL saves continue to create automatic local backups before writing settings.
  • ESP32 backups now redact sensitive values before being written to disk.
  • Debug endpoints are now disabled by default.
  • State-changing requests now require a Ray5 Pilot request header.
  • The Air Pump status is a command/parser-state tracker. It shows what the controller was told or reports through parser state; it is not physical electrical feedback from the pump.
  • Existing user configuration and runtime folders are preserved during updates.

Ray5 Pilot V1.1.9

21 May 15:28

Choose a tag to compare

Ray5 Pilot v1.1.9

Ray5 Pilot v1.1.9 adds the new ESP32 / ESP3D tools, improves the GRBL settings workflow, adds safer automatic backups, cleans up release packaging, and improves the settings page layouts.

Highlights

  • Added a new ESP32 / ESP3D page.
  • Renamed Firmware Settings to GRBL.
  • Added editable ESP32 EEPROM settings.
  • Added automatic local backups before ESP32 and GRBL settings are saved.
  • Added centralized backup folders and backup retention.
  • Added clean release zip packaging with SHA256 checksum generation.
  • Improved GRBL and ESP32 page layouts.

Added

  • New ESP32 / ESP3D page.
  • ESP3D info display using [ESP800].
  • ESP32 EEPROM/settings display using [ESP400].
  • ESP32 EEPROM save support using [ESP401].
  • ESP32 websocket status summary with PAGEID, machine state, MPos, feed/spindle, and raw status.
  • ESP32 command box for G-code commandText commands and ESP commands.
  • Automatic local backup before ESP32 setting saves.
  • Automatic local backup before GRBL setting saves.
  • Centralized backup folder structure:
    • backups/esp32/
    • backups/grbl/
    • backups/updates/
  • Backup retention using configurable max_keep_backups, defaulting to 15.
  • Release zip builder script:
    • tools/make_release_zip.py
  • SHA256 checksum .txt generation for release zips.
  • Release package now includes Ray5 Pilot.exe.

Changed

  • Renamed the user-facing Firmware Settings page to GRBL.
  • Updated README and UI text to use GRBL naming.
  • Updated GRBL page layout to better match the ESP32 page.
  • Updated ESP32 page to open in an editable settings layout.
  • Simplified ESP32 backup controls.
  • Improved dark-theme styling for GRBL and ESP32 tables.
  • Release zip now excludes development/runtime files such as:
    • .git
    • __pycache__
    • backups
    • logs
    • runtime folders
    • config.json

Fixed

  • Fixed ESP32 ESP command transport to use commandText= for Ray5-compatible ESP commands.
  • Fixed EEPROM options displaying as [object Object].
  • Fixed ESP3D info parsing from raw [ESP800] output.
  • Fixed backup folder handling after moving backups under one root folder.
  • Fixed release zip missing Ray5 Pilot.exe.
  • Fixed release zip missing SHA256 checksum output.

Safety Improvements

  • ESP32 settings are backed up automatically before save.
  • GRBL settings are backed up automatically before save.
  • Saves abort if the automatic backup fails.
  • Sensitive ESP32 values such as passwords remain masked in the UI and logs.
  • Backup folders are excluded from release packages.
  • Backup retention prevents backup folders from growing indefinitely.

Notes

  • The GRBL page was previously called Firmware Settings.
  • Manual Download Backup creates a user copy.
  • Automatic backups are stored locally before settings are written.
  • Existing older backup folders are not deleted automatically.

Ray5 Pilot v1.1.8

20 May 04:05

Choose a tag to compare

v1.1.8 is a reliability release. It adds configurable RTSP transport for camera streams, improves Firmware Settings reads with background polling, adds watcher-state locking, improves G-code pause/bounds parsing, adds timelapse session recovery, improves Imported Jobs Refresh watched-folder import behavior, and expands safety_check.py validation coverage.

Ray5 Pilot v1.1.7.1

20 May 00:00

Choose a tag to compare

v1.1.7.1 is a hard-limit alarm hotfix. It improves Unlock / Clear Alarm by using a staged Ctrl-X soft reset, laser-off, GRBL unlock, and status refresh sequence so Ray5 hard-limit alarms can be cleared from Ray5 Pilot without using the Ray5 screen. This release remains compatible with the tagged GitHub Release ZIP + SHA-256 auto-update flow.

Ray5 Pilot v1.1.7

19 May 21:34

Choose a tag to compare

v1.1.7 improves Upload and Upload+Run reliability. It adds upload-busy status handling during large SD writes, immediate Uploading/Busy status on upload actions, post-upload SD verification after timeout/reconnect, file-size mismatch blocking before auto-start, Timelapse status on the Status card, Open Video wording, and updated safety_check.py hardening checks.

Ray5 Pilot v1.1.6

19 May 03:21

Choose a tag to compare

v1.1.6 improves large-file Upload and Upload+Run reliability. It adds immediate Uploading/Busy status, suppresses false offline status during expected SD write pauses, verifies uploaded files after timeout/reconnect, uses size-aware upload timeouts, serializes SD listing during upload operations, and updates safety_check.py with Upload+Run hardening checks.