Powerbox SVBONY 241

  • Ersteller des Themas Ersteller des Themas Gerdfr
  • Erstellungsdatum Erstellungsdatum
Dann bin ich mal gespannt :)
 
Ich kann die neue Firmware erste heute Abend testen.
 
Hallo zusammen,
ich habe die Firmware eingespielt. Leider ist der Firmware Uploader auf chinesisch. Aber nach Auswahl des richtigen COM Ports
und einem beherzten klick auf den einzigen Button wurde die Firmware hochgeladen:

1760969243186.png


Meine aktuellen Beobachtungen:
  • Umgebungstemperatur wird innerhalb der Fehlertoleranz jetzt korrekt ausgelesen
  • Luftfeuchtigkeit wird immer noch ca. 10% zu hoch ausgelesen
  • Alle schaltbaren Stromausgänge sind jetzt beim start standardmäßig deaktiviert
  • Der Status der Stromausgänge beim einschalten kann nicht gesetzt werden
  • Der PWM1 Ausgang kann weder mit dem SVBONY Hub Controller noch mit ASCOM geschaltet werden:
    1760969876119.png
Aktuelles Fazit: Ein Fehler behoben, ein Fehler neu eingeführt.

CS,

Dirk
 
Das nenne ich mal ne Leistung ;)
 
Ist bei mir genau so, Temperatur passt jetzt; die Luftfeuchtigkeit ist immer noch 10% zu hoch; Pwm1 keine Funktion, habe den aber auch vor dem Update nicht getestet.
Gruß Andreas
 
Ich habe den SVBONY-Support angeschrieben. Dass der PWM1-Output nicht mehr manuell angesteuert werden kann, ist wohl eine Designentscheidung.

1. PWM1 defaults to 79% power output upon power-up. When the ambient temperature is above 15°C, heating will automatically stop when the heater's temperature sensor temperature rises 7.5°C above the dew point.
2. When the ambient temperature is between 1°C and 15°C, heating will stop when the heater's temperature rises 10°C above the dew point.
3. When the ambient temperature is below 0°C, the heater remains on and stops when the temperature rises above 5°C. Users can flexibly adjust the default heating power by configuring the heater's PWM1 level when the temperature falls below the protection level.
Note:
Manual control is not available when the heater is in the protection mode.
The default PWM1 output is the intelligent defogger output port; PWM2 only supports manual settings.

Auf meine Anmerkung, dass der Luftfeuchtigkeitssensor eine zu hohe Luftfeuchtigkeit misst, wurde nicht eingegangen.
Eine kleine Inkonsistenz ist mir ebenfalls aufgefallen. Der ASCOM-Treiber (gelb) zeigt im Vergleich zum SVBONY-Hub (rot) eine rund 1,5 °C höhere Temperatur an:

1761034620645.png


CS,

Dirk
 
Moin,

habe genau die gleiche Antwort bekommen.

Find die PWM Steuerung ganz schön komisch.

Grüße
Brian
 
Dass der PWM1-Output nicht mehr manuell angesteuert werden kann, ist wohl eine Designentscheidung.


1. PWM1 defaults to 79% power output upon power-up. When the ambient temperature is above 15°C, heating will automatically stop when the heater's temperature sensor temperature rises 7.5°C above the dew point.
2. When the ambient temperature is between 1°C and 15°C, heating will stop when the heater's temperature rises 10°C above the dew point.
3. When the ambient temperature is below 0°C, the heater remains on and stops when the temperature rises above 5°C. Users can flexibly adjust the default heating power by configuring the heater's PWM1 level when the temperature falls below the protection level.
Note:
Manual control is not available when the heater is in the protection mode.
The default PWM1 output is the intelligent defogger output port; PWM2 only supports manual settings.

