summaryrefslogtreecommitdiff
path: root/api_layers
diff options
context:
space:
mode:
Diffstat (limited to 'api_layers')
-rw-r--r--api_layers/firmware/esp32_stringPot/esp32_stringPot.ino38
1 files changed, 21 insertions, 17 deletions
diff --git a/api_layers/firmware/esp32_stringPot/esp32_stringPot.ino b/api_layers/firmware/esp32_stringPot/esp32_stringPot.ino
index 63d4349..236f728 100644
--- a/api_layers/firmware/esp32_stringPot/esp32_stringPot.ino
+++ b/api_layers/firmware/esp32_stringPot/esp32_stringPot.ino
@@ -36,13 +36,26 @@
*/
#include <EEPROM.h>
+// EEPROM-persisted configuration
+#define EEPROM_SIZE 64
+#define EEPROM_MAGIC 0xC1
+
const int sensorPin = A0;
const unsigned long sampleInterval = 2000;
unsigned long lastSampleTime = 0;
-// EEPROM-persisted configuration
-#define EEPROM_SIZE 64
-#define EEPROM_MAGIC 0xC1
+// Calibration (mirrors cfg, kept as separate globals for fast access in loop())
+float calibration_factor = 1.0;
+float calibration_offset = 0.0;
+
+// 2nd-order Butterworth low-pass (biquad, direct form II transposed)
+const float butterworth_sampleHz = 1000000.0 / sampleInterval;
+float butter_b0, butter_b1, butter_b2, butter_a1, butter_a2;
+float butter_z1 = 0.0, butter_z2 = 0.0;
+
+String serialLine;
+bool streamingEnabled = true;
+bool calibPointSet[2] = {false, false};
struct StoredConfig {
uint8_t magic;
@@ -58,19 +71,6 @@ StoredConfig cfg = {
0.5
};
-// Calibration (mirrors cfg, kept as separate globals for fast access in loop())
-float calibration_factor = 1.0;
-float calibration_offset = 0.0;
-
-// 2nd-order Butterworth low-pass (biquad, direct form II transposed)
-const float butterworth_sampleHz = 1000000.0 / sampleInterval;
-float butter_b0, butter_b1, butter_b2, butter_a1, butter_a2;
-float butter_z1 = 0.0, butter_z2 = 0.0;
-
-String serialLine;
-bool streamingEnabled = true;
-bool calibPointSet[2] = {false, false};
-
void setup() {
Serial.begin(115200);
@@ -93,8 +93,11 @@ void loop() {
lastSampleTime = currentTime;
float filtered_displacement = butterworthLowPass(readCalibratedPosition());
+ float raw_displacement = readCalibratedPosition();
if (streamingEnabled) {
- Serial.println(filtered_displacement, 2);
+ Serial.print(filtered_displacement, 2);
+ Serial.print(", ");
+ Serial.println(raw_displacement, 2);
}
}
@@ -231,6 +234,7 @@ void printConfig() {
Serial.println(calibration_offset, 6);
Serial.print("Butterworth cutoff (Hz):\t");
Serial.println(cfg.butterworth_cutoffHz, 3);
+ interruptibleDelay(10000);
}
void printHelp() {