- Removed unused function for getting current date in ISO8601 format.
- Updated JSON key names in filament and spool creation to use shorter identifiers.
- Enhanced NFC interface reset procedure with detailed logging and retry mechanisms.
- Improved stability checks after write operations to ensure NFC interface readiness.
- Added comprehensive error handling and diagnostics for NFC read/write operations.
- Streamlined the quick spool ID check to optimize performance and reliability.
Improved version of the NFC writing workaround. The task is no longer suspended. There is now a suspend request and a suspend state variable that is used to communicate between the writing and the reading task. The reading is stopped gracefully to prevent resets during writing.
Improved version of the NFC writing workaround. The task is no longer suspended. There is now a suspend request and a suspend state variable that is used to communicate between the writing and the reading task. The reading is stopped gracefully to prevent resets during writing.
Fixes some issues related to tag writing. Allos writing of tags that are already on the scale when pressing the write button, but introduces a confirmation dialog before doing so. Also first test to fix reset issue when trying to write tags.
Fixes some issues related to tag writing. Allos writing of tags that are already on the scale when pressing the write button, but introduces a confirmation dialog before doing so. Also first test to fix reset issue when trying to write tags.
Introduces the new graphics for the NFC writing process. Also fixes some minor display bugs. Hides the service status icons during boot time. Fixes bugs in NFC write process where mutliple parallel API calls a created. Fixes a bug where spoolman is updated if a location tag is written (which is not required or correct).
Introduces the new graphics for the NFC writing process. Also fixes some minor display bugs. Hides the service status icons during boot time. Fixes bugs in NFC write process where mutliple parallel API calls a created. Fixes a bug where spoolman is updated if a location tag is written (which is not required or correct).
Reworks the graphics of the NFC-Tag reading process of spool and location tags. Introduces progress bar for reading process. Also first re-work of the spoolman availability (not fixed completly yet). Also fixes an issue where the API request to spoolman and octoprint was sent in parallel. This now happens sequentially to reduce heap load.
Reworks the graphics of the NFC-Tag reading process of spool and location tags. Introduces progress bar for reading process. Also first re-work of the spoolman availability (not fixed completly yet). Also fixes an issue where the API request to spoolman and octoprint was sent in parallel. This now happens sequentially to reduce heap load.
Reworks the graphics during the startup. Introduces a progress bar to visualize how much of the boot is completed. Also changes the the optics of the bambu, spoolman and wifi icons. They are now always displayed but they will be striked out if not working and they will start blinking. Also removes some unnessesary waits.
Reworks the graphics during the startup. Introduces a progress bar to visualize how much of the boot is completed. Also changes the the optics of the bambu, spoolman and wifi icons. They are now always displayed but they will be striked out if not working and they will start blinking. Also removes some unnessesary waits.
Fixes multiple potential memory leaks in API and NFC. Also fixes an issue in the new locaiton tag feature that could lead to multiple parallel API requests. This could cause memory leak issues but also result in wrong weights being registered for a spool.
Introduces a new define HEAP_DEBUG_MESSAGE(location) that can be used to instrument the code to get heap information output on the Serial output. It can be enabled via the define ENABLE_HEAP_DEBUGGING. Also fixes some memory leaks in the website part of the project.
Fixes an issue where the location dropdown is not visible if the Bambu integration is active. Adds support for the "NFC-Tag" view on the webpage, it now also shows info about the location tags. Revers a change that was not supposed to go into main where the amount of data written to the spool tag is reduced to only the sm_id.
Location tags can be written via the website. If a location tag is read after reading a spool tag, the location of the spool will be updated in spoolman to the location from the tag.
if you wanna send a Spool to AMS:
- Uncaught TypeError: Cannot read properties of undefined (reading 'replace')
at handleSpoolIn (rfid.js:493:67)
at HTMLButtonElement.onclick ((Index):1:1)
handleSpoolIn @ rfid.js:493
onclick @ (Index):1
Fixes some issues in the scale handling. Prevents a wdg reset after
after scale calibration. Also makes sure that after calibration all
tasks are started again that have been suspsended before.
- Verwendet das NFC-Tag-Format von [Openspool](https://github.com/spuder/OpenSpool)
- Ermöglicht automatische Spulenerkennung im AMS
- **Hersteller Tag Unterstützung:** Automatische Erstellung von Spoolman-Einträgen aus Hersteller NFC-Tags ([Mehr erfahren](README_ManufacturerTags_DE.md))
### Wenn Sie meine Arbeit unterstützen möchten, freue ich mich über einen Kaffee
<ahref="https://www.buymeacoffee.com/manuelw"target="_blank"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Buy Me A Coffee"style="height: 30px !important;width: 108px !important;"></a>
## Hersteller Tags Unterstützung
🎉 **Aufregende Neuigkeiten!** FilaMan unterstützt jetzt **Hersteller Tags** - NFC-Tags, die direkt von Filament-Herstellern vorprogrammiert geliefert werden!
### Erster Hersteller-Partner: RecyclingFabrik
Wir freuen uns anzukündigen, dass [**RecyclingFabrik**](https://www.recyclingfabrik.de) der **erste Filament-Hersteller** sein wird, der FilaMan unterstützt, indem sie NFC-Tags im FilaMan-Format auf ihren Spulen anbieten!
**Demnächst verfügbar:** RecyclingFabrik-Spulen werden NFC-Tags enthalten, die sich automatisch in Ihr FilaMan-System integrieren, manuelle Einrichtung überflüssig machen und perfekte Kompatibilität gewährleisten.
### Wie Hersteller Tags funktionieren
Wenn Sie zum ersten Mal einen Hersteller NFC-Tag scannen:
1.**Automatische Markenerkennung:** FilaMan erkennt den Hersteller und erstellt die Marke in Spoolman
2.**Filament-Typ Erstellung:** Alle Materialspezifikationen werden automatisch hinzugefügt
3.**Spulen-Registrierung:** Ihre spezifische Spule wird mit korrektem Gewicht und Spezifikationen registriert
4.**Zukünftige Schnellerkennung:** Nachfolgende Scans verwenden Fast-Path-Erkennung für sofortige Gewichtsmessung
### If you want to support my work, i would be happy to get a coffe
<ahref="https://www.buymeacoffee.com/manuelw"target="_blank"><imgsrc="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"alt="Buy Me A Coffee"style="height: 30px !important;width: 108px !important;"></a>
## Manufacturer Tags Support
🎉 **Exciting News!** FilaMan now supports **Manufacturer Tags** - NFC tags that come pre-programmed directly from filament manufacturers!
### First Manufacturer Partner: RecyclingFabrik
We're thrilled to announce that [**RecyclingFabrik**](https://www.recyclingfabrik.de) will be the **first filament manufacturer** to support FilaMan by offering NFC tags in the FilaMan format on their spools!
**Coming Soon:** RecyclingFabrik spools will include NFC tags that automatically integrate with your FilaMan system, eliminating manual setup and ensuring perfect compatibility.
### How Manufacturer Tags Work
When you scan a manufacturer NFC tag for the first time:
1.**Automatic Brand Detection:** FilaMan recognizes the manufacturer and creates the brand in Spoolman
2.**Filament Type Creation:** All material specifications are automatically added
3.**Spool Registration:** Your specific spool is registered with proper weight and specifications
4.**Future Fast Recognition:** Subsequent scans use fast-path detection for instant weight measurement
Das FilaMan NFC-System unterstützt **Hersteller Tags**, die es Filament-Produzenten ermöglichen, standardisierte NFC-Tags für ihre Produkte zu erstellen. Beim Scannen dieser Tags werden automatisch die notwendigen Einträge in Spoolman (Marke, Filament-Typ und Spule) erstellt, ohne dass eine manuelle Einrichtung erforderlich ist.
## Funktionsweise der Hersteller Tags
### Ablauf
1.**Tag-Erkennung**: Wenn ein Tag ohne `sm_id` gescannt wird, prüft das System auf Hersteller Tag Format
2.**Marken-Erstellung/Suche**: Das System sucht die Marke in Spoolman oder erstellt sie, falls sie nicht existiert
3.**Filament-Typ-Erstellung/Suche**: Der Filament-Typ wird basierend auf Marke, Material und Spezifikationen erstellt oder gefunden
4.**Spulen-Erstellung**: Ein neuer Spulen-Eintrag wird automatisch mit der Tag-UID als Referenz erstellt
5.**Tag-Update**: Der Tag wird mit der neuen Spoolman Spulen-ID (`sm_id`) aktualisiert
### Warum Hersteller Tags verwenden?
- **Automatische Integration**: Keine manuelle Dateneingabe erforderlich
- Aussagekräftige Farbnamen für bessere Benutzererfahrung verwenden
- Tags vor Massenproduktion mit dem FilaMan-System testen
## System-Integration
### Spoolman Datenbankstruktur
Bei der Verarbeitung eines Hersteller Tags erstellt das System:
1.**Lieferanten-Eintrag**: Markeninformationen in der Spoolman Lieferanten-Datenbank
2.**Filament-Eintrag**: Materialspezifikationen und Eigenschaften
3.**Spulen-Eintrag**: Einzelne Spule mit Gewicht und NFC-Tag-Referenz
### Fast-Path Erkennung
Sobald ein Tag verarbeitet und mit `sm_id` aktualisiert wurde, nutzt er das Fast-Path-Erkennungssystem für schnelle nachfolgende Scans.
## Fehlerbehebung
### Häufige Probleme
- **Tag zu klein**: NTAG215 oder NTAG216 für größere JSON-Payloads verwenden
- **Fehlende Felder**: Sicherstellen, dass alle Pflichtfelder vorhanden sind
- **Ungültiges Format**: JSON-Syntax und Feldtypen überprüfen
- **Spoolman-Verbindung**: Sicherstellen, dass FilaMan mit der Spoolman API verbinden kann
### Validierung
Das System validiert:
- JSON-Format Korrektheit
- Vorhandensein der Pflichtfelder
- Datentyp-Konformität
- Tag-Größe Kompatibilität
## Technische Details
### Verarbeitungsalgorithmus
1. Tag-Scan erkennt kein `sm_id` Feld
2. System prüft auf `b` (Marke) und `an` (Artikelnummer) Felder
3.`checkVendor()` erstellt oder findet Marke in Spoolman
4.`checkFilament()` erstellt oder findet Filament-Typ
5.`createSpool()` erstellt neuen Spulen-Eintrag
6. Tag wird mit neuer `sm_id` aktualisiert
### Fehlerbehandlung
- Graceful Fallback bei Netzwerkproblemen
- Detaillierte Protokollierung für Debugging
- Benutzer-Feedback bei fehlgeschlagenen Operationen
- Wiederholungsmechanismen für temporäre Fehler
### Systemverhalten
#### Bei fehlendem sm_id:
- System prüft auf `b` (brand) und `an` (artnr) Felder
- Falls vorhanden → Hersteller Tag erkannt
- Automatische Erstellung von Lieferant, Filament und Spule in Spoolman
- Tag wird mit neuer `sm_id` beschrieben
#### Bei vorhandenem sm_id:
- Fast-Path Erkennung für bekannte Spulen
- Sofortige Gewichtsmessung ohne vollständige Tag-Analyse
- Optimierte Performance für häufig verwendete Tags
Dieses System ermöglicht eine nahtlose Integration von Hersteller-Filamentprodukten in das FilaMan-Ökosystem unter Beibehaltung von Datenkonsistenz und Benutzererfahrung.
The FilaMan NFC system supports **Manufacturer Tags** that allow filament producers to create standardized NFC tags for their products. When scanned, these tags automatically create the necessary entries in Spoolman (brand, filament type, and spool) without requiring manual setup.
## How Manufacturer Tags Work
### Process Flow
1.**Tag Detection**: When a tag without `sm_id` is scanned, the system checks for manufacturer tag format
2.**Brand Creation/Lookup**: The system searches for the brand in Spoolman or creates it if it doesn't exist
3.**Filament Type Creation/Lookup**: The filament type is created or found based on brand, material, and specifications
4.**Spool Creation**: A new spool entry is automatically created with the tag's UID as reference
5.**Tag Update**: The tag is updated with the new Spoolman spool ID (`sm_id`)
### Why Use Manufacturer Tags?
- **Automatic Integration**: No manual data entry required
- **Standardized Format**: Consistent product information across different manufacturers
- **Inventory Management**: Automatic creation of complete Spoolman entries
- **Traceability**: Direct link between physical product and digital inventory
## Tag Format Specification
### JSON Structure
Manufacturer tags must contain a JSON payload with specific fields using **short keys** to minimize tag size:
```json
{
"b":"Brand/Vendor Name",
"an":"Article Number",
"t":"Filament Type (PLA, PETG, etc)",
"c":"Filament Color without # (FF5733)",
"mc":"Optional Multicolor Filament Colors without # (FF0000,00FF00,0000FF)",
"mcd":"Optional Multicolor Direction as Word (coaxial, longitudinal)",
"cn":"Color Name (red, Blueberry, Arctic Blue)",
"et":"Extruder Temp as Number in C° (230)",
"bt":"Bed Temp as Number in C° (60)",
"di":"Diameter as Float (1.75)",
"de":"Density as Float (1.24)",
"sw":"Empty Spool Weight as Number in g (180)",
"u":"URL to get the Filament with the Article Number"
1.**Tag Encoding**: Use NDEF format with MIME type `application/json`
2.**Data Minimization**: Use the compact JSON format to fit within tag size limits
3.**Quality Control**: Ensure all required fields are present and correctly formatted
4.**Testing**: Verify tags work with FilaMan system before production
### Tag Size Considerations
- **NTAG213**: 144 bytes user data (suitable for basic tags)
- **NTAG215**: 504 bytes user data (recommended for comprehensive data)
- **NTAG216**: 888 bytes user data (maximum compatibility)
### Best Practices
- Keep brand names consistent across all products
- Use standardized material type names (PLA, PETG, ABS, etc.)
- Provide accurate temperature recommendations
- Include meaningful color names for user experience
- Test tags with the FilaMan system before mass production
## System Integration
### Spoolman Database Structure
When a manufacturer tag is processed, the system creates:
1.**Vendor Entry**: Brand information in Spoolman vendor database
2.**Filament Entry**: Material specifications and properties
3.**Spool Entry**: Individual spool with weight and NFC tag reference
### Fast-Path Recognition
Once a tag is processed and updated with `sm_id`, it uses the fast-path recognition system for quick subsequent scans.
## Troubleshooting
### Common Issues
- **Tag Too Small**: Use NTAG215 or NTAG216 for larger JSON payloads
- **Missing Fields**: Ensure all required fields are present
- **Invalid Format**: Verify JSON syntax and field types
- **Spoolman Connection**: Ensure FilaMan can connect to Spoolman API
### Validation
The system validates:
- JSON format correctness
- Required field presence
- Data type compliance
- Tag size compatibility
## Technical Details
### Processing Algorithm
1. Tag scan detects no `sm_id` field
2. System checks for `b` (brand) and `an` (article number) fields
3.`checkVendor()` creates or finds brand in Spoolman
4.`checkFilament()` creates or finds filament type
5.`createSpool()` creates new spool entry
6. Tag is updated with new `sm_id`
### Error Handling
- Graceful fallback for network issues
- Detailed logging for debugging
- User feedback for failed operations
- Retry mechanisms for temporary failures
This system enables seamless integration of manufacturer filament products into the FilaMan ecosystem while maintaining data consistency and user experience.
//bool res = wm.autoConnect("FilaMan"); // anonymous ap
if(!wm.autoConnect("FilaMan")){
@@ -80,9 +79,6 @@ void initWiFi() {
Serial.println(WiFi.localIP());
oledShowTopRow();
display.display();
vTaskDelay(500/portTICK_PERIOD_MS);
// mDNS
startMDNS();
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.