Das ließt sich für mich irgendwie so als wenn die Box gar nicht den Taupunkt als Wert benutzt um die Taubänder zu steuern sondern einfach nur die Temperatur und das ist ja eigentlich nicht so doll. Grade wenn man mit einem Akku unterwegs ist will man ja, dass das Tauband nur an ist wenn es sein muss. So kann es dich durchaus sein, dass das Tauband auch an ist wenn es gar nicht an sein muss.

Komisch...

Hab SVbony danach mal gefragt.

Grüße
Brian
 
Moin,

hat nochmal jemand was von SVbony gehört?
Eine neue Firmware gibt es noch nicht und ich habe keine Antwort seit Anfang der Woche erhalten.

Grüße
Brian
 
Hi,
Nein, auch nur die Antwort nach dem ersten Firmware Update.
 
Schade, ne Antwort mit "wir arbeiten" dran hätte ja schon gereicht...
 
Moin Brian,
Das ließt sich für mich irgendwie so als wenn die Box gar nicht den Taupunkt als Wert benutzt um die Taubänder zu steuern sondern einfach nur die Temperatur und das ist ja eigentlich nicht so doll. Grade wenn man mit einem Akku unterwegs ist will man ja, dass das Tauband nur an ist wenn es sein muss. So kann es dich durchaus sein, dass das Tauband auch an ist wenn es gar nicht an sein muss.

imho wird der Taupunkt wohl zur Steuerung genutzt "heating will stop when the heater's temperature rises 10°C above the dew point".
Dieser kann allerdings bei falscher Luftfeuchtigkeitsmessung gar nicht korrekt berechnet werden.
Was ich nicht wirklich verstehe, warum der Grenzwert bei unterschiedlichen Umgebungstemperaturen unterschiedlich gesetzt wird:

<0°C Umgebungstemperatur: 5°C Objektivtemperatur über Taupunkt
>1°C Umgebungstemperatur: 10°C Objektivtemperatur über Taupunkt
>15°C Umgebungstemperatur: 7.5°C Objektivtemperatur über Taupunkt

Meiner Meinung wäre es sinvoller, wenn man den Grenzwert setzen könnte (Objektivtemperatur oberhalb des Taupunktes).
Bei dem Selbstbauprojekt Arduino Nano Dew Controller Pro wird dies z.B. so gehandhabt.

CS,

Dirk
 
Zuletzt bearbeitet:
Hallo nochmal,
als ich die neueste Firmware eingespielt habe, ist mir aufgefallen, dass irgendwo was von ESP32 stand.
Ich habe die SVBONY Firmware mal spasseshalber auf ein ESP32 Entwicklungsboard gespielt. Grundsätzlich funktioniert dies:

1761401346114.png


Die Messwerte sind natürlich, aufgrund der fehlenden Sensoren, komplett falsch. Im Grunde muss man jetzt eigentlich "nur" das Pinmapping kennen um eine eigene Firmware zu schreiben....

CS,

Dirk
 
Zuletzt bearbeitet:
Ich habe ein wenig mit dem Multimeter gemessen. Dies habe ich bis jetzt herausbekommen (ohne Gewähr):

DC1: GPIO13
DC2: GPIO12
DC3: GPIO14
DC4: GPIO27
DC5: GPIO26

ADj OUT: GPIO25
usbC12: GPIO19
usb345: GPIO18

PWM1: GPIO33
PWM2: GPIO32

Strommesser: INA219 (I2C)
Ambient (Temperatur, Luftfeuchtigkeit): SHT40 (I2C)
Objektivtemperatur: DS18B20: GPIO?


CS,

Dirk
 
Ich habe Google Gemini darum gebeten mir einen Code zu schreiben, welcher die Sensoren ausliest:

--- Messwerte ---
:: INA219 (Strom/Spannung) ::
Busspannung: 13.99 V
Lastspannung: 13.99 V
Shunt-Spannung: 0.41 mV
Strom: 4.00 mA
Leistung: 56.00 mW

:: SHT40 (Ambient T/H) ::
Temperatur (Ambient): 18.66 °C
Luftfeuchtigkeit: 57.95 %RH

