Compare commits
4 Commits
0bf383ecd9
...
v2.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
7a15424bc7 | |||
039a29fa3c | |||
6cccf3d603 | |||
693ee839e5 |
119
CHANGELOG.md
119
CHANGELOG.md
@@ -1,11 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## [2.0.0-beta11] - 2025-08-30
|
||||
## [2.0.0-beta12] - 2025-08-30
|
||||
### Breaking Changes
|
||||
- enhance commit categorization for breaking changes
|
||||
- Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag
|
||||
|
||||
### Added
|
||||
- enhance weight processing with filtered display and API stability checks
|
||||
- implement weight stabilization functions and improve tare handling
|
||||
- add fast-path JSON reading for web interface display
|
||||
- add handling for successful NFC tag writes to send weight to Spoolman without auto-sending to Bambu
|
||||
@@ -25,6 +26,9 @@
|
||||
- Add vendor and filament management to API; implement recycling factory handling in NFC
|
||||
|
||||
### Changed
|
||||
- update platformio.ini for beta version v2.0.0-beta12
|
||||
- update changelog and header for version v2.0.0-beta11
|
||||
- update changelog and header for version v2.0.0-beta11
|
||||
- update platformio.ini for beta version v2.0.0-beta11
|
||||
- update changelog and header for version v2.0.0-beta10
|
||||
- update platformio.ini for beta version v2.0.0-beta10
|
||||
@@ -113,6 +117,119 @@
|
||||
- enhance filament creation logic to include dynamic comments based on payload
|
||||
|
||||
|
||||
## [2.0.0-beta11] - 2025-08-30
|
||||
### Breaking Changes
|
||||
- enhance commit categorization for breaking changes
|
||||
- Handling of Spools with Tags from Vendors. fix: improve get_last_tag function to handle non-beta tags and fallback to newest tag
|
||||
|
||||
### Added
|
||||
- implement weight stabilization functions and improve tare handling
|
||||
- add fast-path JSON reading for web interface display
|
||||
- add handling for successful NFC tag writes to send weight to Spoolman without auto-sending to Bambu
|
||||
- implement robust page reading with error recovery for NFC tags
|
||||
- enhance NFC tag reading with robust error recovery and JSON optimization for fast-path detection
|
||||
- implement robust page reading and safe tag detection with error recovery
|
||||
- add Manufacturer Tags support documentation in German and English
|
||||
- add display delay for vendor, filament, and spool creation processes
|
||||
- add progress bar updates for vendor and filament creation processes
|
||||
- update vendor and filament ID handling to use NULL and add delays for stability
|
||||
- add delay to ensure proper setting of vendor and filament IDs after API state changes
|
||||
- enhance NDEF decoding with detailed validation and debugging output
|
||||
- enhance NDEF decoding to validate structure and extract JSON payload
|
||||
- add logging for decoded JSON data in NFC processing
|
||||
- implement filament and spool creation in Spoolman API
|
||||
- Add JSON structure comments for filament and spool creation
|
||||
- Add vendor and filament management to API; implement recycling factory handling in NFC
|
||||
|
||||
### Changed
|
||||
- update changelog and header for version v2.0.0-beta11
|
||||
- update platformio.ini for beta version v2.0.0-beta11
|
||||
- update changelog and header for version v2.0.0-beta10
|
||||
- update platformio.ini for beta version v2.0.0-beta10
|
||||
- update changelog and header for version v2.0.0-beta9
|
||||
- update platformio.ini for beta version v2.0.0-beta9
|
||||
- update changelog and header for version v2.0.0-beta8
|
||||
- update platformio.ini for beta version v2.0.0-beta8
|
||||
- update changelog and header for version v2.0.0-beta7
|
||||
- update platformio.ini for beta version v2.0.0-beta7
|
||||
- update changelog and header for version v2.0.0-beta6
|
||||
- update changelog and header for version v2.0.0-beta6
|
||||
- update platformio.ini for beta version v2.0.0-beta6
|
||||
- update changelog and header for version v2.0.0-beta5
|
||||
- update platformio.ini for beta version v2.0.0-beta5
|
||||
- update changelog and header for version v2.0.0-beta4
|
||||
- update platformio.ini for beta version v2.0.0-beta4
|
||||
- update changelog and header for version v2.0.0-beta3
|
||||
- update platformio.ini for beta version v2.0.0-beta3
|
||||
- update createVendor and checkVendor functions to accept JsonDocument payload
|
||||
- update changelog and header for version v2.0.0-beta2
|
||||
- update platformio.ini for beta version v2.0.0-beta2
|
||||
- clarify product URL description for Manufacturer Tags in German and English documentation
|
||||
- update changelog and header for version v2.0.0-beta1
|
||||
- update platformio.ini for beta version v2.0.0-beta1
|
||||
- update version to 2.0.0 in platformio.ini
|
||||
- update changelog and header for version v1.5.12-beta18
|
||||
- update platformio.ini for beta version v1.5.12-beta18
|
||||
- update changelog and header for version v1.5.12-beta17
|
||||
- update platformio.ini for beta version v1.5.12-beta17
|
||||
- optimize page limit detection and remove redundant verification code
|
||||
- update changelog and header for version v1.5.12-beta16
|
||||
- update platformio.ini for beta version v1.5.12-beta16
|
||||
- Refactor NFC interface handling and improve error diagnostics
|
||||
- update changelog and header for version v1.5.12-beta15
|
||||
- update platformio.ini for beta version v1.5.12-beta15
|
||||
- enhance NFC write operation diagnostics and improve error handling
|
||||
- enhance NFC write operation handling and prevent tag operations during write
|
||||
- update changelog and header for version v1.5.12-beta14
|
||||
- update platformio.ini for beta version v1.5.12-beta14
|
||||
- optimize JSON payload structure and enhance NFC tag validation process
|
||||
- update changelog and header for version v1.5.12-beta13
|
||||
- update platformio.ini for beta version v1.5.12-beta13
|
||||
- reorganize clearUserDataArea function for improved clarity and safety
|
||||
- update changelog and header for version v1.5.12-beta12
|
||||
- update platformio.ini for beta version v1.5.12-beta12
|
||||
- update changelog and header for version v1.5.12-beta11
|
||||
- update platformio.ini for beta version v1.5.12-beta11
|
||||
- update changelog and header for version v1.5.12-beta10
|
||||
- update platformio.ini for beta version v1.5.12-beta10
|
||||
- streamline task creation in checkVendor and checkFilament functions
|
||||
- update changelog and header for version v1.5.12-beta9
|
||||
- update platformio.ini for beta version v1.5.12-beta9
|
||||
- update changelog and header for version v1.5.12-beta8
|
||||
- update platformio.ini for beta version v1.5.12-beta8
|
||||
- update changelog and header for version v1.5.12-beta7
|
||||
- update platformio.ini for beta version v1.5.12-beta7
|
||||
- update changelog and header for version v1.5.12-beta6
|
||||
- update platformio.ini for beta version v1.5.12-beta6
|
||||
- improve task synchronization in vendor, filament, and spool creation functions
|
||||
- update changelog and header for version v1.5.12-beta5
|
||||
- update platformio.ini for beta version v1.5.12-beta5
|
||||
- update changelog and header for version v1.5.12-beta4
|
||||
- update platformio.ini for beta version v1.5.12-beta4
|
||||
- update changelog and header for version v1.5.12-beta3
|
||||
- update platformio.ini for beta version v1.5.12-beta3
|
||||
- update changelog and header for version v1.5.12-beta2
|
||||
- update platformio.ini for beta version v1.5.12-beta2
|
||||
- update changelog and header for version v1.5.12-beta1
|
||||
- update platformio.ini for beta version v1.5.12-beta1
|
||||
- Merge branch 'main' into recyclingfabrik
|
||||
- Merge branch 'main' into recyclingfabrik
|
||||
|
||||
### Fixed
|
||||
- call scale.tare() in setup after starting scale
|
||||
- update createVendor function to use external_id as comment instead of static text
|
||||
- update to_old_version in platformio.ini to reflect correct previous version
|
||||
- increase delay in start_scale function for improved stability
|
||||
- replace progress bar with message display for remaining weight in sendToApi function
|
||||
- update vendor check to use shorthand key in payload
|
||||
- reset NFC state on API send failure to allow retry
|
||||
- update createdFilamentId reset value to 65535 for better task handling
|
||||
- update createdVendorId reset value to 65535 for improved API handling
|
||||
- update spoolman ID reset values to 65535 for better API response detection
|
||||
- correct color_hex key usage and comment out unused date fields in spool creation
|
||||
- improve API state handling and vendor name formatting
|
||||
- enhance filament creation logic to include dynamic comments based on payload
|
||||
|
||||
## [2.0.0-beta10] - 2025-08-30
|
||||
### Breaking Changes
|
||||
- enhance commit categorization for breaking changes
|
||||
|
@@ -9,7 +9,7 @@
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[common]
|
||||
version = "2.0.0-beta11"
|
||||
version = "2.0.0-beta12"
|
||||
to_old_version = "1.5.10"
|
||||
|
||||
##
|
||||
|
@@ -178,9 +178,11 @@ void loop() {
|
||||
// Ausgabe der Waage auf Display
|
||||
if(pauseMainTask == 0)
|
||||
{
|
||||
// Use filtered weight for smooth display, but still check API weight for significant changes
|
||||
int16_t displayWeight = getFilteredDisplayWeight();
|
||||
if (mainTaskWasPaused || (weight != lastWeight && nfcReaderState == NFC_IDLE && (!bambuCredentials.autosend_enable || autoSetToBambuSpoolId == 0)))
|
||||
{
|
||||
(weight < 2) ? ((weight < -2) ? oledShowMessage("!! -0") : oledShowWeight(0)) : oledShowWeight(weight);
|
||||
(displayWeight < 2) ? ((displayWeight < -2) ? oledShowMessage("!! -0") : oledShowWeight(0)) : oledShowWeight(displayWeight);
|
||||
}
|
||||
mainTaskWasPaused = false;
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@ int16_t weight = 0;
|
||||
#define MOVING_AVERAGE_SIZE 20 // Number of samples for moving average
|
||||
#define LOW_PASS_ALPHA 0.15f // Low-pass filter coefficient (0.1-0.2 works well)
|
||||
#define DISPLAY_THRESHOLD 0.5f // Only update display if change > 0.5g
|
||||
#define API_THRESHOLD 2.0f // Only trigger API actions if change > 2g
|
||||
#define MEASUREMENT_INTERVAL_MS 50 // Measurement interval in milliseconds
|
||||
|
||||
float weightBuffer[MOVING_AVERAGE_SIZE];
|
||||
@@ -24,6 +25,7 @@ uint8_t bufferIndex = 0;
|
||||
bool bufferFilled = false;
|
||||
float filteredWeight = 0.0f;
|
||||
int16_t lastDisplayedWeight = 0;
|
||||
int16_t lastStableWeight = 0; // For API/action triggering
|
||||
unsigned long lastMeasurementTime = 0;
|
||||
|
||||
uint8_t weigthCouterToApi = 0;
|
||||
@@ -44,6 +46,7 @@ void resetWeightFilter() {
|
||||
bufferFilled = false;
|
||||
filteredWeight = 0.0f;
|
||||
lastDisplayedWeight = 0;
|
||||
lastStableWeight = 0; // Reset stable weight for API actions
|
||||
|
||||
// Initialize buffer with zeros
|
||||
for (int i = 0; i < MOVING_AVERAGE_SIZE; i++) {
|
||||
@@ -96,13 +99,31 @@ int16_t processWeightReading(float rawWeight) {
|
||||
// Round to nearest gram
|
||||
int16_t newWeight = round(smoothedWeight);
|
||||
|
||||
// Only update displayed weight if change is significant
|
||||
// Update displayed weight if display threshold is reached
|
||||
if (abs(newWeight - lastDisplayedWeight) >= DISPLAY_THRESHOLD) {
|
||||
lastDisplayedWeight = newWeight;
|
||||
return newWeight;
|
||||
}
|
||||
|
||||
return weight; // Return current weight if change is too small
|
||||
// Update global weight for API actions only if stable threshold is reached
|
||||
int16_t weightToReturn = weight; // Default: keep current weight
|
||||
|
||||
if (abs(newWeight - lastStableWeight) >= API_THRESHOLD) {
|
||||
lastStableWeight = newWeight;
|
||||
weightToReturn = newWeight;
|
||||
|
||||
Serial.printf("Stable weight change detected: %d -> %d (diff: %d)\n",
|
||||
weight, newWeight, abs(newWeight - weight));
|
||||
}
|
||||
|
||||
return weightToReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current filtered weight for display purposes
|
||||
* This returns the smoothed weight even if it hasn't triggered API actions
|
||||
*/
|
||||
int16_t getFilteredDisplayWeight() {
|
||||
return lastDisplayedWeight;
|
||||
}
|
||||
|
||||
// ##### Funktionen für Waage #####
|
||||
@@ -172,17 +193,18 @@ void scale_loop(void * parameter) {
|
||||
// Process weight with stabilization
|
||||
int16_t stabilizedWeight = processWeightReading(rawWeight);
|
||||
|
||||
// Update global weight variable only if it changed
|
||||
// Update global weight variable only if it changed significantly (for API actions)
|
||||
if (stabilizedWeight != weight) {
|
||||
weight = stabilizedWeight;
|
||||
|
||||
// Debug output for monitoring (can be removed in production)
|
||||
static unsigned long lastDebugTime = 0;
|
||||
if (currentTime - lastDebugTime > 1000) { // Print every second
|
||||
Serial.printf("Raw: %.2f, Filtered: %.2f, Final: %d\n",
|
||||
rawWeight, filteredWeight, weight);
|
||||
lastDebugTime = currentTime;
|
||||
}
|
||||
Serial.printf("API weight updated: %d\n", weight);
|
||||
}
|
||||
|
||||
// Debug output for monitoring (can be removed in production)
|
||||
static unsigned long lastDebugTime = 0;
|
||||
if (currentTime - lastDebugTime > 2000) { // Print every 2 seconds
|
||||
Serial.printf("Raw: %.2f, Filtered: %.2f, Display: %d, API: %d\n",
|
||||
rawWeight, filteredWeight, lastDisplayedWeight, weight);
|
||||
lastDebugTime = currentTime;
|
||||
}
|
||||
|
||||
lastMeasurementTime = currentTime;
|
||||
|
@@ -14,6 +14,7 @@ void resetWeightFilter();
|
||||
float calculateMovingAverage();
|
||||
float applyLowPassFilter(float newValue);
|
||||
int16_t processWeightReading(float rawWeight);
|
||||
int16_t getFilteredDisplayWeight();
|
||||
|
||||
extern HX711 scale;
|
||||
extern int16_t weight;
|
||||
|
Reference in New Issue
Block a user