From 07f4d4482fea5521aad73858d1de13f6fabb11d8 Mon Sep 17 00:00:00 2001 From: maziggy Date: Tue, 9 Dec 2025 14:41:05 +0000 Subject: [PATCH] Moved documentation to it's own repository --- README.md | 18 +- docs/wiki/API-Reference.md | 305 ---------------- docs/wiki/Features-Cloud-Profiles.md | 245 ------------- docs/wiki/Features-External-Links.md | 186 ---------- docs/wiki/Features-File-Manager.md | 171 --------- docs/wiki/Features-K-Profiles.md | 205 ----------- docs/wiki/Features-Maintenance.md | 205 ----------- docs/wiki/Features-Monitoring.md | 151 -------- docs/wiki/Features-Notifications.md | 277 --------------- docs/wiki/Features-Print-Archiving.md | 156 -------- docs/wiki/Features-Print-Queue.md | 181 ---------- docs/wiki/Features-Smart-Plugs.md | 221 ------------ docs/wiki/Features-Spoolman.md | 218 ------------ docs/wiki/Features-Statistics.md | 153 -------- docs/wiki/Getting-Started.md | 141 -------- docs/wiki/Home.md | 57 --- docs/wiki/Installation.md | 236 ------------- docs/wiki/Troubleshooting.md | 392 --------------------- docs/wiki/_Sidebar.md | 22 -- icons/7a3afd1aa53c47e38ea7e55356403f99.svg | 1 + 20 files changed, 10 insertions(+), 3531 deletions(-) delete mode 100644 docs/wiki/API-Reference.md delete mode 100644 docs/wiki/Features-Cloud-Profiles.md delete mode 100644 docs/wiki/Features-External-Links.md delete mode 100644 docs/wiki/Features-File-Manager.md delete mode 100644 docs/wiki/Features-K-Profiles.md delete mode 100644 docs/wiki/Features-Maintenance.md delete mode 100644 docs/wiki/Features-Monitoring.md delete mode 100644 docs/wiki/Features-Notifications.md delete mode 100644 docs/wiki/Features-Print-Archiving.md delete mode 100644 docs/wiki/Features-Print-Queue.md delete mode 100644 docs/wiki/Features-Smart-Plugs.md delete mode 100644 docs/wiki/Features-Spoolman.md delete mode 100644 docs/wiki/Features-Statistics.md delete mode 100644 docs/wiki/Getting-Started.md delete mode 100644 docs/wiki/Home.md delete mode 100644 docs/wiki/Installation.md delete mode 100644 docs/wiki/Troubleshooting.md delete mode 100644 docs/wiki/_Sidebar.md create mode 100644 icons/7a3afd1aa53c47e38ea7e55356403f99.svg diff --git a/README.md b/README.md index add2fbb71..0df94a479 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Features • Screenshots • Quick Start • - Documentation • + Documentation • Contributing

@@ -150,7 +150,7 @@ uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 Open **http://localhost:8000** and add your printer! -> **Need detailed instructions?** See the [Installation Guide](https://github.com/maziggy/bambuddy/wiki/Installation) +> **Need detailed instructions?** See the [Installation Guide](https://github.com/maziggy/bambuddy-wiki/blob/main/Installation.md) ### Enabling LAN Mode @@ -163,13 +163,13 @@ Open **http://localhost:8000** and add your printer! ## 📚 Documentation -Full documentation available in the **[Wiki](https://github.com/maziggy/bambuddy/wiki)**: +Full documentation available in the **[Wiki](https://github.com/maziggy/bambuddy-wiki)**: -- [Installation](https://github.com/maziggy/bambuddy/wiki/Installation) — All installation methods -- [Getting Started](https://github.com/maziggy/bambuddy/wiki/Getting-Started) — First printer setup -- [Features](https://github.com/maziggy/bambuddy/wiki/Home#feature-documentation) — Detailed feature guides -- [Troubleshooting](https://github.com/maziggy/bambuddy/wiki/Troubleshooting) — Common issues & solutions -- [API Reference](https://github.com/maziggy/bambuddy/wiki/API-Reference) — REST API documentation +- [Installation](https://github.com/maziggy/bambuddy-wiki/blob/main/Installation.md) — All installation methods +- [Getting Started](https://github.com/maziggy/bambuddy-wiki/blob/main/Getting-Started.md) — First printer setup +- [Features](https://github.com/maziggy/bambuddy-wiki#feature-documentation) — Detailed feature guides +- [Troubleshooting](https://github.com/maziggy/bambuddy-wiki/blob/main/Troubleshooting.md) — Common issues & solutions +- [API Reference](https://github.com/maziggy/bambuddy-wiki/blob/main/API-Reference.md) — REST API documentation --- @@ -242,5 +242,5 @@ MIT License — see [LICENSE](LICENSE) for details.

Report Bug • Request Feature • - Documentation + Documentation