:: DS18B20 (Objektivtemperatur) ::
Objektivtemperatur: 19.00 °C
-----------------------
Auch hier wird die Luftfeuchtigkeit um gut 10% zu hoch ausgegeben. Liegt also anscheinend am Sensor...

CS,

Dirk

Der Code:

Code:
#include <Arduino.h>
#include <Wire.h>

// INA219 - Strommesser
#include <Adafruit_INA219.h>
// Standardadresse 0x40
Adafruit_INA219 ina219(0x40);

// SHT40 - Ambient (Temperatur/Luftfeuchtigkeit)
#include <Adafruit_SHT4x.h>
// Standardadresse 0x44
Adafruit_SHT4x sht40 = Adafruit_SHT4x();

// DS18B20 - Objektivtemperatur
#include <OneWire.h>
#include <DallasTemperature.h>
#define DS18B20_PIN 23 // DS18B20 Datenpin an GPIO 23
OneWire oneWire(DS18B20_PIN);
DallasTemperature sensors(&oneWire);

// Timer-Variablen für das 10-Sekunden-Intervall
const long interval = 10000; // 10 Sekunden in Millisekunden
unsigned long previousMillis = 0;

// Adresse des DS18B20-Sensors (wird im Setup gefunden)
DeviceAddress objTempSensor;
bool ds18b20_gefunden = false;

// --- SETUP ---
void setup() {
    Serial.begin(115200);
    while (!Serial) delay(10);

    Serial.println("--- ESP32 Sensor-Initialisierung gestartet ---");
   
    // I2C-Bus starten (Standardpins ESP32: SDA=21, SCL=22)
    Wire.begin();

    // 1. INA219 Initialisierung
    Serial.print("INA219 (0x40) Initialisierung... ");
    if (!ina219.begin()) {
        Serial.println("FEHLGESCHLAGEN! Ueberpruefen Sie die Verkabelung.");
    } else {
        // Optionale Konfiguration (32V Bus, 2A Maximalstrom)
        ina219.setCalibration_32V_2A();
        Serial.println("OK.");
    }

    // 2. SHT40 Initialisierung
    Serial.print("SHT40 (0x44) Initialisierung... ");
    if (!sht40.begin()) {
        Serial.println("FEHLGESCHLAGEN! Ueberpruefen Sie die Verkabelung.");
    } else {
        sht40.setPrecision(SHT4X_HIGH_PRECISION);
        Serial.println("OK.");
    }

    // 3. DS18B20 Initialisierung
    Serial.print("DS18B20 (GPIO23) Initialisierung... ");
    sensors.begin();
    if (sensors.getDeviceCount() == 0) {
        Serial.println("FEHLGESCHLAGEN! Kein DS18B20 gefunden.");
    } else {
        // Die Adresse des ersten Sensors speichern
        if (sensors.getAddress(objTempSensor, 0)) {
            // Setzt die Auflösung auf 10 Bit (ca. 375 ms Konvertierungszeit)
            sensors.setResolution(objTempSensor, 10);
            Serial.println("OK. Sensor-Adresse gespeichert.");
            ds18b20_gefunden = true;
        } else {
             Serial.println("FEHLGESCHLAGEN! Sensor-Adresse konnte nicht gelesen werden.");
        }
    }
   
    Serial.println("--- Initialisierung abgeschlossen. Starte Messungen. ---");
}

