Skip to content

v0.2.1

Latest

Choose a tag to compare

@Lazybone Lazybone released this 18 Jan 18:27

Highlights

This release adds a complete custom filament management system and fixes several issues, including the brand/type deletion bug.

New Features

Custom Filament Database

  • Custom Brands: Add your own filament brands (appear in Brand dropdown)
  • Custom Material Types: Add custom materials like PLA+, PETG-HT, etc.
  • Temperature Presets: Save custom temperature settings per brand/type combination
  • Import/Export: Backup and restore your custom filament database as JSON
  • Data stored in ESP32 NVS (survives reboots, ~150-200 entries)

Progressive Web App (PWA)

  • Install as app on mobile devices (Add to Homescreen)
  • Fullscreen standalone mode
  • Offline caching of UI via Service Worker

Sound Feedback

  • Optional piezo buzzer support (GPIO6)
  • Beeps for tag detection, successful operations, and errors

Built-in Filament Database

  • Auto-fill temperatures for popular brands: Bambu Lab, Prusament, eSun, Polymaker, Hatchbox, Overture, SUNLU, Jayo
  • 15 material types with sensible defaults

Bug Fixes

  • Fixed: Custom brand/type deletion not working (endpoint routing issue)
  • Fixed: Blocking delays in async handlers causing watchdog resets
  • Fixed: Race conditions with std::atomic<bool> for thread safety
  • Fixed: NDEF format now compatible with Orca Slicer (MIME type record)
  • Fixed: LittleFS auto-recovery on mount failure
  • Fixed: XSS vulnerability in WiFi SSID display

Technical Improvements

  • Added HTTP security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection)
  • Input validation with payload size limits
  • Consistent JSON error responses across all API endpoints
  • Deferred action system for WiFi operations

New API Endpoints

GET  /api/filaments              - Get complete database
POST /api/filaments              - Save temperature preset
POST /api/filaments/brand        - Add custom brand
POST /api/filaments/brand/delete - Delete custom brand
POST /api/filaments/type         - Add custom material type
POST /api/filaments/type/delete  - Delete custom material type
POST /api/filaments/reset        - Clear all custom data
POST /api/filaments/import       - Bulk import from JSON