Commit Graph
1847 Commits
Author SHA1 Message Date
maziggy ffd0c8bddf Fixed bug where print cover could not be fetched in Docker environments 2026-01-04 18:56:11 +01:00
maziggy a18d0c0939 Fixed datetime import bug 2026-01-04 18:44:59 +01:00
maziggy 6fb71de6a2 Add firmware update helper for LAN-only printers
Enables checking and uploading firmware updates for printers operating
  in LAN-only mode without Bambu Cloud connectivity.

  Features:
  - Automatic firmware version checking against Bambu Lab servers
  - Orange "Update" badge on printer cards when updates available
  - Firmware update modal with version info and release notes
  - One-click firmware upload to printer SD card via FTP
  - Real-time upload progress (actual bytes transferred)
  - Step-by-step instructions for triggering update from printer
  - Local firmware caching for faster re-uploads
  - Supports all Bambu Lab printer models

  New files:
  - backend/app/services/firmware_check.py - Version checking service
  - backend/app/services/firmware_update.py - Upload orchestration
  - backend/app/api/routes/firmware.py - REST API endpoints

  Also includes:
  - FTP upload progress callback support
  - 10-minute upload timeout protection
  - Firmware cache directory in .gitignore
2026-01-04 18:41:24 +01:00
maziggy b0c576c8a8 Improved duplicate archive check 2026-01-04 16:46:59 +01:00
MartinNYHC e10d78d8a0 Merge pull request #56 from maziggy/0.1.6b6
0.1.6b6

- Fixed bug where wrong active AMS tray was shown for multi nozzle printers
- Updated CHANGELOG
2026-01-04 16:07:47 +01:00
maziggy 5f989c34f1 Changed version to 0.1.6b7 2026-01-04 16:01:53 +01:00
maziggy f2e3cb93f5 Updated CHANGELOG 2026-01-04 15:59:54 +01:00
maziggy 9e952f797e Fixed bug where wrong active AMS tray was shown for multi nozzle printers 2026-01-04 15:50:23 +01:00
maziggy f001873dd0 Updated CHANGELOG 2026-01-04 15:25:38 +01:00
MartinNYHC 63dee1c2ef Merge pull request #54 from maziggy/0.1.6b7
v0.1.6b6

  ### FEATURES

  - Resizable printer cards - Four sizes (Small, Medium, Large, XL) with persistent preference
  - Queue Only mode - Stage prints without automatic scheduling, manual release with play button
  - Virtual printer model selection - Choose from X1, P, A1, H2 series models with auto-restart on change
  - Pending upload delete confirmation - Confirmation modal when discarding pending uploads

  ### Fixes

  - Camera stream reconnection - Improved stuck stream detection with automatic reconnection
  - Virtual printer SSDP model codes - Corrected C11=P1P, C12=P1S, N7=P2S
  - Virtual printer serial prefixes - Fixed to match actual Bambu Lab format
  - Virtual printer startup model - Now correctly loads saved model from database on restart
  - Virtual printer model change - Model changes auto-restart (no manual disable/enable needed)
  - Docker certificate persistence - Certificates correctly persist in bambuddy_data volume
v0.1.6b6
2026-01-04 15:23:49 +01:00
maziggy 1b8cf01b73 Updated CHANGELOG 2026-01-04 15:21:51 +01:00
maziggy d241c5e4db Fixed backend tests for virtual printer 2026-01-04 15:17:34 +01:00
maziggy a1f6d648dc Fixed bug in virtual printer 2026-01-04 14:57:12 +01:00
maziggy cd5be4b842 Fixed bug in virtual printer 2026-01-04 14:54:27 +01:00
maziggy 505bad1f80 Fixed bug in virtual printer 2026-01-04 14:47:57 +01:00
maziggy bb37a8c8a8 Fix virtual printer model codes and serial prefixes
- Correct SSDP model codes: C11=P1P, C12=P1S, N7=P2S, C13=X1E
  - Fix serial prefixes based on actual Bambu serial format
  - Add confirmation modal for pending upload discard
  - Sort model dropdown alphabetically, remove internal codes
  - Add "Setup Required" warning with link to wiki documentation
  - Update wiki with certificate installation and platform setup guides
2026-01-04 14:05:08 +01:00
maziggy 81c8dd7d0c Add virtual printer model selection
Features:
  - Configurable printer model for virtual printer emulation
  - Supports X1 series (X1C, X1, X1E), P series (P1S, P1P, P2S),
    A1 series (A1, A1 Mini), and H2 series (H2D, H2C, H2S)
  - Dropdown in Settings > Virtual Printer to select model
  - Model affects SSDP discovery and slicer compatibility
  - Model change restarts virtual printer services automatically

  Backend:
  - Added VIRTUAL_PRINTER_MODELS mapping in manager.py
  - Added virtual_printer_model setting in database
  - New GET /api/v1/settings/virtual-printer/models endpoint
  - Updated PUT /api/v1/settings/virtual-printer to accept model

  Frontend:
  - Added model dropdown to VirtualPrinterSettings component
  - Status display shows selected model name
  - Model change disabled while virtual printer is running

  Tests:
  - Added 3 unit tests for model configuration
  - Updated frontend test mocks for getModels API
