×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

Sesto Senso 2 - Speed, Current & Hold Settings

  • Posts: 12
  • Thank you received: 5
I just tried to see if the hold current settings would persist if set via the Wifi Virtual Handpad (and also via the Windows ASCOM driver) but it seems that they don't. Or at least, as soon as I connect the INDI driver it seems to reset the hold current resulting in focus slippage - especially towards the zenith.

The hold current setting definitely need to be exposed via INDI as without it focus is going to be highly unreliable with heavier setups. If I get a chance I might take a look at implementing it in the driver myself but that depends on knowing what commands are required... Anyone? :)

Congratulations on the new telescope! The 12VDC socket on the Sesto Senso 2 is 5.5 x 2.5mm barrel socket rather than the more standard 5.5 x 2.1mm barrel socket. I ended up making my own DC cable to run from my Pocket Power Box to the the Sesto Senso 2 which works fine. Alternatively (if you already have 5.5 x 2.1mm cables), you could perhaps get an adapter like this .

If you have any other questions, feel free to drop me a line!
3 years 5 months ago #61972

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
In the sestosenso2.cpp file at the bottom:
bool CommandSet::loadSlowPreset(char *res)
{
return sendCmd("{\"req\":{\"cmd\":{\"RUNPRESET\":\"slow\"}}}", "RUNPRESET", res);
}

I think that relates to the "Heavy and Slow" preset, in the Wifi, create a new User profile with hold enabled, then just change the profile name "slow" to.... something,

I guess that's how to go about it...

About the adapter, yeah the supplier pointed me to that to, thanks! question answered.

I had anticipated my image train would slip, what with the clutch mechanism on the Esprit, I got the Sesto Senso because of the hold current which I thought would fix it, it definitely needs to be added to the driver.

Jasem will see this, he made the last few commits to that driver I think, shouldn't be too difficult to hack around.
3 years 5 months ago #61973

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
So I've done some USB capturing of the Sesto Senso 2, the preset names appear to be:

"light"
"medium"
"slow"
"User 1 "
"User 2 "
"User 3 "

Note there is a space at the end for the User presets.

You can rename the User presets.

My suggestion is to replace:
return sendCmd("{\"req\":{\"cmd\":{\"RUNPRESET\":\"slow\"}}}", "RUNPRESET", res);

in the driver with:
return sendCmd("{\"req\":{\"cmd\":{\"RUNPRESET\":\"User 1 \"}}}", "RUNPRESET", res);

Use the virtual handset, or the Focuser Manager to edit "User 1 " profile with your required hold current and any other settings.

When the sesto senso 2 driver initialises it should now choose the "User 1 " profile, and your hold current settings should be live.

Not tested yet, and by the way, Sesto look to have released firmware 1.3 today, so when I downloaded the Focuser Manager to do the USB testing I was forced to upgrade to v1.3 - I do hope the INDI driver still works with that version of the firmware!

I suppose that it would be possible to expose the presets in the drop down list, and perhaps create a function in the driver to allow for editing settings for the various presets. This is beyond my capability and time right now, by hopefully the above hack might allow you to set the settings you want to use.
Last edit: 3 years 5 months ago by Giles.
3 years 5 months ago #61996

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
From the Serial Sniffer these seem to be the bits:
{"req":{"set":{"RUNPRESET_1":{"RP_NAME":"Esprit","M1ACC":1,"M1DEC":1,"M1SPD":2,"M1CACC":7,"M1CDEC":7,"M1CSPD":7,"M1HOLD":3}}}}{"res":{"set":{"RUNPRESET_1":{"RP_NAME":"done","M1ACC":"done","M1DEC":"done","M1SPD":"done","M1CACC":"done","M1CDEC":"done","M1CSPD":"done","M1HOLD":"done"}}}}

So I changed "User 1" profile to "Esprit" and set Hold to 3

I think, subsequently selecting that profile is by:
{"req":{"set":{"RUNPRESET_1":{"RP_NAME":"Esprit"}}}}{"res":{"set":{"RUNPRESET_1":{"RP_NAME":"done"}}}}

