stepperfocuser unter linux..

  • Hallo Leute


    Ich habe mir vor ein paar Jahren den Stepperfocuser von Thomas Westerhoff zusammen gebaut und bis jetzt funktioniert das Ding eigentlich ohne Probleme. Thomas benutzt das Robofocus Protokoll.


    Nun möchte ich versuchen das Ding auch unter Linux zum laufen zu bringen. Ich habe es schon mit Kstars versucht, aber Kstars meldet mir irgendwas von wegen "Firmware kann nicht gelesen werden".


    Überrascht mich einerseits nicht, andererseits sollte es doch eigentlich funktionieren, den unter Windows mit dem Ascom-Treiber tut das doch auch?


    Hat jemand ne Idee wie ich den Fokuser unter Linux zum laufen bringe?
    Egal mit welcher Software.


    Gruß und CS
    Thomas

  • Hallo Thomas,
    das Robofocus-Protokoll wird laut Doku von INDI unterstützt - hast schon mal versucht, einen INDI-Server manuell mit dem entsprechenden Treiber zu starten, ob der Focuser überhaupt gefunden wird?
    Gruss,


    Steffen

  • Hallo Steffen.


    Ja habe ich schon gemacht und den Client dann von Kstars, mit eben dieser Meldung. Werde es nachher,- so das Wetter mitspielt nochmal testen und einen Screenshot machen.


    Gruß
    Thomas

  • Sodele.


    Ich habe mal ein paar Screenshots gemacht und hoffe man kann sie lesen.




    Ich habe auch mit den einstellungen herum gespielt, aber gerührt hat sich am Fokuser nix.


    Gruß und CS
    Thomas

  • Hi,
    so wie ich das im Code sehe wird versucht die Firmware-Version auszulesen ... und zwar bei jedem Kommando, das an den Focuser geht - und das Gerät von T. Westerhoff kann damit halt nix anfangen!
    Der relevante Teil findet sich in der Datei 'robofocus.c' in 'ISWorkProc' (so um Zeile 430).
    Bau doch den Treiber einfach neu, und kommentier die Zeile(n) aus - und vielleicht kannst ja auch dem Verfasser (Markus Wildi, markus.wildi(==>)datacomm.ch) ein paar Zeilen schicken und fragen, warum er das genau so gemacht hat?!
    Gruss,


    Steffen

  • Hi Steffen.


    So hat etwas gedauert. Ich hatte meine Probleme mit dem kompilieren von kdeedu (kstars) und libindi.
    Ich habe nach und nach alle Zeilen dieser Subroutine auskomentiert.
    Gebracht hat es aber leider nix [:(]


    Ich denke ich komme nicht darum herum eine eMail an Markus zu schicken.


    Gruß und CS
    Thomas

  • Hallo Leute


    Das Versionskommando "FVxxxx" habe ich aber auch im Protokoll mit drin.
    Das gibt "003.11" zurück. Es kann aber sein, daß da womöglich im Protokoll wieder was geändert wurde. Die Protokollquellen nach denen ich programmiert hatte stammen aus dem Jahr 2005.


    Hier hab ich mal die Firmwarequelle für Bascom hoch geladen. Ich mach das mal public, da das Projekt Stepperfocuser2 eh nicht mehr weiter entwickelt wird. Nächstes Jahr, wenn ich mit dem Häuslebau fertig bin gibts dann den Stepperfocuser3 mit Display, Anfahrrampen, Stromregeung usw.
    Die Firmware ist noch mit einer älteren Version von Bascom geschrieben, sollte aber auch in der Aktuellen compilierbar sein. Da kann man bestimmt auch einige Sachen eleganter machen, da sich ja BASCOM auch weiter entwickelt hat. Das überlasse ich mal den Programmierfähigkeiten der Astrogemeinde.


    http://www.astrohome.info/Data/StepFoc_Robo.rar

  • Hallo,
    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote">
    Das Versionskommando "FVxxxx" habe ich aber auch im Protokoll mit drin.
    Das gibt "003.11" zurück. Es kann aber sein, daß da womöglich im Protokoll wieder was geändert wurde. Die Protokollquellen nach denen ich programmiert hatte stammen aus dem Jahr 2005.
    [...]
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">
    vielen Dank für den Hinweis!


    Hmm, auch nach Auskommentieren des Abfrageblocks funktioniert der Focuser net? Zumindest der Fehler wg. Firmware-Version dürfte aber nimmer kommen ... worüber beklagt sich der Treiber denn jetzt?
    Gruß,


    Steffen

  • Hallo Leute.


    (==&gt;)&gt;Steffen.
    Muss ich ausprobieren was da jetzt für ne Meldung kommt. Kann ich jetzt gar nicht mehr sagen.


    (==&gt;)&gt;Thomas
    Ich habe Dir vor ein paar Wochen schonmal geschrieben, bis jetzt aber leider keine Antwort von Dir bekommen.


    Es geht um die Handsteuerung.
    Der "Schnelllauf" in beide Richtungen funktioniert Tadellos, nur der "langsame" der macht Probleme. Da zuckt nur kurz der Motor und nix geht. Muss ich da noch irgendwo etwas einstellen ?
    Muss/kann ich für den langsamen irgendwo eine Schrittzahl einstellen?


    Gruß und Cs
    Thomas

  • Hi Steffen.


    Ich habe eben den Focuser nochmal angehängt.


    Wenn ich den Client starte erhalte ich beim bewegen folgende ausgabe:


    2010-09-13T10:16:39 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:34 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:29 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:24 Keine 2010-09-13T10:16:44 Keine Firmware gefunden, aber egal
    gefunden, aber egal
    2010-09-13T10:16:19 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:14 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:09 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:04 Keine Firmware gefunden, aber egal
    2010-09-13T10:15:59 Keine Firmware gefunden, aber egal
    2010-09-13T10:15:54 Keine Firmware gefunden, aber egal
    2010-09-13T10:15:49 Keine Firmware gefunden, aber egal
    2010-09-13T10:15:44 Keine Firmware gefunden, aber egal
    2010-09-13T10:16:39 Keine Firmware gefunden, aber egal
    2010-09-13T10:18:19 Keine Firmware gefunden, aber egal
    2010-09-13T10:18:14 Keine Firmware gefunden, aber egal
    2010-09-13T10:18:09 Keine Firmware gefunden, aber egal
    2010-09-13T10:18:04 Keine Firmware gefunden, aber egal
    2010-09-13T10:17:59 Keine Firmware gefunden, aber egal
    2010-09-13T10:17:54 Keine Firmware gefunden, aber egal
    2010-09-13T10:17:49 Keine Firmware gefunden, aber egal
    2010-09-13T10:17:44 Keine Firmwar2010-09-13T10:18:24 Keine Firmware gefunden, aber egal
    e gefunden, aber egal
    2010-09-13T10:17:39 Keine Firmware gefunden, aber egal
    2010-09-13T10:17:34 Robofocus position recovered resuming normal operation
    2010-09-13T10:17:34 Robofocus position recovered 10000
    2010-09-13T10:17:34 Relative movement failed.
    2010-09-13T10:17:34 Unknown error while reading Robofocus position: -4


    Es ist eigentlich egal welchen Knopf ich drücke. Rein oder raus in Kstars ist wurscht, nix geht und nix wird dokumentiert. Kann natürlich auch an meiner auskommentierten Subroutine liegen.
    So sieht sie aus:


    void ISWorkProc () {


    char firmeware[]="FV0000000" ;
    int ret = -1 ;
    int cur_s1LL=0 ;
    int cur_s2LR=0 ;
    int cur_s3RL=0 ;
    int cur_s4RR=0 ;


    /* fprintf(stderr, "ISWorkProc\n") ; */


    if (PowerS[0].s == ISS_ON) {
    switch (PowerSP.s) {


    case IPS_IDLE:
    case IPS_OK:


    if((ret= updateRFFirmware(fd, firmeware)) &lt; 0) {
    /* This would be the end*/
    IDMessage( mydev, "Keine Firmware gefunden, aber egal\n");
    // break;
    }
    PowerSP.s = IPS_OK;
    IDSetSwitch(&PowerSP, NULL);



    /* if((ret= updateRFPosition(fd, &currentPosition)) &lt; 0) {
    PositionNP.s = IPS_ALERT;
    IDSetNumber(&PositionNP, "Unknown error while reading Robofocus position: %d", ret);
    break;
    }
    */ PositionNP.s = IPS_OK;
    IDSetNumber(&PositionNP, NULL);


    /* if(( ret= updateRFTemperature(fd, &currentTemperature)) &lt; 0) {
    TemperatureNP.s = IPS_ALERT;
    IDSetNumber(&TemperatureNP, "Unknown error while reading Robofocus temperature");
    break;
    }
    */ TemperatureNP.s = IPS_OK;
    IDSetNumber(&TemperatureNP, NULL);



    currentBacklash= BACKLASH_READOUT ;
    /* if(( ret= updateRFBacklash(fd, &currentBacklash)) &lt; 0) {
    SetBacklashNP.s = IPS_ALERT;
    IDSetNumber(&SetBacklashNP, "Unknown error while reading Robofocus backlash");
    break;
    }
    */ SetBacklashNP.s = IPS_OK;
    IDSetNumber(&SetBacklashNP, NULL);


    currentDuty= currentDelay= currentTicks=0 ;


    /* if(( ret= updateRFMotorSettings(fd, &currentDuty, &currentDelay, &currentTicks )) &lt; 0) {
    SettingsNP.s = IPS_ALERT;
    IDSetNumber(&SettingsNP, "Unknown error while reading Robofocus motor settings");
    break;
    }
    */ SettingsNP.s = IPS_OK;
    IDSetNumber(&SettingsNP, NULL);


    /* if(( ret= updateRFPowerSwitches(fd, -1, -1, &cur_s1LL, &cur_s2LR, &cur_s3RL, &cur_s4RR)) &lt; 0) {
    PowerSwitchesSP.s = IPS_ALERT;
    IDSetSwitch(&PowerSwitchesSP, "Unknown error while reading Robofocus power swicht settings");
    break;
    }
    */
    PowerSwitchesS[0].s= PowerSwitchesS[1].s= PowerSwitchesS[2].s= PowerSwitchesS[3].s= ISS_OFF ;


    if(cur_s1LL== ISS_ON) {


    PowerSwitchesS[0].s= ISS_ON ;
    }
    if(cur_s2LR== ISS_ON) {

    PowerSwitchesS[1].s= ISS_ON ;
    }
    if(cur_s3RL== ISS_ON) {


    PowerSwitchesS[2].s= ISS_ON ;
    }
    if(cur_s4RR== ISS_ON) {


    PowerSwitchesS[3].s= ISS_ON ;
    }
    PowerSwitchesSP.s = IPS_OK ;
    IDSetSwitch(&PowerSwitchesSP, NULL);



    currentMaxTravel= MAXTRAVEL_READOUT ;
    /* if(( ret= updateRFMaxPosition(fd, &currentMaxTravel)) &lt; 0) {
    MaxTravelNP.s = IPS_ALERT;
    IDSetNumber(&MaxTravelNP, "Unknown error while reading Robofocus maximum travel");
    break;
    }
    */ MaxTravelNP.s = IPS_OK;
    IDSetNumber(&MaxTravelNP, NULL);


    // case IPS_BUSY:


    // break;

    // case IPS_ALERT:
    // break;
    }
    }
    }


    Eigentlich will ich ja nur ein kleines Programm wo 3 knöpfe sind. Rein, Raus und Zähler auf Null stellen.
    Sowie die Möglichkeit der Schritte angeben. Mehr will ich eigentlich nicht.


    Gibt es den nix unter Linux der dem unter Windows entspricht?


    Gruß und CS
    Thomas

  • Hallo Thomas,
    tja - da weiß ich dann erst mal auch net weiter, sorry!
    Würde Markus Wildi eine email schreiben und ihn mal fragen, zu welcher (Software-)Version von Robofocus dieser Treiber denn paßt - hat sich vielleicht eine Winzigkeit
    geändert, die einfach zu korrigieren ist ... wenn man weiß wo ansetzen.
    Was Du vielleicht noch versuchen könntest wäre den Level für Ausgaben hochzusetzen ('-v' bis '-vvv', glaube ich) und zu schauen, ob damit mehr anzufangen ist.
    Gruß,


    Steffen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!