2026-01-04 09:39:06 +01:00
maziggy 8639f39028 Add resizable printer cards and Queue Only mode
Features:
  - Resizable printer cards (S/M/L/XL) with toolbar controls on Printers page
  - Queue Only mode for staging prints without automatic scheduling
    - "Queue Only" option in add/edit queue modals
    - Purple "Staged" badge and Play button to release to queue
    - manual_start field in database with migration

  Fixes:
  - Improved camera stream stuck detection with automatic reconnection

  Tests:
  - Added 16 integration tests for print queue API endpoints
2026-01-04 09:10:06 +01:00
maziggy 4a80888d95 Printer card size can now be choosen by user 2026-01-04 08:34:03 +01:00
maziggy 53eff03fb5 Added debug logging for printer's hour counter and current active AMS slot mapping 2026-01-04 08:08:10 +01:00
maziggy 815866c364 Demo video 2026-01-03 13:00:02 +01:00
maziggy 3c336b0da2 Fixed bug in camera stream stuck detection 2026-01-03 11:03:00 +01:00
maziggy 02f437b349 Added admin link to Tasmota power plugs card 2026-01-03 10:59:27 +01:00
maziggy a308248880 Camera stream is now reconnecting if stream stucks 2026-01-03 10:51:37 +01:00
maziggy 0f229889fb Improved printer's slot card detail modal "link to spoolman" function 2026-01-03 10:44:06 +01:00
maziggy 226094982d Fixed active AMS slot display 2026-01-03 10:38:26 +01:00
maziggy 5dae3d3021 Fixed bug in skip objects modal, where the object ID markers are not correctly positioned over their corresponding objects in the build plate preview 2026-01-03 10:26:06 +01:00
maziggy 55ec08d4d1 Improved cover image retrieval 2026-01-03 10:02:00 +01:00
maziggy c9ad09864d Minor GCode viewer improvements 2026-01-03 09:59:17 +01:00
maziggy 410924a94f Fixed bug where printer card was showing wrong cover image, if print file has multiple plates 2026-01-03 08:36:59 +01:00
maziggy 62a0b8671b Fixed bug in archive card's context menu #46 2026-01-03 08:16:29 +01:00
maziggy d03fe7598f Fixed bug in Spoolman sync 2026-01-03 08:11:55 +01:00
maziggy 74e2d95ea8 Changed version to 0.1.6b6 2026-01-02 17:22:05 +01:00
maziggy 94c961dbaf Add real-time fan status monitoring to printer cards
- Controls section: New section before Filaments with fan status and printer controls
  - Part cooling fan (Fan icon, cyan)
  - Auxiliary fan (Wind icon, blue)
  - Chamber fan (AirVent icon, green)
  - Stop/Pause/Resume buttons moved from Temperature section
- Real-time updates: Fan speeds now broadcast via WebSocket
- Backend: Parse MQTT fan data (cooling_fan_speed, big_fan1_speed, big_fan2_speed)
  - Convert 0-15 scale to 0-100%
- Always-visible badges with dynamic coloring based on fan state
- Removed horizontal dividers before Controls and Filaments sections
2026-01-02 16:05:20 +01:00
maziggy 83cbac04b7 - Add interactive API Browser to Settings > API Keys
- New APIBrowser component with full OpenAPI schema integration
    - Fetches and parses /openapi.json automatically
    - Groups endpoints by API tags (printers, archives, settings, etc.)
    - Expandable endpoint sections with color-coded method badges
    - Path parameter, query parameter, and JSON body editors
    - Auto-populates request body with schema examples
    - Live API request execution with response display
    - Response shows status code, timing, and formatted JSON
    - Copy response button with clipboard fallback
    - Search to filter endpoints across all categories
    - Expand All / Collapse All buttons
    - Link to Swagger UI (/docs)

  - Two-column layout for API Keys tab
    - Left: API key management + webhook documentation
    - Right: API Browser with dedicated test key input

  - Parameter validation
    - Shows warning for missing required parameters
    - Validates before sending requests to avoid 422 errors

  - UX improvements
    - "Use in API Browser" button on newly created keys
    - Responsive layout (stacked on mobile, side-by-side on xl+)
2026-01-02 15:00:21 +01:00
maziggy 61c8682fa9 Fixed dark theme's logo 2026-01-02 14:22:31 +01:00
maziggy cfbae8a968 Updated screenshots 2026-01-02 14:13:28 +01:00
maziggy 021318437d Updated screenshots 2026-01-02 14:12:36 +01:00
maziggy 0f65fb9484 - Bugfixes
- AMS "Unexpected format" warnings fixed - P1S/P1P send partial updates without full tray list (per https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md). Now handled correctly.
  - FTP improvements:
    - Added timeouts (60s download, 30s listing)
    - Better logging at INFO level
    - Shows what files exist in /cache
  - Fallback archive - When 3MF can't be downloaded, creates minimal archive so prints are tracked