Every so often the Focus Software polls the current settings, and the following is returned:
{"req":{"get": ""}}}{"res":{"get":{"SWID":"001","MODNAME":"SESTOSENSO2","SN":"SESTOSENSO20716","HOSTNAME":"SESTOSENSO20716","MACADDR":"70:B3:D5:32:95:2F","SWVERS":{"SWAPP":"1.3","SWWEB":"1.3"},"LANCFG":"ap","LANSTATUS":{"LANCONN":"disconnected","PINGGW":0,"PINGEXTHOST":0},"WIFIAP":{"SSID":"SESTOSENSO20716","PWD":"primalucelab","IP":"192.168.4.1","NM":"255.255.255.0","CHL":2,"MACADDR":"70:B3:D5:32:95:30","STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":"In","MST":"stop"}},"WIFISTA":{"SSID":"MySSID","PWD":"MyPassword","IP":"","NM":"","GW":"","DNS":"","MACADDR":"70:B3:D5:32:95:2F"},"EXT_T":"-127.00","VIN_12V":"13.97","ARCO":0,"LEDBLINKSTATUS":"PowerInLess11Volts","PRESET_1":{"NAME":"","M1POS":0},"PRESET_2":{"NAME":"","M1POS":0},"PRESET_3":{"NAME":"","M1POS":0},"PRESET_4":{"NAME":"","M1POS":0},"PRESET_5":{"NAME":"","M1POS":0},"PRESET_6":{"NAME":"","M1POS":0},"PRESET_7":{"NAME":"","M1POS":0,"M2POS":0},"PRESET_8":{"NAME":"","M1POS":0,"M2POS":0},"PRESET_9":{"NAME":"","M1POS":0,"M2POS":0},"PRESET_10":{"NAME":"","M2POS":0},"PRESET_11":{"NAME":"","M2POS":0},"PRESET_12":{"NAME":"","M2POS":0},"DIMLED_1":200,"DIMLED_2":200,"DIMLED_3":200,"MOT1":{"ABS_POS":18075,"EL_POS":0,"MARK":0,"SPEED":0,"ACC":5,"DEC":5,"MAX_SPEED":4,"MIN_SPEED":0,"TVAL_HOLD":0,"TVAL_RUN":20,"TVAL_ACC":20,"TVAL_DEC":20,"T_FAST":25,"TON_MIN":41,"TOFF_MIN":41,"FS_SPD":1023,"OCD_TH":2,"STEP_MODE":4,"CONFIG":11904,"ALARM":255,"STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":"Out","MST":"stop"},"NTC_T":"36.96","CAL_MAXPOS":17639,"CAL_BKLASH":0,"CAL_MINPOS":0,"CAL_HOMEP":1000,"CAL_NUMOF":0,"CAL_DIR":"normal","LASTDIR":0,"LOCKMOV":1,"HOLDCURR_STATUS":1,"FnRUN_ACC":1,"FnRUN_DEC":1,"FnRUN_SPD":2,"FnRUN_CURR_ACC":7,"FnRUN_CURR_DEC":7,"FnRUN_CURR_SPD":7,"FnRUN_CURR_HOLD":1},"RUNPRESET_L":{"RP_NAME":"light","M1ACC":10,"M1DEC":10,"M1SPD":10,"M1CACC":3,"M1CDEC":3,"M1CSPD":3,"M1HOLD":1},"RUNPRESET_M":{"RP_NAME":"medium","M1ACC":6,"M1DEC":6,"M1SPD":6,"M1CACC":5,"M1CDEC":5,"M1CSPD":5,"M1HOLD":1},"RUNPRESET_S":{"RP_NAME":"slow","M1ACC":1,"M1DEC":1,"M1SPD":2,"M1CACC":7,"M1CDEC":7,"M1CSPD":7,"M1HOLD":1},"RUNPRESET_1":{"RP_NAME":"Esprit","M1ACC":1,"M1DEC":1,"M1SPD":2,"M1CACC":7,"M1CDEC":7,"M1CSPD":7,"M1HOLD":3},"RUNPRESET_2":{"RP_NAME":"User 2","M1ACC":6,"M1DEC":6,{"req":{"get": ""}}}"M1SPD":6,"M1CACC":5,"M1CDEC":5,"M1CSPD":5,"M1HOLD":1},"RUNPRESET_3":{"RP_NAME":"User 3","M1ACC":1,"M1DEC":1,"M1SPD":2,"M1CACC":7,"M1CDEC":7,"M1CSPD":7,"M1HOLD":1},"MOT2":{"ABS_POS":0,"EL_POS":0,"MARK":0,"SPEED":0,"ACC":35,"DEC":35,"MAX_SPEED":30,"MIN_SPEED":0,"TVAL_HOLD":1,"TVAL_RUN":18,"TVAL_ACC":18,"TVAL_DEC":18,"T_FAST":25,"TON_MIN":41,"TOFF_MIN":41,"FS_SPD":1023,"OCD_TH":2,"STEP_MODE":4,"CONFIG":11904,"ALARM":255,"STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":"In","MST":"stop"},"CAL_MAXPOS":0,"HSENDET":1,"HEMISPHERE":"northern","COMPENSATION_DEGS":0.00000,"CAL_STATUS":"stop","CAL_MINPOS":0,"CAL_HOMEP":1000,"CAL_NUMOF":0,"CAL_DIR":"normal","LASTDIR":0,"LOCKMOV":1,"HOLDCURR_STATUS":0},"DIMLEDS":"on","LOGLEVEL":"no output"}}}
3 years 5 months ago #62003

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 5
That's great! Thanks for the heads-up on the new 1.3 firmware - I also installed it last night and thankfully it looks like the changes are fairly safe:

Also, thanks for dumping the serial output. I reformatted the JSON below as it shows some interesting state (voltage in, LED dimming, hold status etc) that might be nice to expose via the INDI driver:
{
    "req": {
        "get": ""
    }
}
}{
"res": {
    "get": {
        "SWID": "001",
        "MODNAME": "SESTOSENSO2",
        "SN": "SESTOSENSO20716",
        "HOSTNAME": "SESTOSENSO20716",
        "MACADDR": "70:B3:D5:32:95:2F",
        "SWVERS": {
            "SWAPP": "1.3",
            "SWWEB": "1.3"
        },
        "LANCFG": "ap",
        "LANSTATUS": {
            "LANCONN": "disconnected",
            "PINGGW": 0,
            "PINGEXTHOST": 0
        },
        "WIFIAP": {
            "SSID": "SESTOSENSO20716",
            "PWD": "primalucelab",
            "IP": "192.168.4.1",
            "NM": "255.255.255.0",
            "CHL": 2,
            "MACADDR": "70:B3:D5:32:95:30",
            "STATUS": {
                "HIZ": 0,
                "UVLO": 0,
                "TH_SD": 0,
                "TH_WRN": 0,
                "OCD": 0,
                "WCMD": 0,
                "NOPCMD": 0,
                "BUSY": 0,
                "DIR": "In",
                "MST": "stop"
            }
        },
        "WIFISTA": {
            "SSID": "MySSID",
            "PWD": "MyPassword",
            "IP": "",
            "NM": "",
            "GW": "",
            "DNS": "",
            "MACADDR": "70:B3:D5:32:95:2F"
        },
        "EXT_T": "-127.00",
        "VIN_12V": "13.97",
        "ARCO": 0,
        "LEDBLINKSTATUS": "PowerInLess11Volts",
        "PRESET_1": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_2": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_3": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_4": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_5": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_6": {
            "NAME": "",
            "M1POS": 0
        },
        "PRESET_7": {
            "NAME": "",
            "M1POS": 0,
            "M2POS": 0
        },
        "PRESET_8": {
            "NAME": "",
            "M1POS": 0,
            "M2POS": 0
        },
        "PRESET_9": {
            "NAME": "",
            "M1POS": 0,
            "M2POS": 0
        },
        "PRESET_10": {
            "NAME": "",
            "M2POS": 0
        },
        "PRESET_11": {
            "NAME": "",
            "M2POS": 0
        },
        "PRESET_12": {
            "NAME": "",
            "M2POS": 0
        },
        "DIMLED_1": 200,
        "DIMLED_2": 200,
        "DIMLED_3": 200,
        "MOT1": {
            "ABS_POS": 18075,
            "EL_POS": 0,
            "MARK": 0,
            "SPEED": 0,
            "ACC": 5,
            "DEC": 5,
            "MAX_SPEED": 4,
            "MIN_SPEED": 0,
            "TVAL_HOLD": 0,
            "TVAL_RUN": 20,
            "TVAL_ACC": 20,
            "TVAL_DEC": 20,
            "T_FAST": 25,
            "TON_MIN": 41,
            "TOFF_MIN": 41,
            "FS_SPD": 1023,
            "OCD_TH": 2,
            "STEP_MODE": 4,
            "CONFIG": 11904,
            "ALARM": 255,
            "STATUS": {
                "HIZ": 1,
                "UVLO": 0,
                "TH_SD": 0,
                "TH_WRN": 0,
                "OCD": 0,
                "WCMD": 0,
                "NOPCMD": 0,
                "BUSY": 0,
                "DIR": "Out",
                "MST": "stop"
            },
            "NTC_T": "36.96",
            "CAL_MAXPOS": 17639,
            "CAL_BKLASH": 0,
            "CAL_MINPOS": 0,
            "CAL_HOMEP": 1000,
            "CAL_NUMOF": 0,
            "CAL_DIR": "normal",
            "LASTDIR": 0,
            "LOCKMOV": 1,
            "HOLDCURR_STATUS": 1,
            "FnRUN_ACC": 1,
            "FnRUN_DEC": 1,
            "FnRUN_SPD": 2,
            "FnRUN_CURR_ACC": 7,
            "FnRUN_CURR_DEC": 7,
            "FnRUN_CURR_SPD": 7,
            "FnRUN_CURR_HOLD": 1
        },
        "RUNPRESET_L": {
            "RP_NAME": "light",
            "M1ACC": 10,
            "M1DEC": 10,
            "M1SPD": 10,
            "M1CACC": 3,
            "M1CDEC": 3,
            "M1CSPD": 3,
            "M1HOLD": 1
        },
        "RUNPRESET_M": {
            "RP_NAME": "medium",
            "M1ACC": 6,
            "M1DEC": 6,
            "M1SPD": 6,
            "M1CACC": 5,
            "M1CDEC": 5,
            "M1CSPD": 5,
            "M1HOLD": 1
        },
        "RUNPRESET_S": {
            "RP_NAME": "slow",
            "M1ACC": 1,
            "M1DEC": 1,
            "M1SPD": 2,
            "M1CACC": 7,
            "M1CDEC": 7,
            "M1CSPD": 7,
            "M1HOLD": 1
        },
        "RUNPRESET_1": {
            "RP_NAME": "Esprit",
            "M1ACC": 1,
            "M1DEC": 1,
            "M1SPD": 2,
            "M1CACC": 7,
            "M1CDEC": 7,
            "M1CSPD": 7,
            "M1HOLD": 3
        },
        "RUNPRESET_2": {
            "RP_NAME": "User 2",
            "M1ACC": 6,
            "M1DEC": 6,
            {
                "req": {
                    "get": ""
                }
            }
        }"M1SPD": 6,
        "M1CACC": 5,
        "M1CDEC": 5,
        "M1CSPD": 5,
        "M1HOLD": 1
    },
    "RUNPRESET_3": {
        "RP_NAME": "User 3",
        "M1ACC": 1,
        "M1DEC": 1,
        "M1SPD": 2,
        "M1CACC": 7,
        "M1CDEC": 7,
        "M1CSPD": 7,
        "M1HOLD": 1
    },
    "MOT2": {
        "ABS_POS": 0,
        "EL_POS": 0,
        "MARK": 0,
        "SPEED": 0,
        "ACC": 35,
        "DEC": 35,
        "MAX_SPEED": 30,
        "MIN_SPEED": 0,
        "TVAL_HOLD": 1,
        "TVAL_RUN": 18,
        "TVAL_ACC": 18,
        "TVAL_DEC": 18,
        "T_FAST": 25,
        "TON_MIN": 41,
        "TOFF_MIN": 41,
        "FS_SPD": 1023,
        "OCD_TH": 2,
        "STEP_MODE": 4,
        "CONFIG": 11904,
        "ALARM": 255,
        "STATUS": {
            "HIZ": 1,
            "UVLO": 0,
            "TH_SD": 0,
            "TH_WRN": 0,
            "OCD": 0,
            "WCMD": 0,
            "NOPCMD": 0,
            "BUSY": 0,
            "DIR": "In",
            "MST": "stop"
        },
        "CAL_MAXPOS": 0,
        "HSENDET": 1,
        "HEMISPHERE": "northern",
        "COMPENSATION_DEGS": 0.00000,
        "CAL_STATUS": "stop",
        "CAL_MINPOS": 0,
        "CAL_HOMEP": 1000,
        "CAL_NUMOF": 0,
        "CAL_DIR": "normal",
        "LASTDIR": 0,
        "LOCKMOV": 1,
        "HOLDCURR_STATUS": 0
    },
    "DIMLEDS": "on",
    "LOGLEVEL": "no output"
}
}
}

