diff --git a/designs/cad/box_top.FCStd b/designs/cad/box_top.FCStd new file mode 100644 index 0000000..287fbd7 Binary files /dev/null and b/designs/cad/box_top.FCStd differ diff --git a/designs/cad/remote.20250125-170345.FCBak b/designs/cad/remote.20250125-170345.FCBak new file mode 100644 index 0000000..166debb Binary files /dev/null and b/designs/cad/remote.20250125-170345.FCBak differ diff --git a/designs/cad/remote.FCStd b/designs/cad/remote.FCStd index 495a2e3..06a8a1d 100644 Binary files a/designs/cad/remote.FCStd and b/designs/cad/remote.FCStd differ diff --git a/designs/cad/remote_box.20250125-170552.FCBak b/designs/cad/remote_box.20250125-170552.FCBak new file mode 100644 index 0000000..ba3666b Binary files /dev/null and b/designs/cad/remote_box.20250125-170552.FCBak differ diff --git a/designs/cad/remote_box.FCStd b/designs/cad/remote_box.FCStd index 09a1ddf..cc975df 100644 Binary files a/designs/cad/remote_box.FCStd and b/designs/cad/remote_box.FCStd differ diff --git a/designs/stl/box_top.stl b/designs/stl/box_top.stl new file mode 100644 index 0000000..8af9ece Binary files /dev/null and b/designs/stl/box_top.stl differ diff --git a/designs/stl/impeller_larger_6_blade.stl b/designs/stl/impeller_larger_6_blade.stl new file mode 100644 index 0000000..200a957 Binary files /dev/null and b/designs/stl/impeller_larger_6_blade.stl differ diff --git a/designs/stl/remote.stl b/designs/stl/remote.stl index b695a75..f391c9d 100644 Binary files a/designs/stl/remote.stl and b/designs/stl/remote.stl differ diff --git a/designs/stl/remote_box.stl b/designs/stl/remote_box.stl index 24aedf1..297d9ce 100644 Binary files a/designs/stl/remote_box.stl and b/designs/stl/remote_box.stl differ diff --git a/src/siren_controller_esp32_simple_station/siren_controller_esp32_simple_station.ino b/src/siren_controller_esp32_simple_station/siren_controller_esp32_simple_station.ino index 1578cea..9ce8359 100644 --- a/src/siren_controller_esp32_simple_station/siren_controller_esp32_simple_station.ino +++ b/src/siren_controller_esp32_simple_station/siren_controller_esp32_simple_station.ino @@ -15,7 +15,7 @@ // WiFi stuff const char* ssid = "sirening"; const char* pwd = "alarm_11735"; -const IPAddress ip(192, 168, 4, 201); +const IPAddress ip(192, 168, 4, 203); const IPAddress gateway(192, 168, 4, 1); const IPAddress subnet(255, 255, 0, 0); @@ -33,7 +33,7 @@ AiEsp32RotaryEncoder ampEncoderButton = AiEsp32RotaryEncoder(33, 25, 26, -1, 4); float frequency = 0; float amplitude = 0; const int ports = 6; -const int motorIndex = 0; +const int motorIndex = 2; // Display Defs #define I2C_ADDRESS 0x3C @@ -49,11 +49,11 @@ void killAll() { updateAmp(0.0); } -float hzToRads(int freq){ +float hzToRads(float freq){ return freq * TWO_PI / ports; } -float rpmToRads(int rpm){ +float rpmToRads(float rpm){ return (rpm / 60) * TWO_PI; } @@ -81,11 +81,17 @@ void setupOSC(){ }); OscWiFi.subscribe(settings_port, "/freq", [](const OscMessage& m) { - updateFreq(m.arg(0)); + float input = m.arg(0); + if(input < 500.0 && input >= 0.0){ + updateFreq(input); + } }); OscWiFi.subscribe(settings_port, "/amp", [](const OscMessage& m) { - updateAmp(m.arg(0)); + float input = m.arg(0); + if(input < 500.0 && input >= 0.0){ + updateAmp(input); + } }); } @@ -104,19 +110,21 @@ void setupEncoderButton(AiEsp32RotaryEncoder& eb, char* val){ } else { eb.setup(readAmpEncoderISR); } - eb.setBoundaries(0, 4000, false); + eb.setBoundaries(0, 5000, false); eb.setAcceleration(1000); } //This needs to be more sophisticated. Moving on if it disconnects... void initWiFi() { + int attempts = 0; WiFi.mode(WIFI_STA); WiFi.begin(ssid, pwd); WiFi.config(ip, gateway, subnet); Serial.println(); Serial.print("Connecting to WiFi .."); - while (WiFi.status() != WL_CONNECTED) { + while (WiFi.status() != WL_CONNECTED && attempts < 5) { Serial.print('.'); + attempts += 1; delay(1000); } Serial.println(WiFi.localIP()); diff --git a/src/siren_remote_control_esp32/siren_remote_control_esp32.ino b/src/siren_remote_control_esp32/siren_remote_control_esp32.ino index f667c2f..5d1d1ab 100644 --- a/src/siren_remote_control_esp32/siren_remote_control_esp32.ino +++ b/src/siren_remote_control_esp32/siren_remote_control_esp32.ino @@ -63,12 +63,12 @@ void setupOSC(char* path){ float amplitude = m.arg(2); if(frequency != frequencies[motorIndex]){ frequencies[motorIndex] = frequency; - freqEncoderButton.setEncoderValue(frequency * 10.0); + //freqEncoderButton.setEncoderValue(frequencies[sirenSelect] * 10.0); updateDisplay(); } if(amplitude != amplitudes[motorIndex]){ amplitudes[motorIndex] = amplitude; - ampEncoderButton.setEncoderValue(amplitude * 10.0); + //ampEncoderButton.setEncoderValue(amplitudes[sirenSelect] * 10.0); updateDisplay(); } }); @@ -142,6 +142,8 @@ void encoderButtonUpdate(AiEsp32RotaryEncoder& eb, bool& buttonState, char* val) if (!eb.isEncoderButtonDown() && buttonState) { if(val == "freq"){ sirenSelect = (sirenSelect + 1) % 3; + freqEncoderButton.setEncoderValue(frequencies[sirenSelect] * 10.0); + ampEncoderButton.setEncoderValue(amplitudes[sirenSelect] * 10.0); } else { killAll(); }