diff --git a/docs/wiki/API-Reference.md b/docs/wiki/API-Reference.md deleted file mode 100644 index 04dc24b39..000000000 --- a/docs/wiki/API-Reference.md +++ /dev/null @@ -1,305 +0,0 @@ -# API Reference - -Bambuddy provides a REST API for programmatic access to all features. - -## Interactive Documentation - -When Bambuddy is running, access interactive API docs: - -- **Swagger UI**: http://localhost:8000/docs -- **ReDoc**: http://localhost:8000/redoc - -These provide: -- Complete endpoint documentation -- Request/response schemas -- Try-it-out functionality -- Authentication details - ---- - -## Base URL - -``` -http://localhost:8000/api/v1 -``` - -Replace `localhost:8000` with your server address. - ---- - -## Authentication - -Currently, Bambuddy does not require authentication for API access. The API is intended for local network use. - -> **Note**: Future versions may add authentication. Keep your Bambuddy instance on a trusted network. - ---- - -## Endpoints Overview - -### Printers - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/printers` | List all printers | -| POST | `/printers` | Add a new printer | -| GET | `/printers/{id}` | Get printer details | -| PUT | `/printers/{id}` | Update printer | -| DELETE | `/printers/{id}` | Delete printer | -| POST | `/printers/{id}/connect` | Connect to printer | -| POST | `/printers/{id}/disconnect` | Disconnect from printer | - -### Archives - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/archives` | List all archives | -| GET | `/archives/{id}` | Get archive details | -| DELETE | `/archives/{id}` | Delete archive | -| POST | `/archives/{id}/reprint` | Send to printer | -| GET | `/archives/{id}/download` | Download 3MF file | -| POST | `/archives/{id}/photos` | Upload photo | - -### Print Queue - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/queue` | List all queue items | -| POST | `/queue` | Add to queue | -| GET | `/queue/{id}` | Get queue item | -| DELETE | `/queue/{id}` | Remove from queue | -| PUT | `/queue/{id}/reorder` | Change queue position | -| POST | `/queue/{id}/cancel` | Cancel queued print | - -### Smart Plugs - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/smart-plugs` | List all smart plugs | -| POST | `/smart-plugs` | Add smart plug | -| GET | `/smart-plugs/{id}` | Get plug details | -| PUT | `/smart-plugs/{id}` | Update plug | -| DELETE | `/smart-plugs/{id}` | Delete plug | -| POST | `/smart-plugs/{id}/on` | Turn on | -| POST | `/smart-plugs/{id}/off` | Turn off | -| GET | `/smart-plugs/{id}/status` | Get current status | - -### Notifications - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/notifications/providers` | List providers | -| POST | `/notifications/providers` | Add provider | -| PUT | `/notifications/providers/{id}` | Update provider | -| DELETE | `/notifications/providers/{id}` | Delete provider | -| POST | `/notifications/providers/{id}/test` | Send test | -| GET | `/notifications/templates` | Get templates | -| PUT | `/notifications/templates/{event}` | Update template | - -### Settings - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/settings` | Get all settings | -| PUT | `/settings` | Update settings | -| GET | `/settings/filaments` | List filaments | -| POST | `/settings/filaments` | Add filament | - -### Maintenance - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/maintenance/types` | List maintenance types | -| POST | `/maintenance/types` | Create type | -| GET | `/maintenance/status` | Get maintenance status | -| POST | `/maintenance/log` | Log maintenance | - -### Cloud Profiles - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/cloud/profiles` | List profiles | -| POST | `/cloud/sync` | Sync with cloud | -| GET | `/cloud/profiles/{id}` | Get profile | -| POST | `/cloud/templates` | Create template | - -### Updates - -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/updates/check` | Check for updates | -| POST | `/updates/apply` | Apply update | -| GET | `/updates/status` | Get update status | - ---- - -## WebSocket - -Real-time updates via WebSocket: - -``` -ws://localhost:8000/api/v1/ws -``` - -### Connection -```javascript -const ws = new WebSocket('ws://localhost:8000/api/v1/ws'); - -ws.onmessage = (event) => { - const data = JSON.parse(event.data); - console.log('Event:', data.type, data.payload); -}; -``` - -### Event Types - -| Event | Description | -|-------|-------------| -| `printer_state` | Printer status update | -| `print_progress` | Print progress update | -| `print_complete` | Print finished | -| `print_failed` | Print failed | -| `queue_update` | Queue changed | -| `notification` | System notification | - -### Message Format -```json -{ - "type": "printer_state", - "printer_id": 1, - "payload": { - "status": "printing", - "progress": 45, - "nozzle_temp": 210, - "bed_temp": 60 - } -} -``` - ---- - -## Common Response Formats - -### Success Response -```json -{ - "success": true, - "data": { ... } -} -``` - -### Error Response -```json -{ - "success": false, - "error": { - "code": "PRINTER_NOT_FOUND", - "message": "Printer with ID 123 not found" - } -} -``` - -### List Response -```json -{ - "success": true, - "data": [ ... ], - "pagination": { - "total": 100, - "page": 1, - "per_page": 20 - } -} -``` - ---- - -## Example Requests - -### List Printers -```bash -curl http://localhost:8000/api/v1/printers -``` - -### Add Printer -```bash -curl -X POST http://localhost:8000/api/v1/printers \ - -H "Content-Type: application/json" \ - -d '{ - "name": "Workshop X1C", - "ip_address": "192.168.1.100", - "access_code": "12345678", - "serial_number": "00M00A000000000" - }' -``` - -### Get Archives -```bash -curl "http://localhost:8000/api/v1/archives?limit=10&offset=0" -``` - -### Schedule Print -```bash -curl -X POST http://localhost:8000/api/v1/queue \ - -H "Content-Type: application/json" \ - -d '{ - "archive_id": 42, - "printer_id": 1, - "scheduled_time": "2024-01-15T14:00:00Z", - "auto_power_off": true - }' -``` - -### Control Smart Plug -```bash -# Turn on -curl -X POST http://localhost:8000/api/v1/smart-plugs/1/on - -# Turn off -curl -X POST http://localhost:8000/api/v1/smart-plugs/1/off -``` - -### Send Test Notification -```bash -curl -X POST http://localhost:8000/api/v1/notifications/providers/1/test -``` - ---- - -## Rate Limiting - -Currently no rate limiting is implemented. For high-frequency polling, consider using WebSocket instead. - ---- - -## Error Codes - -| Code | Description | -|------|-------------| -| `PRINTER_NOT_FOUND` | Printer ID doesn't exist | -| `PRINTER_OFFLINE` | Printer not connected | -| `ARCHIVE_NOT_FOUND` | Archive ID doesn't exist | -| `QUEUE_ITEM_NOT_FOUND` | Queue item doesn't exist | -| `PLUG_NOT_FOUND` | Smart plug doesn't exist | -| `PLUG_OFFLINE` | Smart plug not responding | -| `INVALID_REQUEST` | Request validation failed | -| `FTP_ERROR` | File transfer failed | -| `MQTT_ERROR` | Printer communication failed | - ---- - -## SDK / Client Libraries - -No official client libraries yet. The API is standard REST and can be consumed with: -- `fetch` / `axios` (JavaScript) -- `requests` / `httpx` (Python) -- `curl` (command line) -- Any HTTP client - ---- - -## Webhooks (Outgoing) - -Configure outgoing webhooks in notification settings. Bambuddy sends POST requests to your URL with JSON payloads for print events. - -See [Push Notifications](Features-Notifications#webhook-generic) for details. diff --git a/docs/wiki/Features-Cloud-Profiles.md b/docs/wiki/Features-Cloud-Profiles.md deleted file mode 100644 index fc5c91c93..000000000 --- a/docs/wiki/Features-Cloud-Profiles.md +++ /dev/null @@ -1,245 +0,0 @@ -# Cloud Profiles - -Access and manage your Bambu Cloud slicer presets with powerful template and comparison features. - -## Overview - -Cloud Profiles syncs with your Bambu Cloud account to provide: -- View and manage filament, printer, and process presets -- Template system for quick preset creation -- Side-by-side preset comparison with diff view -- Local storage of synced presets - ---- - -## Connecting to Bambu Cloud - -### Step 1: Get Your Credentials -You'll need your Bambu Cloud account credentials or access token. - -### Step 2: Configure in Bambuddy -1. Go to **Settings** > **Cloud Profiles** -2. Enter your credentials -3. Click **Connect** -4. Presets will sync automatically - -### Step 3: Verify Connection -- Status shows "Connected" -- Presets appear in the Cloud Profiles page - ---- - -## Preset Types - -### Filament Presets -Settings for specific filament types: -- Temperature profiles -- Cooling settings -- Retraction settings -- Flow calibration - -### Printer Presets -Machine-specific settings: -- Build volume -- Speed limits -- Acceleration values -- Hardware capabilities - -### Process Presets -Print quality and speed settings: -- Layer height -- Print speed -- Infill patterns -- Support settings - ---- - -## Browsing Presets - -### Filtering -- **By Type**: Filament, Printer, Process -- **By Source**: Official, User-created, Templates -- **Search**: Find by name - -### Preset Cards -Each preset shows: -- Name and type -- Source (official/user) -- Base preset (if derived) -- Last modified date - -### Preset Details -Click a preset to view: -- All settings and values -- Base preset reference -- Modification history - ---- - -## Template System - -Create reusable templates from any preset for quick preset creation. - -### Creating a Template - -1. Find a preset you want to use as a base -2. Click the template icon (or right-click > "Save as Template") -3. Give the template a name -4. Template is saved for future use - -### Template Visibility - -Control which templates appear in creation modals: -1. Go to template management -2. Toggle visibility for each template -3. Only visible templates show in dropdowns - -### Using Templates - -When creating a new preset: -1. Click "New Preset" -2. Select a template from the dropdown -3. Template settings are pre-filled -4. Modify as needed -5. Save the new preset - ---- - -## Preset Comparison - -Compare presets side-by-side to understand differences. - -### Compare with Base - -See what's changed from the original preset: -1. Open a preset that's derived from another -2. Click "Compare with Base" -3. View differences highlighted - -### Compare Any Two Presets - -Compare any presets of the same type: -1. Select first preset -2. Click "Compare" -3. Select second preset -4. View side-by-side diff - -### Diff View Features - -| Feature | Description | -|---------|-------------| -| **Added** | Settings only in new preset (green) | -| **Removed** | Settings only in base preset (red) | -| **Changed** | Different values (yellow) | -| **Search** | Filter diff by setting name | -| **Statistics** | Count of changes by type | - ---- - -## Managing Presets - -### Editing Presets -1. Open the preset -2. Click "Edit" -3. Modify settings -4. Save changes - -> Note: Official presets cannot be edited. Create a copy first. - -### Creating Presets -1. Click "New Preset" -2. Select preset type -3. Choose a base preset or template -4. Configure settings -5. Save with a unique name - -### Deleting Presets -1. Right-click the preset -2. Select "Delete" -3. Confirm deletion - -> Official presets cannot be deleted. - ---- - -## Syncing - -### Automatic Sync -Presets sync periodically with Bambu Cloud: -- New presets downloaded -- Changes uploaded -- Deleted presets removed - -### Manual Sync -Force a sync: -1. Go to Cloud Profiles page -2. Click "Sync Now" -3. Wait for sync to complete - -### Sync Status -- **Synced**: Up to date with cloud -- **Pending**: Local changes not yet uploaded -- **Conflict**: Different changes locally and in cloud - ---- - -## Local Storage - -Synced presets are stored locally: -- Available offline after initial sync -- Faster loading times -- Backup of your presets - -### Storage Location -Presets stored in SQLite database alongside other Bambuddy data. - ---- - -## Use Cases - -### Standardizing Settings -1. Create a "Standard PLA" preset with your preferred settings -2. Save as template -3. Use template for all PLA prints -4. Consistent quality across prints - -### Experimenting Safely -1. Copy an existing preset -2. Make experimental changes -3. Compare with original -4. Keep or discard based on results - -### Team Sharing -1. Create optimized presets -2. Export or share via Bambu Cloud -3. Team members sync the same presets -4. Consistent settings across all printers - ---- - -## Troubleshooting - -### Connection Failed -- Verify credentials are correct -- Check internet connection -- Try logging out and back in to Bambu Cloud - -### Presets Not Appearing -- Force a manual sync -- Check filter settings -- Verify presets exist in Bambu Cloud - -### Sync Conflicts -- Local changes may conflict with cloud -- Review differences in comparison view -- Choose which version to keep - ---- - -## Tips - -- Use templates for consistent starting points -- Compare before and after making changes -- Keep official presets as reference -- Create project-specific presets -- Regular syncs ensure latest settings diff --git a/docs/wiki/Features-External-Links.md b/docs/wiki/Features-External-Links.md deleted file mode 100644 index 86eaf2a26..000000000 --- a/docs/wiki/Features-External-Links.md +++ /dev/null @@ -1,186 +0,0 @@ -# External Sidebar Links - -Add custom links to external tools directly in the sidebar navigation. - -## Overview - -External links let you: -- Add quick access to other tools -- Customize the sidebar with your frequently used services -- Embed external pages within Bambuddy - ---- - -## Use Cases - -Quick access to: -- **OctoPrint** or **Mainsail** (other print managers) -- **Spoolman** (filament inventory) -- **Obico** (AI print monitoring) -- **Home Assistant** (home automation) -- Documentation or reference sites -- Internal dashboards - ---- - -## Adding External Links - -1. Go to **Settings** -2. Scroll to **Sidebar Links** -3. Click **Add Link** -4. Configure: - - **Name**: Display name for the link - - **URL**: Full URL to the external site - - **Icon**: Choose icon type -5. Click **Save** - ---- - -## Link Configuration - -### Name -- Display text shown in sidebar -- Keep it short (1-2 words) -- Examples: "Spoolman", "OctoPrint", "Docs" - -### URL -- Full URL including protocol -- Examples: - - `http://192.168.1.100:7912` (Spoolman) - - `https://docs.example.com` - - `http://octopi.local` - -### Icon Options - -**Built-in Icons** -Choose from common icons: -- Link icon -- External link icon -- Home icon -- Settings icon -- And more... - -**Custom Icons** -Upload your own: -1. Select "Custom Icon" -2. Upload an SVG file -3. Icon is stored and displayed - ---- - -## Managing Links - -### Reordering -Drag links to change their position: -1. Hover over the link -2. Click and hold the grip handle -3. Drag to new position -4. Release to drop - -Links can be mixed with internal navigation items. - -### Editing -1. Click the pencil icon on a link -2. Modify settings -3. Click **Save** - -### Deleting -1. Click the trash icon on a link -2. Confirm deletion - ---- - -## How Links Open - -### Embedded Mode (Default) -External pages open in an iframe within Bambuddy: -- Stays within Bambuddy interface -- Quick switching between tools -- Sidebar remains accessible - -### New Tab -Some sites require opening in a new tab: -- Sites that block iframe embedding -- Complex applications -- When you need full browser features - ---- - -## Iframe Limitations - -Some websites block iframe embedding for security: - -### Common Restrictions -- `X-Frame-Options` header set to DENY -- Content Security Policy restrictions -- Same-origin policy violations - -### Affected Sites -Sites that typically don't work in iframes: -- Google services -- Social media sites -- Banking/financial sites -- Some cloud dashboards - -### Workaround -If a site doesn't load in the iframe: -1. Right-click the link -2. Select "Open in New Tab" -3. Or configure the link to always open externally - ---- - -## Icon Upload - -### Supported Formats -- SVG (recommended) -- PNG -- JPG - -### Icon Guidelines -- Square aspect ratio works best -- Keep file size small (<50KB) -- Simple designs show better at sidebar size -- SVG scales best at any size - -### Finding Icons -Sources for icons: -- [Lucide Icons](https://lucide.dev/) -- [Simple Icons](https://simpleicons.org/) -- [Heroicons](https://heroicons.com/) -- Product brand guidelines (for official logos) - ---- - -## Examples - -### Spoolman -``` -Name: Spoolman -URL: http://192.168.1.100:7912 -Icon: Built-in database icon -``` - -### Home Assistant -``` -Name: Home -URL: http://homeassistant.local:8123 -Icon: Custom (Home Assistant logo SVG) -``` - -### Documentation -``` -Name: Docs -URL: https://wiki.example.com -Icon: Built-in book icon -``` - ---- - -## Tips - -- Keep link names short for cleaner sidebar -- Use custom icons for brand recognition -- Test iframe embedding before relying on it -- Group related links by ordering them together -- Remove unused links to keep sidebar clean diff --git a/docs/wiki/Features-File-Manager.md b/docs/wiki/Features-File-Manager.md deleted file mode 100644 index ab08b178d..000000000 --- a/docs/wiki/Features-File-Manager.md +++ /dev/null @@ -1,171 +0,0 @@ -# File Manager - -Browse and manage files on your printer's internal storage. - -## Overview - -The File Manager allows you to: -- Browse files on printer's SD card -- View file details and thumbnails -- Delete unwanted files -- Free up storage space - ---- - -## Accessing File Manager - -1. Go to **Printers** page -2. Click on a connected printer -3. Select **File Manager** or click the folder icon - ---- - -## File Browser - -### Navigation -- **Folder tree**: Navigate directory structure -- **Breadcrumbs**: Quick path navigation -- **Back button**: Return to parent folder - -### File List -Each file shows: -- **Thumbnail**: Preview image (for 3MF files) -- **Name**: Filename -- **Size**: File size -- **Date**: Last modified date -- **Type**: File type icon - -### Sorting -Sort files by: -- Name (A-Z, Z-A) -- Date (newest, oldest) -- Size (largest, smallest) - ---- - -## File Types - -### 3MF Files -Print files with: -- Model geometry -- Slicer settings -- Thumbnails -- Metadata - -### Timelapse Videos -Recorded print timelapses: -- MP4 format -- Stored in timelapse folder -- Can be downloaded or deleted - -### Other Files -- Gcode files (legacy) -- Log files -- Cache files - ---- - -## Managing Files - -### Viewing Details -Click a file to see: -- Full filename -- File size -- Created/modified date -- Preview (if available) - -### Deleting Files -1. Select file(s) to delete -2. Click **Delete** -3. Confirm deletion - -> Deleted files cannot be recovered! - -### Downloading Files -1. Click on a file -2. Select **Download** -3. File downloads to your computer - ---- - -## Storage Information - -### Space Usage -View storage status: -- Total capacity -- Used space -- Available space -- Usage percentage - -### Low Storage Warning -Bambuddy warns when storage is low: -- Yellow warning at 80% full -- Red warning at 95% full - ---- - -## Common Operations - -### Freeing Up Space -To free storage: -1. Delete old timelapse videos -2. Remove failed print files -3. Clear cache files -4. Delete prints you won't reprint - -### Finding Large Files -1. Sort by size (largest first) -2. Identify large files to remove -3. Timelapses are usually the largest - -### Cleaning Up Timelapses -Timelapses consume significant storage: -1. Navigate to timelapse folder -2. Sort by date -3. Delete old timelapses you don't need - ---- - -## FTP Connection - -File Manager uses FTPS to connect: -- Port 990 (implicit FTPS) -- Encrypted connection -- Same credentials as printer connection - -### Connection Issues -If File Manager won't connect: -- Verify printer is online -- Check FTP port (990) is accessible -- Ensure LAN Mode is enabled -- Try reconnecting the printer - ---- - -## Limitations - -### Read-Only Folders -Some folders are system-protected: -- Cannot delete system files -- Cannot modify firmware files - -### File Upload -Currently not supported: -- Use Bambu Studio for uploads -- Or use the print queue feature - -### Simultaneous Access -Only one FTP connection at a time: -- Close other FTP clients -- Bambu Studio may hold connection -- Wait and retry if busy - ---- - -## Tips - -- Regularly clean up timelapses to save space -- Download important files for backup -- Delete failed print files promptly -- Check storage before starting large prints -- Keep 20%+ storage free for new prints diff --git a/docs/wiki/Features-K-Profiles.md b/docs/wiki/Features-K-Profiles.md deleted file mode 100644 index 8269bc6fc..000000000 --- a/docs/wiki/Features-K-Profiles.md +++ /dev/null @@ -1,205 +0,0 @@ -# K-Profiles (Pressure Advance) - -Manage pressure advance settings directly on your printers for improved print quality. - -## What Are K-Profiles? - -K-profiles store pressure advance (also called Linear Advance) settings: -- Compensate for filament compression in the extruder -- Reduce corner bulging and improve sharp edges -- Different values needed for different filaments and speeds - -### K-Value Basics -| Material | Typical K-Value Range | -|----------|----------------------| -| PLA | 0.01 - 0.06 | -| PETG | 0.02 - 0.10 | -| ABS | 0.02 - 0.08 | -| TPU | 0.10 - 0.30 | - -> Lower values = less compensation. Higher values = more compensation. - ---- - -## Accessing K-Profiles - -1. Go to **Settings** > **K-Profiles** -2. Select a connected printer from the dropdown -3. Choose a nozzle size (0.2, 0.4, 0.6, 0.8mm) -4. Profiles are loaded from the printer - ---- - -## Viewing Profiles - -### Profile Cards -Each profile displays: -- **K-Value**: The pressure advance factor -- **Profile Name**: Usually the filament name -- **Filament ID**: Material identifier -- **Flow Type**: HF (High Flow) or S (Standard) - -### Filtering Options -- **Search**: Filter by profile name or filament ID -- **Nozzle Size**: 0.2, 0.4, 0.6, 0.8mm -- **Flow Type**: All, HF Only, or S Only -- **Extruder**: All, Left Only, or Right Only (dual-nozzle) - ---- - -## Dual-Nozzle Printers (H2 Series) - -For H2D, H2C, and H2S printers with dual nozzles: - -### Automatic Detection -Bambuddy detects nozzle count from MQTT temperature data: -- Single nozzle: Standard interface -- Dual nozzle: Left/Right column layout - -### Column Layout -Profiles are organized by extruder: -- **Left Column**: Left extruder profiles -- **Right Column**: Right extruder profiles - -### Extruder Filter -Show profiles for one extruder only: -- All (default) -- Left Only -- Right Only - ---- - -## Editing K-Profiles - -1. Click on any profile card -2. Edit modal opens with current values -3. Modify the K-value -4. Click **Save** -5. Profile is updated on the printer - -### K-Value Guidelines -- Start with recommended values for your material -- Increase if you see corner bulging -- Decrease if you see gaps at corners -- Small changes (0.01-0.02) make noticeable differences - ---- - -## Adding K-Profiles - -1. Click **Add Profile** in the header -2. Select a filament from the dropdown -3. Choose flow type (High Flow or Standard) -4. Choose nozzle size -5. For dual-nozzle: Select Left or Right extruder -6. Enter the K-value -7. Click **Save** - -### Filament Selection -The filament dropdown shows: -- Filaments already calibrated on the printer -- Materials from existing K-profiles - -> **Note**: New filaments must first be calibrated in Bambu Studio before they appear in this dropdown. - ---- - -## Deleting K-Profiles - -1. Click on the profile card -2. Click the trash icon -3. Confirm deletion -4. Profile is removed from the printer - ---- - -## Calibrating K-Values - -Bambu Lab printers can auto-calibrate K-values: - -### In Bambu Studio -1. Go to Calibration menu -2. Select "Pressure Advance" -3. Choose filament and settings -4. Run calibration print -5. Results saved to printer automatically - -### In Bambuddy -After calibration in Bambu Studio: -1. Profiles appear in K-Profiles page -2. View and fine-tune values -3. Add profiles for specific use cases - ---- - -## Understanding Flow Types - -### High Flow (HF) -- For high-speed printing -- Faster extrusion rates -- Usually needs lower K-value - -### Standard (S) -- Normal printing speeds -- Standard extrusion rates -- Baseline K-value - -> Create separate profiles for HF and Standard if you print at varying speeds. - ---- - -## Best Practices - -### Per-Material Profiles -Create profiles for each material you use: -- PLA (various brands may differ) -- PETG -- ABS -- Specialty materials - -### Per-Nozzle Profiles -Different nozzle sizes need different values: -- 0.2mm: Usually lower K-values -- 0.4mm: Standard K-values -- 0.6mm+: May need adjustment - -### Testing Changes -After modifying K-values: -1. Print a test object (sharp corners work well) -2. Examine corner quality -3. Adjust K-value if needed -4. Repeat until satisfied - ---- - -## Troubleshooting - -### No Profiles Showing -- Ensure printer is connected -- Select the correct nozzle size -- Check if any profiles exist (calibrate first) - -### Can't Add New Filaments -- Filaments must be calibrated in Bambu Studio first -- Bambuddy reads filament list from existing profiles -- Run a calibration print to add new filaments - -### Dual-Nozzle Not Detected -- Ensure printer is connected and communicating -- Nozzle count detected from temperature data -- Try disconnecting and reconnecting - -### Changes Not Saving -- Verify printer connection is active -- Check for error messages -- Try refreshing the page - ---- - -## Tips - -- Calibrate new filaments in Bambu Studio first -- Fine-tune values in Bambuddy for quick adjustments -- Document your optimal K-values for reference -- Different brands of same material may need different values -- Test with a simple calibration print after changes diff --git a/docs/wiki/Features-Maintenance.md b/docs/wiki/Features-Maintenance.md deleted file mode 100644 index 39b56a37b..000000000 --- a/docs/wiki/Features-Maintenance.md +++ /dev/null @@ -1,205 +0,0 @@ -# Maintenance Tracker - -Schedule and track printer maintenance to keep your printers in optimal condition. - -## Overview - -The maintenance tracker helps you: -- Define maintenance tasks with intervals -- Track when maintenance was last performed -- Get reminders when maintenance is due -- Log maintenance history - ---- - -## Maintenance Types - -### Default Maintenance Tasks - -Bambuddy includes common maintenance types: - -| Task | Description | Suggested Interval | -|------|-------------|-------------------| -| Nozzle Change | Replace worn nozzle | 500 print hours | -| Lubrication | Lubricate linear rails and lead screws | 200 print hours | -| Belt Tension | Check and adjust belt tension | 100 print hours | -| Clean Build Plate | Deep clean the print surface | 50 print hours | -| Clean Nozzle | Remove debris from nozzle | 20 print hours | -| Firmware Update | Check for firmware updates | 30 days | - -### Custom Maintenance Types - -Create your own maintenance tasks: -1. Go to **Settings** > **Maintenance** -2. Click **Add Maintenance Type** -3. Configure: - - **Name**: Task description - - **Interval Type**: Print hours or calendar days - - **Interval Value**: How often (e.g., every 100 hours) - - **Description**: Detailed instructions (optional) -4. Click **Save** - ---- - -## Interval Types - -### Print Hours -Maintenance triggered based on actual printing time: -- Tracks cumulative print hours per printer -- More accurate for wear-based maintenance -- Example: "Every 500 print hours" - -### Calendar Days -Maintenance triggered based on time passed: -- Simple date-based tracking -- Good for time-sensitive tasks -- Example: "Every 30 days" - ---- - -## Tracking Maintenance - -### Maintenance Page - -View all maintenance for all printers: -- Status indicators (OK, Due, Overdue) -- Next due date/hours -- Last completed date - -### Per-Printer View - -See maintenance for a specific printer: -1. Go to Printers page -2. Click maintenance icon on printer card -3. View that printer's maintenance status - -### Status Indicators - -| Status | Color | Meaning | -|--------|-------|---------| -| OK | Green | Not due yet | -| Due Soon | Yellow | Due within 10% of interval | -| Due | Orange | Maintenance interval reached | -| Overdue | Red | Past due date/hours | - ---- - -## Logging Maintenance - -When you perform maintenance: - -1. Find the maintenance task -2. Click **Log Maintenance** -3. Optionally add notes -4. Click **Save** - -The tracker updates: -- Last performed date -- Next due date/hours calculated -- Entry added to history - ---- - -## Maintenance History - -View past maintenance for any task: -1. Click on a maintenance task -2. View history log showing: - - Date performed - - Print hours at time of maintenance - - Notes (if any) - - Who performed it (if tracked) - ---- - -## Notifications - -Get notified when maintenance is due: - -### Enabling Notifications -1. Go to **Settings** > **Notifications** -2. Enable **Maintenance Due** event -3. Configure provider(s) - -### Notification Timing -- Sent when maintenance becomes due -- Reminder sent if still due after 24 hours -- No spam—one notification per due task - ---- - -## Managing Maintenance Types - -### Editing Types -1. Go to **Settings** > **Maintenance** -2. Click on a maintenance type -3. Modify settings -4. Click **Save** - -### Deleting Types -1. Go to **Settings** > **Maintenance** -2. Click delete icon on a type -3. Confirm deletion - -> Deleting a type removes it from all printers. - -### Per-Printer Customization -Different printers may need different intervals: -1. Go to printer's maintenance view -2. Override interval for that printer -3. Original type remains unchanged - ---- - -## Print Hour Tracking - -Bambuddy automatically tracks print hours: -- Accumulated during active prints -- Stored per printer -- Used for hour-based maintenance intervals - -### Viewing Print Hours -- Displayed on printer cards -- Available in statistics -- Shown in maintenance calculations - -### Resetting Print Hours -After major service (like a rebuild): -1. Go to printer settings -2. Find "Print Hours" section -3. Click "Reset" or enter new value -4. Maintenance intervals recalculate - ---- - -## Best Practices - -### Regular Schedule -- Check maintenance page weekly -- Address "Due" items promptly -- Don't ignore "Overdue" warnings - -### Document Everything -- Add notes when logging maintenance -- Record any issues found -- Track parts replaced - -### Customize for Your Printers -- Adjust intervals based on usage -- Add tasks specific to your workflow -- Remove irrelevant default tasks - -### Preventive vs Reactive -- Preventive maintenance prevents failures -- Cheaper than repairs -- Less downtime - ---- - -## Tips - -- Set conservative intervals initially, adjust based on experience -- Use calendar-based intervals for firmware/software updates -- Use print-hour intervals for wear-related maintenance -- Enable notifications to never miss maintenance -- Log maintenance immediately after performing it diff --git a/docs/wiki/Features-Monitoring.md b/docs/wiki/Features-Monitoring.md deleted file mode 100644 index 49dbada5e..000000000 --- a/docs/wiki/Features-Monitoring.md +++ /dev/null @@ -1,151 +0,0 @@ -# Real-time Monitoring - -Bambuddy provides live monitoring of all your connected Bambu Lab printers through WebSocket-based real-time updates. - -## Printer Status - -Each printer card displays real-time information: - -### Connection Status -- **Green indicator**: Connected and communicating -- **Red indicator**: Disconnected or connection error -- **Yellow indicator**: Connecting or reconnecting - -### Temperature Readouts -| Sensor | Description | -|--------|-------------| -| Nozzle | Current hotend temperature | -| Bed | Heated bed temperature | -| Chamber | Enclosure temperature (if available) | - -### Print Progress -When a print is active: -- **Progress bar**: Visual completion percentage -- **Current layer**: Layer X of Y -- **Time remaining**: Estimated time to completion -- **Filament used**: Grams consumed - ---- - -## HMS Error Monitoring - -The Health Management System (HMS) monitors printer health: - -### Status Indicator -Always visible on printer cards: -- **Green "OK"**: No issues detected -- **Yellow**: Minor issues or warnings -- **Orange**: Serious errors requiring attention -- **Red**: Fatal errors - stop printing - -### Error Severity Levels -| Level | Color | Action Required | -|-------|-------|-----------------| -| Info | Blue | Informational only | -| Common | Yellow | Check when convenient | -| Serious | Orange | Address before next print | -| Fatal | Red | Immediate attention needed | - -### Error Details -Click the HMS indicator to see: -- Error code and description -- Affected component -- Recommended action -- Link to Bambu Lab support article - ---- - -## MQTT Debug Logging - -Built-in debugging tool for printer communication: - -### Starting Debug Logging -1. Go to printer settings -2. Click "Start MQTT Debug" -3. Messages are captured in real-time - -### Viewing Messages -- **Incoming**: Messages from printer to Bambuddy -- **Outgoing**: Commands sent to printer -- **JSON payloads**: Expandable for detailed inspection -- **Auto-refresh**: New messages appear automatically - -### Use Cases -- Troubleshooting connection issues -- Understanding printer behavior -- Debugging automation problems -- Reporting issues to developers - ---- - -## AMS (Automatic Material System) - -For printers with AMS units: - -### Slot Status -- **Filament color**: Visual swatch for each slot -- **Material type**: PLA, PETG, ABS, etc. -- **Remaining**: Estimated filament left -- **Temperature**: Drying chamber temp (if applicable) - -### Humidity Monitoring -- Current humidity level in AMS -- Warning indicators for high humidity - ---- - -## Camera Feed - -Access your printer's camera: - -1. Click the camera icon on a printer card -2. View live camera feed -3. Take snapshots -4. Monitor print progress visually - -### Camera Page -Dedicated camera view with: -- Larger video display -- Multiple printer support -- Snapshot history - ---- - -## WebSocket Architecture - -Bambuddy uses WebSocket for real-time updates: - -``` -Printer → MQTT → Bambuddy Backend → WebSocket → Browser -``` - -### Connection Handling -- Automatic reconnection on disconnect -- State synchronization on reconnect -- Efficient delta updates (only changed data) - -### Performance -- Low latency updates (<1 second typical) -- Minimal bandwidth usage -- Multiple browser tabs supported - ---- - -## Notifications on Status Changes - -Configure alerts for printer events: -- **Printer Offline**: When connection is lost -- **Printer Error**: When HMS errors occur -- **Print Complete**: When a job finishes -- **Print Failed**: When a print fails - -See [Push Notifications](Features-Notifications) for setup details. - ---- - -## Tips - -- Keep the Printers page open for at-a-glance monitoring -- Use the camera page for visual confirmation of print quality -- Enable HMS error notifications to catch problems early -- Check MQTT debug logs if a printer behaves unexpectedly diff --git a/docs/wiki/Features-Notifications.md b/docs/wiki/Features-Notifications.md deleted file mode 100644 index 4c9dc9919..000000000 --- a/docs/wiki/Features-Notifications.md +++ /dev/null @@ -1,277 +0,0 @@ -# Push Notifications - -Get notified about print events via multiple channels including WhatsApp, Telegram, Discord, Email, and more. - -## Supported Providers - -| Provider | Description | Setup Complexity | -|----------|-------------|------------------| -| **WhatsApp** | Via CallMeBot service | Easy | -| **ntfy** | Self-hosted or ntfy.sh | Very Easy | -| **Pushover** | Dedicated push service | Easy | -| **Telegram** | Via Telegram Bot | Medium | -| **Email** | SMTP email | Medium | -| **Discord** | Channel webhooks | Easy | -| **Webhook** | Generic HTTP POST | Flexible | - ---- - -## Adding a Notification Provider - -1. Go to **Settings** > **Notifications** -2. Click **Add Provider** -3. Select provider type -4. Enter required configuration -5. Click **Send Test** to verify -6. Configure event triggers -7. Click **Add** - ---- - -## Provider Setup Guides - -### WhatsApp (CallMeBot) - -Free WhatsApp notifications via CallMeBot: - -1. Add CallMeBot to contacts: **+34 644 51 95 23** -2. Send via WhatsApp: `I allow callmebot to send me messages` -3. You'll receive an API key -4. In Bambuddy, enter: - - **Phone Number**: Your number with country code (e.g., +1234567890) - - **API Key**: The key from CallMeBot - -### ntfy - -Simple topic-based notifications: - -1. Choose a unique topic name (e.g., `my-printer-xyz123`) -2. Subscribe on your phone: - - Install ntfy app ([Android](https://play.google.com/store/apps/details?id=io.heckel.ntfy) / [iOS](https://apps.apple.com/app/ntfy/id1625396347)) - - Subscribe to your topic -3. In Bambuddy, enter: - - **Topic**: Your chosen topic name - - **Server**: `https://ntfy.sh` (default) or your self-hosted server - -> No account needed for ntfy.sh public server! - -### Pushover - -Professional push notification service: - -1. Create account at [pushover.net](https://pushover.net/) -2. Install Pushover app on your device -3. Create an Application in Pushover dashboard -4. In Bambuddy, enter: - - **User Key**: From your Pushover account - - **API Token**: From your Application - -### Telegram - -Via Telegram Bot: - -1. Message [@BotFather](https://t.me/BotFather) on Telegram -2. Send `/newbot` and follow prompts -3. Save the **Bot Token** provided -4. Message [@userinfobot](https://t.me/userinfobot) to get your **Chat ID** -5. In Bambuddy, enter: - - **Bot Token**: From BotFather - - **Chat ID**: Your user or group chat ID - -> For group notifications, add the bot to the group and use the group's chat ID. - -### Email (SMTP) - -Send notifications via email: - -1. Gather your SMTP server details -2. In Bambuddy, enter: - - **SMTP Server**: e.g., `smtp.gmail.com` - - **Port**: 587 (STARTTLS), 465 (SSL), or 25 (None) - - **Security**: STARTTLS, SSL, or None - - **Username**: Your email address - - **Password**: Your password or app password - - **From Address**: Sender email - - **To Address**: Recipient email - -#### Gmail Setup -1. Enable 2-Factor Authentication on your Google account -2. Generate an [App Password](https://myaccount.google.com/apppasswords) -3. Use the app password (not your regular password) -4. Server: `smtp.gmail.com`, Port: 587, Security: STARTTLS - -### Discord - -Via channel webhooks: - -1. In Discord, go to channel settings -2. Navigate to **Integrations** > **Webhooks** -3. Click **New Webhook** -4. Customize name/avatar if desired -5. Click **Copy Webhook URL** -6. In Bambuddy, paste the **Webhook URL** - -### Webhook (Generic) - -For custom integrations (Home Assistant, IFTTT, etc.): - -1. Enter your webhook URL -2. Optionally add custom headers (e.g., Authorization) -3. Bambuddy sends JSON payloads: - -```json -{ - "event": "print_complete", - "printer": "Workshop X1C", - "filename": "benchy.3mf", - "duration": "2h 15m", - "timestamp": "2024-01-15T14:30:00Z" -} -``` - ---- - -## Event Triggers - -Configure which events send notifications: - -| Event | Description | -|-------|-------------| -| **Print Started** | When a print job begins | -| **Print Completed** | When a print finishes successfully | -| **Print Failed** | When a print fails or errors out | -| **Print Stopped** | When you manually cancel a print | -| **Progress Milestones** | At 25%, 50%, and 75% progress | -| **Printer Offline** | When a printer disconnects | -| **Printer Error** | When HMS errors are detected | -| **Low Filament** | When filament is running low | - -Enable/disable each event per provider. - ---- - -## Quiet Hours - -Suppress notifications during sleep or focus time: - -1. Enable **Quiet Hours** toggle -2. Set **Start Time** (e.g., 22:00) -3. Set **End Time** (e.g., 07:00) - -Notifications during quiet hours are silently skipped. - ---- - -## Per-Printer Filtering - -Limit notifications to specific printers: - -1. Open provider settings -2. Find **Printer** dropdown -3. Select a specific printer (or "All Printers") - -Only events from the selected printer(s) trigger notifications. - ---- - -## Daily Digest - -Batch notifications into a daily summary: - -1. Enable **Daily Digest** toggle -2. Set **Digest Time** (e.g., 08:00) - -### How It Works -- Individual events are collected (not sent immediately) -- At digest time, one summary notification is sent -- Summary includes counts and details of all events - -### Example Digest -``` -Daily Print Summary: -- 3 prints completed -- 1 print failed -- Total print time: 8h 45m -- Filament used: 245g -``` - ---- - -## Message Templates - -Customize notification messages using variables: - -### Accessing Templates -1. Go to **Settings** > **Notifications** -2. Click **Templates** tab -3. Click any event type to edit - -### Using Variables -Insert dynamic content using `{variable}` syntax: -- Click variable buttons to insert -- Preview with sample data -- Save to apply changes - -### Available Variables - -**Print Start** -- `{printer}` - Printer name -- `{filename}` - Print filename -- `{estimated_time}` - Estimated duration - -**Print Complete** -- `{printer}`, `{filename}` -- `{duration}` - Actual print time -- `{filament_grams}` - Filament used - -**Print Failed** -- `{printer}`, `{filename}`, `{duration}` -- `{reason}` - Failure reason - -**Print Progress** -- `{printer}`, `{filename}` -- `{progress}` - Percentage complete -- `{remaining_time}` - Time remaining - -**Printer Offline** -- `{printer}` - -**Printer Error** -- `{printer}` -- `{error_type}` - HMS error type -- `{error_detail}` - Error description - -**Filament Low** -- `{printer}` -- `{slot}` - AMS slot number -- `{remaining_percent}` - Filament remaining -- `{color}` - Filament color - -**Common Variables** (all events) -- `{timestamp}` - Event time -- `{app_name}` - "Bambuddy" - -### Reset to Default -Click the reset button on any template to restore the original message. - ---- - -## Testing Notifications - -Before relying on notifications: - -1. Configure your provider -2. Click **Send Test** -3. Verify you receive the test message -4. If it fails, check configuration and try again - ---- - -## Tips - -- Use **ntfy** for the simplest setup (no account needed) -- Enable **quiet hours** to avoid middle-of-night alerts -- Set up **multiple providers** for redundancy -- Use **progress milestones** for long prints -- Configure **printer filtering** if you have multiple printers -- Customize **templates** to include only the info you need diff --git a/docs/wiki/Features-Print-Archiving.md b/docs/wiki/Features-Print-Archiving.md deleted file mode 100644 index ba8b19c4f..000000000 --- a/docs/wiki/Features-Print-Archiving.md +++ /dev/null @@ -1,156 +0,0 @@ -# Print Archiving - -Bambuddy automatically archives every print with full metadata extraction, creating a searchable history of all your 3D prints. - -## How It Works - -When a print completes on any connected printer: - -1. **Detection**: Bambuddy detects the print completion via MQTT -2. **Download**: The 3MF file is downloaded from the printer via FTPS -3. **Extraction**: Metadata is extracted from the 3MF (layers, filament, settings) -4. **Storage**: Everything is saved to the `archive/` directory -5. **Display**: The print appears in your Archives with a thumbnail - -## What Gets Archived - -### Files -- **3MF File**: Complete print file (can be re-printed later) -- **Thumbnail**: Preview image from the slicer -- **Timelapse**: Video if enabled on printer (auto-attached or manual) -- **Finish Photo**: Automatic camera capture on completion - -### Metadata -| Field | Description | -|-------|-------------| -| Print Time | Estimated vs actual duration | -| Filament | Material type, color, weight used | -| Layers | Total count and layer height | -| Temperatures | Nozzle and bed temperatures | -| Printer | Which printer completed the job | -| Result | Success, failed, or stopped | -| Colors | Multi-color prints show color swatches | - ---- - -## Archive Features - -### 3D Model Preview -Click any archive to open an interactive Three.js viewer: -- Rotate, zoom, and pan the model -- View from different angles -- See the actual geometry that was printed - -### Duplicate Detection -Bambuddy automatically detects when you've printed the same model before: -- **SHA256 hash** matches exact file content -- **Purple badge** indicates duplicates -- **"Duplicates" filter** shows all duplicate prints -- View duplicate history in archive details - -### Print Time Accuracy -Compare estimated vs actual print times: -- **Green badge**: Accurate (within 5%) -- **Blue badge**: Faster than estimated -- **Orange badge**: Slower than estimated -- Per-printer accuracy statistics available - -### Photo Attachments -Document your prints with photos: -- **Automatic finish photo**: Camera captures when print completes -- **Manual uploads**: Add your own photos -- Multiple photos per archive supported - -### Failure Analysis -When a print fails, document what went wrong: -- Add failure notes -- Attach photos of the failure -- Track failure patterns over time - ---- - -## Managing Archives - -### Filtering & Search -- **By Printer**: Show prints from specific printers -- **By Date**: Filter by time range -- **By Status**: Success, failed, stopped -- **By Collection**: Custom collections you create -- **Search**: Find by filename - -### Context Menu Actions -Right-click any archive card for: -- **Re-print**: Send to any connected printer -- **Schedule**: Add to print queue -- **Project Page**: View/edit MakerWorld metadata -- **Scan for Timelapse**: Find matching timelapse -- **Delete**: Remove from archive - -### Collections -Organize archives into custom collections: -1. Right-click an archive -2. Select "Add to Collection" -3. Create or select a collection -4. Filter archives by collection - ---- - -## Project Page Editor - -3MF files from MakerWorld contain embedded project pages with: -- Model title and description -- Designer information -- License details -- Preview images - -### Viewing Project Pages -1. Right-click an archive -2. Select "Project Page" -3. View all embedded information - -### Editing Project Pages -1. Open the project page -2. Click "Edit" -3. Modify title, description, or other fields -4. Click "Save" (changes are saved to the 3MF file) - ---- - -## Re-printing Archives - -Send any archived print back to a printer: - -1. Right-click the archive -2. Select "Re-print" or "Schedule" -3. Choose a target printer -4. Optionally set a scheduled time -5. Confirm to start the print - -The 3MF file is uploaded via FTP and the print starts automatically. - ---- - -## Storage - -Archives are stored in the `archive/` directory: -``` -archive/ -├── {printer_id}/ -│ ├── {archive_id}/ -│ │ ├── model.3mf -│ │ ├── thumbnail.png -│ │ ├── timelapse.mp4 (if available) -│ │ └── photos/ -│ │ └── finish.jpg -``` - -The SQLite database (`bambuddy.db`) stores metadata and indexes. - ---- - -## Tips - -- **Enable timelapse** on your printer to automatically capture print videos -- **Enable camera capture** in settings for automatic finish photos -- Use **collections** to organize prints by project or client -- Check **duplicate detection** before reprinting to see previous results diff --git a/docs/wiki/Features-Print-Queue.md b/docs/wiki/Features-Print-Queue.md deleted file mode 100644 index f2aea1d4c..000000000 --- a/docs/wiki/Features-Print-Queue.md +++ /dev/null @@ -1,181 +0,0 @@ -# Print Queue & Scheduling - -Schedule prints for specific times with powerful automation including smart plug integration for automatic power control. - -## Overview - -The print queue allows you to: -- Queue multiple prints per printer -- Schedule prints for specific date/time -- Automatically power on printers before scheduled prints -- Automatically power off after prints complete -- Drag-and-drop queue reordering - ---- - -## Adding Prints to Queue - -### From Archives -1. Go to the **Archives** page -2. Right-click an archive -3. Select **Schedule** (or click the calendar icon) -4. Choose options: - - **Printer**: Select target printer - - **Scheduled Time**: Leave empty for "next available" or pick a specific time - - **Auto Power Off**: Turn off printer when complete -5. Click **Add to Queue** - -### Queue Options -| Option | Description | -|--------|-------------| -| **Printer** | Which printer to send the job to | -| **Scheduled Time** | When to start (empty = ASAP) | -| **Auto Power Off** | Power off printer after completion | - ---- - -## Managing the Queue - -### Queue Page -Access the dedicated queue page to see all queued prints across all printers. - -### Per-Printer Queue -Click the queue icon on any printer card to see that printer's queue. - -### Queue Item States -| State | Description | -|-------|-------------| -| **Pending** | Waiting for scheduled time or previous print | -| **Waiting** | Scheduled time reached, waiting for printer | -| **Uploading** | Transferring 3MF to printer | -| **Printing** | Currently printing | -| **Completed** | Print finished successfully | -| **Failed** | Print failed or was cancelled | - -### Reordering -Drag and drop queue items to change print order: -1. Click and hold the grip handle -2. Drag to new position -3. Release to reorder - -> Note: Only pending items can be reordered. Active prints cannot be moved. - -### Cancelling Prints -- **Pending items**: Click the X button to remove -- **Active prints**: Click the stop button (with confirmation) - ---- - -## Automation Flow - -When a scheduled print is ready to start: - -``` -1. Scheduled time reached - ↓ -2. Smart plug powers ON (if configured) - ↓ -3. Wait for printer connection (up to 2 minutes) - ↓ -4. Upload 3MF via FTP - ↓ -5. Start print command sent - ↓ -6. Monitor progress in real-time - ↓ -7. Print completes - ↓ -8. If "Auto Power Off" enabled: - - Wait for nozzle to cool below 50°C - - Power off smart plug -``` - ---- - -## Smart Plug Integration - -For full automation, link a smart plug to your printer. See [Smart Plug Integration](Features-Smart-Plugs) for setup. - -### Pre-Print Power On -When a scheduled print is about to start: -1. Bambuddy sends power-on command to smart plug -2. Waits for printer to boot and connect -3. Proceeds with print upload once connected - -### Post-Print Power Off -When a print completes with "Auto Power Off" enabled: -1. Waits for nozzle temperature to drop below threshold -2. Sends power-off command to smart plug -3. Marks queue item as complete - ---- - -## Scheduling Tips - -### Overnight Prints -Schedule long prints to start overnight: -1. Queue the print with a late evening start time -2. Enable "Auto Power Off" -3. Printer runs while you sleep and turns off when done - -### Morning Warm-Up -Schedule a print to start before you arrive: -1. Set start time 30 minutes before arrival -2. Printer warms up and starts -3. Print is running when you get there - -### Batch Printing -Queue multiple prints for sequential execution: -1. Add all prints to the queue (no scheduled time) -2. First print starts immediately -3. Each subsequent print starts when the previous completes - ---- - -## Error Handling - -### Connection Timeout -If the printer doesn't connect within 2 minutes after power-on: -- Queue item marked as failed -- Error message displayed -- Smart plug remains on (manual intervention needed) - -### Upload Failure -If FTP upload fails: -- Automatic retry (up to 3 attempts) -- Queue item marked as failed if all retries fail - -### Print Failure -If the print fails mid-job: -- Queue item marked as failed -- Next queued item does NOT auto-start -- Manual intervention required - ---- - -## Queue Notifications - -Get notified about queue events: -- **Print Started**: When a queued print begins -- **Print Completed**: When a queued print finishes -- **Print Failed**: When a queued print fails - -Configure notifications in [Push Notifications](Features-Notifications). - ---- - -## Limitations - -- One active print per printer at a time -- Scheduled prints require the printer to be available -- Smart plug automation requires compatible Tasmota device -- Queue items expire after 24 hours if printer remains unavailable - ---- - -## Tips - -- Use "Auto Power Off" for energy savings and safety -- Schedule long prints during off-peak electricity hours -- Keep the queue page open to monitor progress -- Set up notifications to know when prints complete diff --git a/docs/wiki/Features-Smart-Plugs.md b/docs/wiki/Features-Smart-Plugs.md deleted file mode 100644 index e4bc09c93..000000000 --- a/docs/wiki/Features-Smart-Plugs.md +++ /dev/null @@ -1,221 +0,0 @@ -# Smart Plug Integration - -Control Tasmota-based smart plugs for automated power management of your 3D printers. - -## Overview - -Smart plug integration enables: -- Automatic power-on when prints start -- Safe power-off after prints complete (with cooldown) -- Scheduled power on/off times -- Power consumption monitoring -- Energy alerts - ---- - -## Supported Devices - -Any smart plug running [Tasmota](https://tasmota.github.io/docs/) firmware with HTTP API enabled: - -### Popular Compatible Devices -- Sonoff S31 / S26 -- Gosund smart plugs -- Teckin smart plugs -- Treatlife smart plugs -- Any ESP8266/ESP32-based plug with Tasmota - -### Requirements -- Tasmota firmware installed -- HTTP API enabled (default) -- Same network as Bambuddy server - ---- - -## Setting Up a Smart Plug - -### Step 1: Flash Tasmota (if needed) -If your plug doesn't have Tasmota: -1. Follow the [Tasmota installation guide](https://tasmota.github.io/docs/Getting-Started/) -2. Configure WiFi to connect to your network -3. Note the plug's IP address - -### Step 2: Add to Bambuddy -1. Go to **Settings** > **Smart Plugs** -2. Click **Add Plug** -3. Enter the plug's IP address -4. Click **Test** to verify connection -5. Enter a name (auto-filled from device if available) -6. Optionally add authentication credentials -7. Click **Add** - -### Step 3: Link to Printer -1. In the plug settings, find **Linked Printer** -2. Select the printer this plug controls -3. The plug is now associated with that printer - ---- - -## Automation Options - -### Master Toggle -**Enabled**: Turns all automation on/off for this plug - -### Auto Power On -When enabled, the plug turns on automatically when: -- A print starts on the linked printer -- A scheduled print is about to begin - -### Auto Power Off -When enabled, the plug turns off after: -- A print completes successfully -- The delay mode conditions are met - ---- - -## Delay Modes - -Control when the printer powers off after a print completes: - -### Time-Based Delay -Wait a fixed number of minutes: -- Range: 1-60 minutes -- Use case: Simple cooldown period -- Example: Power off 15 minutes after print ends - -### Temperature-Based Delay -Wait until nozzle cools down: -- Default threshold: 50°C (configurable) -- Safer for the printer and environment -- Monitors actual nozzle temperature - -> **Recommendation**: Use temperature-based delay for safety. Hot nozzles can be a fire hazard. - ---- - -## Scheduled Power On/Off - -Set daily schedules for automatic power control: - -### Scheduled Power On -Turn on the plug at a specific time each day: -- Use case: Warm up printer before work hours -- Example: Power on at 8:00 AM - -### Scheduled Power Off -Turn off the plug at a specific time each day: -- Use case: Safety shutoff at night -- Example: Power off at 11:00 PM - -### Configuring Schedules -1. Expand the plug settings panel -2. Enable **Scheduled On** and/or **Scheduled Off** -3. Set the desired time for each -4. Schedules run daily at the specified times - ---- - -## Power Monitoring - -For Tasmota plugs with energy monitoring (e.g., Sonoff S31): - -### Live Power Display -- Current wattage shown on plug card -- Updates in real-time - -### Power Alerts -Get notified when power consumption exceeds a threshold: -1. Enable **Power Alert** in plug settings -2. Set **Power Threshold** in watts (e.g., 200W) -3. Receive notification when threshold exceeded - -### Use Cases for Power Alerts -- Detect printer issues (unexpected high power) -- Confirm heater failures (power too low during printing) -- Verify printer is actively heating/printing - ---- - -## Manual Control - -Each plug card displays: -- **Status**: ON / OFF / Offline -- **Power**: Current consumption (if supported) -- **On/Off buttons**: Manual toggle - -Click the buttons to manually control the plug at any time. - ---- - -## Plug Settings Panel - -Expand any plug card to access all settings: - -| Setting | Description | -|---------|-------------| -| **Name** | Display name for the plug | -| **IP Address** | Network address of the plug | -| **Username/Password** | Authentication (if Tasmota requires it) | -| **Linked Printer** | Which printer this plug controls | -| **Enabled** | Master automation toggle | -| **Auto On** | Power on when print starts | -| **Auto Off** | Power off when print completes | -| **Delay Mode** | Time-based or temperature-based | -| **Delay Value** | Minutes or temperature threshold | -| **Scheduled On/Off** | Daily power schedule | -| **Power Alert** | Enable consumption alerts | -| **Power Threshold** | Wattage for alerts | - ---- - -## Troubleshooting - -### Plug Not Responding -1. Verify IP address is correct -2. Check plug is on the same network -3. Test via browser: `http:///cm?cmnd=Power` -4. Access Tasmota web UI: `http://` - -### Authentication Issues -If Tasmota has a password: -1. Edit the plug in Bambuddy -2. Enter username and password -3. Save and test connection - -### Auto Power-Off Not Working -1. Verify plug is linked to a printer -2. Check Enabled, Auto On, Auto Off toggles -3. For temperature mode: ensure printer is still connected -4. Check logs for error messages - -### Power Monitoring Not Showing -- Not all plugs support power monitoring -- Requires Tasmota with energy module -- Check Tasmota console for power readings - ---- - -## Best Practices - -### Safety First -- Always use temperature-based delay for power-off -- Set a scheduled power-off time as a safety net -- Don't leave printers unattended for extended periods - -### Network Reliability -- Use static IP or DHCP reservation for plugs -- Ensure strong WiFi signal at plug location -- Consider wired connection if reliability is critical - -### Printer Compatibility -- Ensure your printer handles power cycling gracefully -- Some printers need manual intervention after power-on -- Test the automation flow before relying on it - ---- - -## Tips - -- Use power monitoring to track electricity costs -- Set up power alerts to detect print failures -- Combine with print scheduling for full automation -- Schedule power-off at night for safety and savings diff --git a/docs/wiki/Features-Spoolman.md b/docs/wiki/Features-Spoolman.md deleted file mode 100644 index b9e335217..000000000 --- a/docs/wiki/Features-Spoolman.md +++ /dev/null @@ -1,218 +0,0 @@ -# Spoolman Integration - -Sync your AMS filament data with [Spoolman](https://github.com/Donkie/Spoolman) for comprehensive filament inventory management. - -## Overview - -When enabled, Bambuddy syncs AMS filament data with your Spoolman server: -- Track remaining filament across all spools -- Automatic usage deduction during prints -- Auto-create spools and filaments in Spoolman -- Support for multiple printers and AMS units - ---- - -## Prerequisites - -- A running Spoolman server (self-hosted or Docker) -- Bambu Lab spools with original RFID tags in your AMS -- Printer connected to Bambuddy - ---- - -## Setting Up Spoolman - -### Step 1: Enable Integration -1. Go to **Settings** > scroll to **Spoolman Integration** -2. Enable the **Enable Spoolman** toggle - -### Step 2: Configure Connection -1. Enter your Spoolman server URL: - - Example: `http://192.168.1.100:7912` - - Include protocol (http/https) and port -2. Click **Save** - -### Step 3: Connect -1. Click **Connect** to establish the connection -2. Status should change to "Connected" -3. If connection fails, verify URL and network access - ---- - -## Sync Modes - -### Automatic Sync -AMS data syncs automatically when changes are detected: -- Filament loaded/unloaded -- Filament usage during prints -- AMS slot changes - -Enable automatic sync for hands-off operation. - -### Manual Only -Sync only when you explicitly request it: -- Click the **Sync** button -- Select specific printer or "All Printers" -- Results show how many trays were synced - ---- - -## How Syncing Works - -### Tray UUID Matching -Bambuddy matches AMS spools to Spoolman using the **tray UUID**: -- Unique 32-character identifier -- Assigned by Bambu Lab to each original spool -- Consistent across different printers - -### What Gets Synced - -| Data | Direction | Description | -|------|-----------|-------------| -| Remaining weight | AMS → Spoolman | Current filament amount | -| Usage during print | AMS → Spoolman | Deducted from inventory | -| Filament type | AMS → Spoolman | PLA, PETG, ABS, etc. | -| Color | AMS → Spoolman | Spool color | - -### Auto-Creation - -When a Bambu Lab spool is detected that doesn't exist in Spoolman: - -1. **Vendor**: "Bambu Lab" vendor created if needed -2. **Filament**: Filament type created (matched by material/color) -3. **Spool**: New spool created with: - - Tray UUID as identifier - - Material type and color - - Comment noting auto-creation - ---- - -## Supported Spools - -### Bambu Lab Original Spools ✓ -- Have valid RFID tags with tray UUIDs -- Full sync support -- Automatic matching - -### Third-Party Spools ✗ -These are gracefully skipped (no errors): -- SpoolEase refilled spools -- Other refilled spools -- Generic filament without RFID -- Spools with invalid/missing UUIDs - -> Third-party spools don't cause sync errors—they're simply skipped. - ---- - -## Manual Sync - -When using manual sync mode: - -1. Go to **Settings** > **Spoolman Integration** -2. Select a printer from the dropdown (or "All Printers") -3. Click **Sync** -4. Results display: - - Number of trays synced - - Any skipped spools - - Error messages if applicable - ---- - -## Viewing Synced Data - -### In Spoolman -After syncing, check your Spoolman interface: -- New spools appear in inventory -- Remaining amounts are updated -- Usage history is recorded - -### In Bambuddy -AMS data displayed on printer cards shows: -- Slot colors and materials -- Remaining filament percentages -- Sync status indicators - ---- - -## Troubleshooting - -### Connection Issues - -**"Connection refused" or timeout** -- Verify Spoolman URL is correct -- Check server is running: `http://:7912/api/v1/info` -- Ensure no firewall blocking port 7912 -- Verify same network or proper routing - -**"Invalid URL"** -- Include protocol: `http://` or `https://` -- Include port: `:7912` -- No trailing slash - -### Sync Issues - -**"No spools synced"** -- Verify AMS has spools loaded -- Check spools have valid RFID (original Bambu Lab) -- Ensure printer is connected - -**"Third-party spools skipped"** -- This is normal behavior -- SpoolEase and refilled spools don't have valid UUIDs -- No action needed - -**"Spool not found in Spoolman"** -- Auto-creation should handle this -- Check Spoolman logs for errors -- Verify Spoolman API is accessible - -### Data Mismatch - -**Spoolman shows wrong amount** -- Manual edits in Spoolman override synced data -- Re-sync to update from AMS -- AMS sensor may have calibration issues - ---- - -## Best Practices - -### Initial Setup -1. Do a full manual sync first -2. Verify all spools appear in Spoolman -3. Then enable automatic sync - -### Filament Changes -- Sync after loading new spools -- Spoolman updates automatically during prints -- Check periodically for accuracy - -### Multiple Printers -- Each printer's AMS syncs independently -- Same spool moved between printers is tracked by UUID -- Use "All Printers" sync for comprehensive update - ---- - -## API Endpoints - -Bambuddy uses these Spoolman API endpoints: - -| Endpoint | Purpose | -|----------|---------| -| `/api/v1/info` | Connection test | -| `/api/v1/spool` | List/create spools | -| `/api/v1/filament` | List/create filaments | -| `/api/v1/vendor` | List/create vendors | -| `/api/v1/spool/{id}/use` | Record usage | - ---- - -## Tips - -- Use automatic sync for seamless tracking -- Check Spoolman periodically for accuracy -- Original Bambu Lab spools work best -- Third-party spools need manual tracking in Spoolman -- Export Spoolman data for backup diff --git a/docs/wiki/Features-Statistics.md b/docs/wiki/Features-Statistics.md deleted file mode 100644 index 57488f0d6..000000000 --- a/docs/wiki/Features-Statistics.md +++ /dev/null @@ -1,153 +0,0 @@ -# Statistics Dashboard - -The Statistics page provides analytics and insights about your printing activity through customizable, drag-and-drop widgets. - -## Dashboard Widgets - -### Print Success Rate -Track reliability across all printers: -- **Success**: Completed prints -- **Failed**: Prints that failed mid-job -- **Stopped**: Manually cancelled prints -- Visual pie chart breakdown -- Per-printer filtering available - -### Filament Usage -Monitor material consumption: -- **By material type**: PLA, PETG, ABS, etc. -- **By color**: Breakdown of colors used -- **Over time**: Trend charts -- **Total weight**: Cumulative usage in grams/kg - -### Print Activity Calendar -GitHub-style contribution calendar showing: -- Daily print activity -- Color intensity = number of prints -- Click any day to see prints from that date -- Identify patterns in your printing habits - -### Cost Tracking -Calculate printing costs: -- **Per print**: Based on filament used -- **Total costs**: Cumulative spending -- **By material**: Cost breakdown by filament type -- Requires filament costs to be configured - -### Time Accuracy -Analyze estimated vs actual print times: -- **Average accuracy**: How close estimates are -- **Per-printer breakdown**: Compare printer accuracy -- **Trend over time**: Is accuracy improving? -- Helps calibrate expectations for future prints - -### Print Duration Distribution -Understand your typical print lengths: -- Histogram of print durations -- Short vs long print patterns -- Average print time - ---- - -## Customizing Your Dashboard - -### Drag and Drop -Rearrange widgets by clicking and dragging the grip handle: -1. Hover over a widget header -2. Click the grip icon (⋮⋮) -3. Drag to new position -4. Release to drop - -### Resizing Widgets -Change widget sizes: -1. Click the resize icon on any widget -2. Cycles through: 1/4 width → 1/2 width → Full width -3. Layout adjusts automatically - -### Hiding Widgets -Remove widgets you don't need: -1. Click the eye icon on any widget -2. Widget is hidden from view -3. Re-enable from widget settings - -### Reset Layout -Return to default layout: -1. Click "Reset Layout" button -2. All widgets return to original positions and sizes - -### Persistence -Your layout preferences are saved automatically and persist across sessions. - ---- - -## Filtering Data - -### Time Range -Filter statistics by date range: -- Last 7 days -- Last 30 days -- Last 90 days -- All time -- Custom range - -### Printer Selection -View statistics for: -- All printers combined -- Individual printers -- Compare across printers - ---- - -## Filament Cost Configuration - -To enable cost tracking: - -1. Go to **Settings** > **Filaments** -2. Add your filaments with costs: - - Material type (PLA, PETG, etc.) - - Color - - Cost per kg - - Vendor (optional) -3. Statistics will calculate costs based on usage - ---- - -## Export Data - -Export your statistics: -- **CSV format**: For spreadsheets -- **Date range**: Select period to export -- **Fields**: Print name, duration, filament, cost, etc. - ---- - -## Widget Details - -### Print Count Widget -- Total prints in selected period -- Comparison to previous period -- Growth/decline indicator - -### Filament by Type Widget -- Pie chart of material distribution -- Click segments to filter -- Legend with exact amounts - -### Printer Utilization Widget -- Hours of active printing -- Idle time percentage -- Per-printer breakdown - -### Recent Activity Widget -- Latest completed prints -- Quick status overview -- Click to view archive details - ---- - -## Tips - -- Check the dashboard weekly to spot trends -- Use per-printer filtering to identify reliability issues -- Configure filament costs for accurate expense tracking -- Export data monthly for record keeping -- Watch time accuracy to improve print estimates diff --git a/docs/wiki/Getting-Started.md b/docs/wiki/Getting-Started.md deleted file mode 100644 index b55b35818..000000000 --- a/docs/wiki/Getting-Started.md +++ /dev/null @@ -1,141 +0,0 @@ -# Getting Started - -This guide will help you set up your first printer and start using Bambuddy. - -## Prerequisites - -Before adding a printer, ensure: -- Bambuddy is running (see [Installation](Installation)) -- Your printer is powered on and connected to your network -- You have access to your printer's settings - ---- - -## Enabling LAN Mode on Your Printer - -Bambuddy connects to printers via LAN Mode. Here's how to enable it: - -### Step 1: Enable Developer Mode (if required) -Some printer models require Developer Mode to be enabled first: -1. On your printer's touchscreen, go to **Settings** -2. Navigate to **General** or **About** -3. Look for **Developer Mode** and enable it - -### Step 2: Enable LAN Mode -1. Go to **Settings** > **Network** > **LAN Mode** -2. Toggle **LAN Mode** to **ON** -3. Note down the **Access Code** displayed (8 characters) - -### Step 3: Find Your Printer's Information -You'll need these details: -- **IP Address**: Found in **Settings** > **Network** -- **Serial Number**: Found in **Settings** > **Device Info** -- **Access Code**: Shown when LAN Mode is enabled - -> **Tip**: The access code changes every time you toggle LAN Mode off and on. - ---- - -## Adding Your First Printer - -1. Open Bambuddy in your browser (default: http://localhost:8000) -2. Go to the **Printers** page -3. Click **Add Printer** -4. Enter the following information: - - **Name**: A friendly name (e.g., "Workshop X1C") - - **IP Address**: Your printer's local IP - - **Access Code**: The 8-character code from LAN Mode - - **Serial Number**: Your printer's serial number -5. Click **Save** - -The printer should connect automatically. You'll see: -- A **green indicator** when connected -- Real-time status updates (temperatures, print progress, etc.) - ---- - -## Understanding the Interface - -### Printers Page -- **Printer Cards**: Show real-time status for each printer -- **HMS Status**: Health Management System indicator (green = OK) -- **Temperature Readouts**: Nozzle, bed, and chamber temperatures -- **Print Progress**: Current layer, time remaining, filament usage - -### Archives Page -- **Archive Cards**: All completed prints with thumbnails -- **Filters**: Sort by printer, date, status, collections -- **Search**: Find prints by name -- **Context Menu**: Right-click for actions (re-print, delete, etc.) - -### Statistics Page -- **Drag-and-drop Widgets**: Customize your dashboard -- **Print Success Rate**: Track reliability -- **Filament Usage**: Monitor material consumption -- **Cost Tracking**: Calculate printing costs - ---- - -## Your First Archived Print - -Once your printer is connected, Bambuddy automatically archives completed prints: - -1. Start a print on your Bambu Lab printer (via Bambu Studio, Handy, or the printer itself) -2. Bambuddy detects the print and monitors progress -3. When the print completes: - - The 3MF file is downloaded via FTP - - Metadata is extracted (layers, filament, temperatures, etc.) - - A thumbnail is generated - - The print appears in your Archives - -### What Gets Archived -- **3MF File**: The complete print file -- **Thumbnail**: Preview image from the slicer -- **Metadata**: Print time, filament usage, layer count, temperatures -- **Finish Photo**: Automatic camera capture (if enabled) -- **Print Result**: Success, failed, or stopped status - ---- - -## Keyboard Shortcuts - -Navigate quickly with keyboard shortcuts: - -| Key | Action | -|-----|--------| -| `1` | Go to Printers | -| `2` | Go to Archives | -| `3` | Go to Statistics | -| `4` | Go to Cloud Profiles | -| `5` | Go to Settings | -| `?` | Show keyboard shortcuts | - ---- - -## Mobile Access - -Bambuddy works on phones and tablets: - -- **Hamburger Menu**: Tap the menu icon to open navigation -- **Touch-Friendly**: All controls are sized for easy tapping -- **Responsive Layout**: Pages adapt to smaller screens -- **Context Menus**: Tap the three-dot icon on cards for actions - ---- - -## Next Steps - -Now that you're set up, explore these features: - -- **[Print Queue & Scheduling](Features-Print-Queue)** - Schedule prints for later -- **[Smart Plug Integration](Features-Smart-Plugs)** - Automate power control -- **[Push Notifications](Features-Notifications)** - Get alerts on your phone -- **[Spoolman Integration](Features-Spoolman)** - Track filament inventory - ---- - -## Having Issues? - -- **Printer won't connect?** See [Troubleshooting](Troubleshooting#printer-connection-issues) -- **Prints not archiving?** See [Troubleshooting](Troubleshooting#archiving-issues) -- **Need help?** Open an [issue on GitHub](https://github.com/maziggy/bambuddy/issues) diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md deleted file mode 100644 index 1ccec357f..000000000 --- a/docs/wiki/Home.md +++ /dev/null @@ -1,57 +0,0 @@ -# Bambuddy Wiki - -Welcome to the Bambuddy documentation! Bambuddy is a self-hosted print archive and management system for Bambu Lab 3D printers. - -## Quick Links - -| Getting Started | Features | Reference | -|-----------------|----------|-----------| -| [Installation](Installation) | [Print Archiving](Features-Print-Archiving) | [API Documentation](API-Reference) | -| [Getting Started](Getting-Started) | [Real-time Monitoring](Features-Monitoring) | [Troubleshooting](Troubleshooting) | -| [Adding Your First Printer](Getting-Started#adding-your-first-printer) | [Print Queue & Scheduling](Features-Print-Queue) | [Environment Variables](Installation#environment-variables) | - -## Feature Documentation - -### Core Features -- **[Print Archiving](Features-Print-Archiving)** - Automatic 3MF archiving with metadata extraction -- **[Real-time Monitoring](Features-Monitoring)** - Live printer status, temperatures, and progress -- **[Statistics Dashboard](Features-Statistics)** - Print analytics, success rates, and cost tracking - -### Automation -- **[Print Queue & Scheduling](Features-Print-Queue)** - Schedule prints with smart plug automation -- **[Smart Plug Integration](Features-Smart-Plugs)** - Tasmota-based power control and monitoring -- **[Push Notifications](Features-Notifications)** - Multi-provider alerts (WhatsApp, Telegram, Discord, etc.) - -### Integrations -- **[Spoolman Integration](Features-Spoolman)** - Filament inventory sync -- **[Cloud Profiles](Features-Cloud-Profiles)** - Bambu Cloud slicer preset management -- **[K-Profiles](Features-K-Profiles)** - Pressure advance settings management - -### Maintenance & Management -- **[Maintenance Tracker](Features-Maintenance)** - Schedule and track printer maintenance -- **[File Manager](Features-File-Manager)** - Browse and manage printer SD card files -- **[External Links](Features-External-Links)** - Add custom sidebar links to external tools - -## Supported Printers - -| Series | Models | Status | -|--------|--------|--------| -| H2 Series | H2C, H2D, H2S | Tested (H2D) | -| X1 Series | X1, X1 Carbon | Tested (X1C) | -| P1 Series | P1P, P1S | Needs Testing | -| A1 Series | A1, A1 Mini | Needs Testing | - -> **Testers Needed!** If you have a printer model that needs testing, please help by reporting your experience in [GitHub Issues](https://github.com/maziggy/bambuddy/issues). - -## Requirements - -- **Python 3.10+** (3.11 or 3.12 recommended) -- **Node.js 18+** (only for building frontend from source) -- Bambu Lab printer with **LAN Mode** enabled -- Printer and server on the same local network - -## Need Help? - -- Check the [Troubleshooting](Troubleshooting) guide -- Search [existing issues](https://github.com/maziggy/bambuddy/issues) -- Open a [new issue](https://github.com/maziggy/bambuddy/issues/new) if you're stuck diff --git a/docs/wiki/Installation.md b/docs/wiki/Installation.md deleted file mode 100644 index 6aa0d50bd..000000000 --- a/docs/wiki/Installation.md +++ /dev/null @@ -1,236 +0,0 @@ -# Installation - -This guide covers all methods for installing Bambuddy on your system. - -## Quick Install (Linux/macOS) - -```bash -# Clone the repository -git clone https://github.com/maziggy/bambuddy.git -cd bambuddy - -# Create and activate virtual environment -python3 -m venv venv -source venv/bin/activate - -# Install Python dependencies -pip install -r requirements.txt - -# Start the server -uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 -``` - -Open http://localhost:8000 in your browser. - ---- - -## Detailed Installation - -### Step 1: Install Prerequisites - -#### macOS -```bash -# Install Homebrew if not installed -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - -# Install Python and Node.js -brew install python@3.12 node -``` - -#### Ubuntu/Debian -```bash -sudo apt update -sudo apt install python3 python3-venv python3-pip nodejs npm git -``` - -#### Windows -1. Download and install [Python 3.12](https://www.python.org/downloads/) (check "Add to PATH") -2. Download and install [Node.js LTS](https://nodejs.org/) -3. Download and install [Git](https://git-scm.com/download/win) - -### Step 2: Clone the Repository - -```bash -git clone https://github.com/maziggy/bambuddy.git -cd bambuddy -``` - -### Step 3: Set Up Python Environment - -#### Linux/macOS -```bash -python3 -m venv venv -source venv/bin/activate -pip install --upgrade pip -pip install -r requirements.txt -``` - -#### Windows (PowerShell) -```powershell -python -m venv venv -.\venv\Scripts\Activate.ps1 -pip install --upgrade pip -pip install -r requirements.txt -``` - -#### Windows (Command Prompt) -```cmd -python -m venv venv -venv\Scripts\activate.bat -pip install --upgrade pip -pip install -r requirements.txt -``` - -### Step 4: Build Frontend (Optional) - -The repository includes pre-built frontend files in `/static`. To build from source: - -```bash -cd frontend -npm install -npm run build -cd .. -``` - -### Step 5: Run the Application - -```bash -uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 -``` - -Open http://localhost:8000 in your browser. - ---- - -## Running as a Service (Linux) - -Create a systemd service for automatic startup: - -```bash -sudo nano /etc/systemd/system/bambuddy.service -``` - -Add the following content (adjust paths): - -```ini -[Unit] -Description=Bambuddy Print Archive -After=network.target - -[Service] -Type=simple -User=YOUR_USERNAME -WorkingDirectory=/home/YOUR_USERNAME/bambuddy -Environment="PATH=/home/YOUR_USERNAME/bambuddy/venv/bin" -ExecStart=/home/YOUR_USERNAME/bambuddy/venv/bin/uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 -Restart=always -RestartSec=10 - -[Install] -WantedBy=multi-user.target -``` - -Enable and start: - -```bash -sudo systemctl daemon-reload -sudo systemctl enable bambuddy -sudo systemctl start bambuddy - -# Check status -sudo systemctl status bambuddy - -# View logs -sudo journalctl -u bambuddy -f -``` - ---- - -## Docker Installation (Coming Soon) - -```bash -docker run -d \ - --name bambuddy \ - -p 8000:8000 \ - -v bambuddy_data:/app/data \ - -v bambuddy_archive:/app/archive \ - maziggy/bambuddy:latest -``` - ---- - -## Environment Variables - -Configure Bambuddy using environment variables or a `.env` file: - -```bash -cp .env.example .env -``` - -| Variable | Default | Description | -|----------|---------|-------------| -| `DEBUG` | `false` | Enable debug mode (verbose logging, SQL queries) | -| `LOG_LEVEL` | `INFO` | Log level: `DEBUG`, `INFO`, `WARNING`, `ERROR` | -| `LOG_TO_FILE` | `true` | Write logs to `logs/bambuddy.log` | - -### Production Settings (default) -- INFO level logging -- SQLAlchemy and HTTP library noise suppressed -- Logs written to `logs/bambuddy.log` (5MB rotating, 3 backups) - -### Development Settings (`DEBUG=true`) -- DEBUG level logging (verbose) -- All SQL queries logged -- Useful for troubleshooting printer connections - -Example `.env` for development: -```bash -DEBUG=true -LOG_TO_FILE=true -``` - ---- - -## Updating Bambuddy - -### Manual Update -```bash -cd bambuddy -git pull origin main - -# Activate virtual environment -source venv/bin/activate # Linux/macOS -# or: .\venv\Scripts\Activate.ps1 # Windows PowerShell - -# Update dependencies -pip install -r requirements.txt - -# Rebuild frontend (if needed) -cd frontend -npm install -npm run build -cd .. - -# Restart the application -``` - -### Auto Updates -Bambuddy includes automatic update checking. Go to **Settings** to check for updates and apply them with one click. - ---- - -## Network Requirements - -| Port | Protocol | Purpose | -|------|----------|---------| -| 8000 | HTTP | Bambuddy web interface | -| 8883 | MQTT/TLS | Printer communication | -| 990 | FTPS | File transfers | - -Ensure your firewall allows these connections between Bambuddy and your printers. - ---- - -## Next Steps - -Once installed, proceed to [Getting Started](Getting-Started) to add your first printer. diff --git a/docs/wiki/Troubleshooting.md b/docs/wiki/Troubleshooting.md deleted file mode 100644 index 29e629d77..000000000 --- a/docs/wiki/Troubleshooting.md +++ /dev/null @@ -1,392 +0,0 @@ -# Troubleshooting - -Solutions to common issues with Bambuddy. - -## Printer Connection Issues - -### Printer Won't Connect - -**Check LAN Mode** -1. On printer: **Settings** > **Network** > **LAN Mode** -2. Ensure LAN Mode is **enabled** -3. Note the **Access Code** (changes when toggled) - -**Verify Credentials** -- **IP Address**: Correct local IP (not cloud address) -- **Access Code**: 8-character code from LAN Mode screen -- **Serial Number**: Found in **Settings** > **Device Info** - -**Network Issues** -- Printer and Bambuddy must be on same network -- Check printer can be pinged: `ping ` -- Ensure ports 8883 (MQTT) and 990 (FTP) aren't blocked - -**Other Applications** -- Only one MQTT connection allowed per printer -- Close Bambu Studio or Bambu Handy -- Disconnect other monitoring tools - -### "Connection Refused" Errors - -**Printer in Sleep Mode** -- Wake the printer and try again -- Sleep mode disconnects MQTT - -**Another Connection Active** -- Close Bambu Studio -- Close Bambu Handy -- Wait 30 seconds and retry - -**Printer Restart** -- Power cycle the printer -- Wait for full boot -- Try connecting again - -### Intermittent Disconnections - -**Network Stability** -- Check WiFi signal strength at printer -- Consider wired connection if available -- Reduce network congestion - -**Printer Firmware** -- Update to latest firmware -- Some versions have MQTT bugs - -**Bambuddy Logs** -- Check `logs/bambuddy.log` for errors -- Enable DEBUG mode for more detail - ---- - -## Archiving Issues - -### Prints Not Archiving Automatically - -**Check Connection** -- Printer must show green (connected) -- Verify real-time updates are working - -**Print Completion** -- Only completed prints are archived -- Cancelled prints may not archive -- Check print actually finished - -**FTP Access** -- Verify FTP connectivity -- Check logs for FTP errors - -**View Logs** -```bash -tail -f logs/bambuddy.log -``` -Look for archiving-related errors. - -### 3MF Download Fails - -**FTP Connection** -- Port 990 must be accessible -- Check firewall settings -- Verify printer responds to FTP - -**File Still in Use** -- Wait for print to fully complete -- Printer may still be processing - -**Storage Full** -- Check Bambuddy server disk space -- Check `archive/` directory size - -### Missing Thumbnails - -**3MF Content** -- Some 3MF files lack thumbnails -- Manually sliced files may not have previews - -**Extraction Issue** -- Check logs for thumbnail errors -- Re-archive the print if needed - ---- - -## Timelapse Issues - -### Timelapse Not Attaching Automatically - -**Printer Clock Issue** (Most Common) -When printers run in LAN-only mode, they can't sync time via NTP. The internal clock drifts, causing timelapse matching to fail. - -**Symptoms:** -- "No matching timelapse found" -- Files exist on printer but don't attach -- Printer shows wrong date/time - -**Workaround - Manual Selection:** -1. Right-click archive > **Scan for Timelapse** -2. If no auto-match, dialog shows available files -3. Select the correct timelapse -4. Click to attach - -**Permanent Fix:** -1. Temporarily connect printer to internet -2. Wait for NTP time sync -3. Return to LAN-only mode -4. Clock remains accurate until power cycle - -### Timelapse Recording Not Working - -**Enable in Printer Settings** -1. On printer: **Settings** > **Camera** -2. Enable **Timelapse Recording** - -**Storage Space** -- Timelapses need SD card space -- Clear old files if full - ---- - -## Frontend Issues - -### Frontend Not Loading - -**Build the Frontend** -```bash -cd frontend -npm install -npm run build -``` - -**Verify Static Files** -- Check `/static` folder exists -- Contains `index.html` and `/assets` - -**Clear Browser Cache** -- Hard refresh: Ctrl+Shift+R (Cmd+Shift+R on Mac) -- Try incognito/private window - -### Blank Page or Errors - -**Browser Console** -- Open DevTools (F12) -- Check Console for errors -- Look for failed network requests - -**API Connection** -- Backend must be running -- Check backend logs for errors -- Verify port 8000 is accessible - -### WebSocket Not Connecting - -**Check Backend** -- Backend must be running -- WebSocket endpoint: `/api/v1/ws` - -**Firewall/Proxy** -- WebSocket needs persistent connection -- Some proxies block WebSocket -- Check network configuration - ---- - -## Database Issues - -### Database Errors - -**Backup and Reset** -```bash -# Backup current database -mv bambuddy.db bambuddy.db.backup - -# Restart Bambuddy - creates new database -uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 -``` - -**Migration Issues** -- New versions may change schema -- Usually handled automatically -- Check logs for migration errors - -### Data Not Persisting - -**File Permissions** -- Bambuddy needs write access to: - - `bambuddy.db` - - `archive/` directory - - `logs/` directory - -**Disk Space** -- Ensure adequate free space -- SQLite needs space for transactions - ---- - -## Smart Plug Issues - -### Plug Not Responding - -**Network** -1. Verify IP address is correct -2. Check plug is on same network -3. Test directly: `http:///cm?cmnd=Power` - -**Tasmota Web Interface** -- Access `http://` -- Verify Tasmota is running -- Check for firmware updates - -**Authentication** -- If Tasmota has password, configure in Bambuddy -- Check credentials are correct - -### Auto Power-Off Not Working - -**Configuration** -1. Plug must be linked to printer -2. Automation must be enabled -3. Auto Off must be enabled - -**Temperature Mode** -- Printer must stay connected -- Bambuddy reads nozzle temp -- Check temp threshold setting - -**Time Mode** -- Verify delay value is set -- Check logs for power-off attempts - ---- - -## Scheduled Print Issues - -### Print Not Starting - -**Printer Not Ready** -- Printer must be idle -- No active prints -- Printer must connect after power-on - -**Smart Plug** -- If using auto power-on, plug must work -- Verify plug automation is configured - -**Queue Status** -- Check queue page for errors -- Look for failed status - -### "Failed to Start" Error - -**Common Causes** -- Printer not ready or connected -- FTP upload failed -- HMS errors preventing print - -**Check:** -1. Printer HMS status (no errors) -2. Printer is idle and connected -3. FTP port 990 accessible -4. File exists in archive - ---- - -## Notification Issues - -### Not Receiving Notifications - -**Provider Configuration** -- Verify credentials are correct -- Use **Send Test** to verify -- Check provider-specific requirements - -**Event Triggers** -- Ensure desired events are enabled -- Check per-printer filtering - -**Quiet Hours** -- Notifications suppressed during quiet hours -- Verify quiet hours settings - -### Test Works But Events Don't - -**Event Not Triggering** -- Verify event type is enabled -- Check printer filter settings -- Look for errors in logs - -**Daily Digest** -- If enabled, events are batched -- Wait for digest time -- Or disable digest for immediate notifications - ---- - -## Performance Issues - -### Slow Interface - -**Browser** -- Clear cache and cookies -- Try different browser -- Disable browser extensions - -**Backend** -- Check server resources -- Review logs for errors -- Consider DEBUG=false for production - -### High Memory Usage - -**Large Archives** -- Many archives increase memory -- Consider archiving to external storage -- Clean up old/unwanted archives - -**Multiple Printers** -- Each printer uses MQTT connection -- Normal for multi-printer setups - ---- - -## Viewing Logs - -### Log File Location -```bash -# Default location -logs/bambuddy.log - -# View live -tail -f logs/bambuddy.log - -# Search for errors -grep -i error logs/bambuddy.log -``` - -### Enable Debug Logging -```bash -DEBUG=true uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 -``` - -### Systemd Service Logs -```bash -sudo journalctl -u bambuddy -f -``` - ---- - -## Getting Help - -### Before Asking for Help -1. Check this troubleshooting guide -2. Review logs for error messages -3. Search [existing issues](https://github.com/maziggy/bambuddy/issues) -4. Enable DEBUG mode and reproduce the issue - -### Reporting Issues -When opening an issue, include: -- Bambuddy version -- Printer model -- Operating system -- Relevant log snippets -- Steps to reproduce - -[Open a new issue](https://github.com/maziggy/bambuddy/issues/new) diff --git a/docs/wiki/_Sidebar.md b/docs/wiki/_Sidebar.md deleted file mode 100644 index 213d0444a..000000000 --- a/docs/wiki/_Sidebar.md +++ /dev/null @@ -1,22 +0,0 @@ -## Getting Started -- [Home](Home) -- [Installation](Installation) -- [Getting Started](Getting-Started) - -## Features -- [Print Archiving](Features-Print-Archiving) -- [Real-time Monitoring](Features-Monitoring) -- [Statistics Dashboard](Features-Statistics) -- [Print Queue & Scheduling](Features-Print-Queue) -- [Smart Plugs](Features-Smart-Plugs) -- [Push Notifications](Features-Notifications) -- [Spoolman Integration](Features-Spoolman) -- [Cloud Profiles](Features-Cloud-Profiles) -- [K-Profiles](Features-K-Profiles) -- [Maintenance Tracker](Features-Maintenance) -- [File Manager](Features-File-Manager) -- [External Links](Features-External-Links) - -## Reference -- [API Reference](API-Reference) -- [Troubleshooting](Troubleshooting) diff --git a/icons/7a3afd1aa53c47e38ea7e55356403f99.svg b/icons/7a3afd1aa53c47e38ea7e55356403f99.svg new file mode 100644 index 000000000..0f3725468 --- /dev/null +++ b/icons/7a3afd1aa53c47e38ea7e55356403f99.svg @@ -0,0 +1 @@ + \ No newline at end of file