// --- LESEN DER SENSOREN ---
void readSensors() {
    Serial.println("\n--- Messwerte ---");

    // 1. INA219-Messungen
    float busvoltage = ina219.getBusVoltage_V();
    float shuntvoltage = ina219.getShuntVoltage_mV();
    float current_mA = ina219.getCurrent_mA();
    float power_mW = ina219.getPower_mW();
    // Berechnung der Lastspannung
    float loadvoltage = busvoltage + (shuntvoltage / 1000);

    Serial.println(":: INA219 (Strom/Spannung) ::");
    Serial.printf("Busspannung:    %.2f V\n", busvoltage);
    Serial.printf("Lastspannung:   %.2f V\n", loadvoltage);
    Serial.printf("Shunt-Spannung: %.2f mV\n", shuntvoltage);
    Serial.printf("Strom:          %.2f mA\n", current_mA);
    Serial.printf("Leistung:       %.2f mW\n", power_mW);

    // 2. SHT40-Messungen
    sensors_event_t humidity, temp;
    // KORRIGIERTE ZEILE: Liest beide Werte gleichzeitig aus
    sht40.getEvent(&humidity, &temp);

    Serial.println("\n:: SHT40 (Ambient T/H) ::");
    Serial.printf("Temperatur (Ambient): %.2f °C\n", temp.temperature);
    Serial.printf("Luftfeuchtigkeit:     %.2f %%RH\n", humidity.relative_humidity);

    // 3. DS18B20-Messungen
    Serial.println("\n:: DS18B20 (Objektivtemperatur) ::");
    if (ds18b20_gefunden) {
        sensors.requestTemperatures(); // Startet die Temperaturmessung
       
        // Blockierend: Wartet auf die Konvertierung
        float tempC = sensors.getTempC(objTempSensor);

        if (tempC != DEVICE_DISCONNECTED_C) {
            Serial.printf("Objektivtemperatur:   %.2f °C\n", tempC);
        } else {
            Serial.println("FEHLER: DS18B20 Lesefehler oder Sensor getrennt.");
        }
    } else {
        Serial.println("DS18B20 wurde im Setup nicht gefunden.");
    }
   
    Serial.println("-----------------------");
}

// --- LOOP ---
void loop() {
    unsigned long currentMillis = millis();

    // Alle 10 Sekunden (10000 ms) messen
    if (currentMillis - previousMillis >= interval) {
        previousMillis = currentMillis;
        readSensors();
    }
}
 
Servus Zusammen, hat hier jemand bei seiner sv241 pro schonmal beide pwm Ausgänge gleichzeitig betrieben und kann bestätigen, dass das funktioniert? Bei steht immer nur einer unter Spannung...der zweite bleibt Tod. Tausche ich die Bänder an den Anschlüssen wird das andere warm...liegt also nicht an den Bändern..
Cs Ben
 
Hallo Ben,

das habe ich mich auch mal gefragt.
Svbony selber sagt folgendes dazu:

"The Smart Defog feature operates as follows:
1. PWM1 outputs at least 79% power when powered on by default. Heating automatically stops when the ambient temperature is above 15°C and the heater sensor temperature is 7.5°C above the dew point.

2. When the ambient temperature is between 1°C and 15°C, heating stops when the heater temperature is 10°C above the dew point.
3. When the ambient temperature is below 0°C, the heater remains on and stops when the heater temperature exceeds 5°C. When the heater temperature falls below the protection level, the user can flexibly adjust the default heating power by configuring the heater PWM1 level.
Note: Manual control is not available when the heater is in protection mode.

The default PWM1 output is the smart defogger output port; PWM2 only supports manual control."


PWM1 wird also über die Sensoren gesteuert und PWM2 kann man nur manuell steuern.
Warum auch immer...



Ich weiß nicht so richtig was SVbony sich dabei denkt.
Das Produkt an sich fühlt sich gut an.
Aber Entscheidungen wie, dass man den PWM2 nur manuell steuern kann oder, dass ein Chip verbaut wurde der Temp. und Feuchtigkeit nicht richtig ausgibt...

Finde, dass die Box das Geld dann auch nicht wert ist.
Man geht ja eigentlich von was ganz anderem aus...

Grüße
Brian
 
Hallo zusammen,

anknüpfend an meinen letzten Beitrag hier:
Im Grunde muss man jetzt eigentlich "nur" das Pinmapping kennen um eine eigene Firmware zu schreiben....
Es hat mir keine Ruhe gelassen. Ich habe mich hingesetzt, das Pinmapping analysiert und eine eigene Lösung gebaut.