The approach of using a preset is probably the simplest for getting things up and running. However, it would still be great to be able to control the presets and motor hold state via INDI rather than having to go via the Virtual Handset or Focus Manager.

I'm hoping to get some time next week to see if I can start hacking the driver support - unfortunately this week didn't allow me much time.
The following user(s) said Thank You: Giles
3 years 5 months ago #62025

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
If you do look at it further, then I may as well attach the full capture, as it is sometimes difficult to identify what is a command and what is a response, and sometimes the two overlap (as you can see in the RUNPRESET_2 section below).

You will also see that I was trying to create a preset in the App, and it was failing - when trying to flip to another preset and then load the user preset back it would fail with "Empty Preset", so in the end I created the Preset with the Wifi Web interface, and then went back to load the preset in the software.

So bear in mind that even Primaluce Labs software has problems with the presets, although it works via the Wifi interface.
Last edit: 3 years 5 months ago by Giles.
3 years 5 months ago #62026
Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
I created an issue for this in Github: github.com/indilib/indi/issues/1262
3 years 4 months ago #63026

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
I've funded this issue with $20 via Issuehunt

To close the issue, I would expect to be able to Select, Load, Edit and Save the 3 user customizable profiles, and all their relevant settings on the Sesto Senso 2.
3 years 4 months ago #63264

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 5
As a quick update to this: I've implemented support for setting all of the motor move rates and voltages (including hold). This all seems to work well. However, while attempting to add support for loading/saving the custom motor presets, I discovered that the Sesto Senso 2 1.3 FW doesn't actually seem to apply the custom motor presets when requested. I'm waiting on a response from the Prima Luce Lab before proceeding as I suspect they'll want to fix the issue in their driver.