2026-01-02 13:21:57 +01:00
maziggy ad40dfa67f - Minor fixes 2026-01-02 12:36:16 +01:00
maziggy 29f1fa9732 - Improved Docker environment 2026-01-02 12:28:32 +01:00
maziggy e356d03ee1 - Added new settings tab Filament and moved Spoolman Sync card 2026-01-02 12:00:57 +01:00
MartinNYHC 2e6d8c5ab8 Merge pull request #48 from maziggy/0.1.6b5
- Fixed bug in update module for Docker based installations
2026-01-02 11:45:27 +01:00
maziggy 32bd11ad82 - Fixed bug in update module for Docker based installations 2026-01-02 11:43:48 +01:00
MartinNYHC 4b5d88436e Merge pull request #47 from maziggy/0.1.6b5
v0.1.6b5

###  🚀 Highlights

  ## Pre-built Docker Images

  No more building from source! Pull directly from GitHub Container Registry:
  docker pull ghcr.io/maziggy/bambuddy:latest
  - Multi-architecture: linux/amd64 and linux/arm64 (Raspberry Pi 4/5)
  - Docker automatically pulls the correct image for your system
  - Just docker compose up -d — no --build required

  ## Printer Controls

  New stop and pause/resume buttons on printer cards while printing. Includes confirmation modals to prevent accidental clicks.

  ## Skip Objects

  Skip individual objects during a print without canceling the entire job:
  - Skip button appears when printing with 2+ objects
  - Preview image with object ID markers to match your printer display
  - Requires "Exclude Objects" enabled in slicer

  ## Spoolman Improvements

  - Link Spool: Manually link existing Spoolman spools to AMS trays
  - UUID Display: View and copy Bambu Lab spool UUID from AMS hover card
  - Sync Feedback: See which spools synced and which were skipped (with reasons)

  
  ### ✨ What's New

  ## Added

  - Pre-built Docker images on GitHub Container Registry (ghcr.io)
  - Printer control buttons — Stop and Pause/Resume on printer cards
  - Skip objects — Skip individual objects mid-print
  - AMS slot RFID re-read — Re-read filament info via hover menu
  - Spoolman Link Spool — Connect existing Spoolman spools to AMS trays
  - Spool UUID display — View/copy Bambu spool UUID in AMS hover card
  - Spoolman sync feedback — Shows synced count and skipped spools with reasons
  - Print quantity tracking — Track items per print for project progress

  ## Changed

  - Temperature cards layout refactored for control buttons
  - Cover image now shown when paused (for skip objects modal)
  - Spoolman info banner updated with clearer documentation

  ## Fixed

  - Spoolman 400 Bad Request when creating spools (extra field JSON encoding)


 ### 📦 Installation

  Docker (Recommended):
  mkdir bambuddy && cd bambuddy
  curl -O https://raw.githubusercontent.com/maziggy/bambuddy/main/docker-compose.yml
  docker compose up -d

  Updating from 0.1.6b4:
  docker compose pull && docker compose up -d

  ---
  
  Full Changelog: https://github.com/maziggy/bambuddy/compare/0.1.6b4...0.1.6b5
v0.1.6b5
2026-01-02 11:28:26 +01:00
maziggy 5e5eb572b3 - Pre-built Docker images on GitHub Container Registry
- Add multi-architecture support: linux/amd64 and linux/arm64 (Raspberry Pi 4/5)
  - Add docker-publish.sh script for building and pushing images
    - Supports --parallel flag for simultaneous architecture builds
    - Uses Docker Buildx with QEMU emulation
  - Update docker-compose.yml to support both pre-built and source builds
    - `docker compose up -d` pulls pre-built image
    - `docker compose up -d --build` builds from source
2026-01-02 11:21:35 +01:00
maziggyandClaude Opus 4.5 a1c12331db Add Spoolman integration tests and update spool comment
Backend tests:
- 21 integration tests for all Spoolman API endpoints
- Status, connect/disconnect, spools, filaments, link, sync

Frontend tests:
- 20 component tests for SpoolmanSettings
- Rendering, disabled/enabled states, connection status, sync UI

Also changed auto-created spool comment to "Created by Bambuddy"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 10:42:43 +01:00
maziggy ea0bf5f932 - Add print quantity tracking for project progress
- Track number of items per print job (default: 1)
  - Project stats now show total items vs print jobs
  - Progress bar counts items toward target, not just archives
  - "Items Printed" field in archive edit modal

  Backend:
  - Added quantity field to PrintArchive model
  - Database migration for quantity column
  - Updated project stats to use SUM(quantity)
  - Updated backup/restore to include quantity
  - Updated CSV/Excel export with quantity field

  Frontend:
  - Added quantity input to EditArchiveModal
  - Updated ProjectsPage to display total_items
  - Updated ProjectDetailPage stats
  - Fixed project delete not refreshing the list
2026-01-02 10:24:31 +01:00
maziggy 4e25377e5b Updated website 2026-01-02 10:17:21 +01:00
maziggy 019a9822a0 - Fixed bug, where Bambu Lab filament colors not showed correctly
- Added all Bambu Lab filament color tags
2026-01-02 09:41:26 +01:00