Das Ergebnis ist ein Open-Source-Projekt (SV241-Unbound), das den Controller deutlich flexibler macht. Es besteht aus zwei Komponenten:

  • Custom Firmware (ESP32): Ersetzt die Original-Firmware komplett und erweitert die Funktionalität.
  • ASCOM Alpaca Proxy: Eine Standalone-Anwendung für den PC. Sie verbindet sich via USB mit dem Controller und stellt ihn als Standard ASCOM-Device bereit. Das funktioniert nativ mit jeder Alpaca-fähigen Software (z.B. NINA) oder über einen generierten Treiber auch mit klassischer ASCOM-Software.

Die wichtigsten Features im Überblick:

  • Outputs & Startup-States: Volle Kontrolle über 5x DC, 2x USB und den regelbaren 0-15V Ausgang. Wichtig für den Remote-Betrieb: Der Startup-Zustand jedes einzelnen Ports kann definiert werden (An, Aus oder deaktiviert).
  • Sensorik & Kalibrierung: Monitoring von Stromverbrauch, Umgebungstemperatur/Luftfeuchte und Linsentemperatur. Falls die Werte abweichen, können sämtliche Sensor-Readings mit einem Offset korrigiert werden.
  • Heizungssteuerung (Dew Control):
    • Manuell: PWM 0-100%.
    • PID Modus: Automatische Regelung basierend auf einem Zielwert über dem Taupunkt (z.B. Taupunkt + 3°C).
    • Ambient Tracking: Sensorlose Anpassung basierend auf Umgebungstemperatur und Luftfeuchtigkeit.
  • Interface: Der Proxy bietet ein Web-Dashboard zur Konfiguration und Telemetrie-Graphen zur Analyse.

Installation:
Ich habe versucht, das Flashen so einfach wie möglich zu machen. Der Proxy hat einen integrierten "First-Run Wizard". Wenn ihr einen Browser auf Chromium Basis (Chrome/Edge) nutzt, könnt ihr die Firmware direkt über das Web-Interface auf den ESP32 flashen – ganz ohne externe Tools.

Der Code und die Installer liegen auf GitHub: https://github.com/DIYAstro/SV241-Unbound

Ein großes Dankeschön geht an Brian, Ben und Lutz aus dem Forum hier für das geduldige Testen und das Feedback!

Schaut es euch gerne mal an, falls ihr mit der Original-Steuerung unzufrieden seid. Fragen und Feedback gerne hier in den Thread.

CS,

Dirk
 
Hallo zusammen,

anknüpfend an meinen letzten Beitrag hier:

Es hat mir keine Ruhe gelassen. Ich habe mich hingesetzt, das Pinmapping analysiert und eine eigene Lösung gebaut.

Das Ergebnis ist ein Open-Source-Projekt (SV241-Unbound), das den Controller deutlich flexibler macht. Es besteht aus zwei Komponenten:

  • Custom Firmware (ESP32): Ersetzt die Original-Firmware komplett und erweitert die Funktionalität.
  • ASCOM Alpaca Proxy: Eine Standalone-Anwendung für den PC. Sie verbindet sich via USB mit dem Controller und stellt ihn als Standard ASCOM-Device bereit. Das funktioniert nativ mit jeder Alpaca-fähigen Software (z.B. NINA) oder über einen generierten Treiber auch mit klassischer ASCOM-Software.

Die wichtigsten Features im Überblick:

  • Outputs & Startup-States: Volle Kontrolle über 5x DC, 2x USB und den regelbaren 0-15V Ausgang. Wichtig für den Remote-Betrieb: Der Startup-Zustand jedes einzelnen Ports kann definiert werden (An, Aus oder deaktiviert).
  • Sensorik & Kalibrierung: Monitoring von Stromverbrauch, Umgebungstemperatur/Luftfeuchte und Linsentemperatur. Falls die Werte abweichen, können sämtliche Sensor-Readings mit einem Offset korrigiert werden.
  • Heizungssteuerung (Dew Control):
    • Manuell: PWM 0-100%.
    • PID Modus: Automatische Regelung basierend auf einem Zielwert über dem Taupunkt (z.B. Taupunkt + 3°C).
    • Ambient Tracking: Sensorlose Anpassung basierend auf Umgebungstemperatur und Luftfeuchtigkeit.
  • Interface: Der Proxy bietet ein Web-Dashboard zur Konfiguration und Telemetrie-Graphen zur Analyse.