Hopefully I'll hear back soon!
The following user(s) said Thank You: Giles
3 years 2 months ago #65409

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69
Thanks - good work.

I found I have so far only able to create / save the presets via the Wifi Web Application, even the supplied Windows applet seemed to have trouble with this.

Unfortunately, via this method I don't think it is possible to see what commands are being sent to the focus controller itself.
3 years 2 months ago #65410

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 5
I've managed to save into the custom preset slots using the Windows Focuser Manager 1.3 and the Virtual HandPad web app as well as through the INDI driver code. However, irrespective of the client used, actually loading/applying one of the custom presets always fails for me with:
{"res":{"cmd":{"RUNPRESET":"Error: empty preset"}}}

I checked this in the Virtual HandPad web app by setting a breakpoint where the JSON command is sent to the REST endpoint. The same error result is seen in this as when using the serial interface.

I'm hoping to hear back this week, but if it takes any longer I'll just create a pull request without the custom preset functionality since it actually achieves what I needed and perhaps I can add it later once a firmware fix is available.
The following user(s) said Thank You: Giles
3 years 2 months ago #65411

Please Log in or Create an account to join the conversation.

  • Posts: 348
  • Thank you received: 69

I've been working with just modifying the loadSlowPreset in sestosenso2.cpp to load the Esprit profile I created in the Web App, and checking again after loading. It appears to either have not loaded the slow preset and kept the functionality that was previously set by the Web App, or it actually reloaded the Esprit profile.

I was wondering, what hold current are you using on the Esprit, I set mine to 3, but not had enough chances to work out whether it's an improvement (it's the only setting I've actually used to focus with since I got the Esprit). In any case, focusing is working very well, I'm getting a good gradient curve for focus operations and I have not noticed any slippage - I probably need to run some dry tests with the OTA mounted indoors.
3 years 2 months ago #65412

Please Log in or Create an account to join the conversation.

Time to create page: 0.691 seconds