Installation:
Ich habe versucht, das Flashen so einfach wie möglich zu machen. Der Proxy hat einen integrierten "First-Run Wizard". Wenn ihr einen Browser auf Chromium Basis (Chrome/Edge) nutzt, könnt ihr die Firmware direkt über das Web-Interface auf den ESP32 flashen – ganz ohne externe Tools.

Der Code und die Installer liegen auf GitHub: https://github.com/DIYAstro/SV241-Unbound

Ein großes Dankeschön geht an Brian, Ben und Lutz aus dem Forum hier für das geduldige Testen und das Feedback!

Schaut es euch gerne mal an, falls ihr mit der Original-Steuerung unzufrieden seid. Fragen und Feedback gerne hier in den Thread.

CS,

Dirk
Auch hier Dirk, als Beta Tester und User deiner Entwicklung, tausend Dank! Es funktioniert super, auch wenn ich es auf Grund der Wetterlage unterm Himmel jetzt zwei Wochen nimmer testen konnte. Aber was ich bis jetzt testen konnte, auch in zwei echten Astro Nächten, funktioniert hervorragend und der Funktionsumfang wird der eigentlich sehr guten Hardware endlich gerecht! Den die Firm- und Software von SvBony ist leider echter Vollmist!!
Cs Ben
 
Moin Dirk,

auch von mir vielen Dank, dass du dir die Mühe gemacht hast und eine Software auf die Beine gestellt hast, mit der die SV241 Powerbox jetzt tatsächlich das macht, was ich von so einem Gerät erwarte. :y:

Auch Danke dafür, dass ich das testen durfte und dadurch jetzt schon ein paar Nächte nutzen konnte. Die Powerbox ist dabei mit deiner Firmware die ganze Zeit stabil gelaufen und auch die Nutzung mit N.I.N.A. funktioniert problemlos.

Und Danke dass du immer zügig auf meine Bug-reports und Anregungen reagierte hast. (Auch wenn das manchmal vielleicht eher Sonderfälle waren. :whistle: )

CS, Lutz
 
Hallo Dirk,

Vielen Dank für Deine Arbeit! Man muss ja auch das nötige Know How haben, um so etwas zu realisieren.👍

Ich werde mir das umgehend ansehen.

Vielen Dank und viele Grüße,

Günther
 
Hallo Dirk !
Danke für deine Mühe. Jetzt ist die Powerbox perfekt. Nur der Adjustierbare Spannungsausgang bringt die box zum pfeifen. warum auch immer.
Ich vermisse auch einen Spenden Button ^^.

lg
Andi
 
Moin Andi,

Nur der Adjustierbare Spannungsausgang bringt die box zum pfeifen.

ich benötige keinen einstellbaren Ausgang. Deswegen habe ich ihn nie unter Last getestet. Habe ich jetzt nachgeholt und ja, ich kann das Pfeifen bestätigen. Ich hab mir jetzt angeguckt, welcher DC-DC Converter exakt genutzt wird und die Einstellungen laut Datenblatt vorgenommen. Man hört jetzt nur noch ein ganz leises Rauschen (wie auch bei der Originalfirmware). Der Fix und ein oder zwei andere sind ins neue Release eingeflossen:


Ich vermisse auch einen Spenden Button ^^.

Habe ich eingebaut. Ist allerdings nicht für mich, sondern für andere. Die können aber eine Spendenquittung ausstellen... ;-)

CS,

Dirk
 
Zuletzt bearbeitet:
Zurück
Oben