×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

FIXED* -DO NOT UPDATE the ESATTO Firmware - FIXED in latest INDI GITHUB release.

  • Posts: 239
  • Thank you received: 38
Well that's cool.

One thing that I am thinking is the new firmware must have an issue to cause the problem you found.

I will put your fix into my build as well to test when I can.

I have been trying to get PrimaLuceLabs to look into this issue, I really think they have an issue with the new firmware itself and there haven't been any command changes.

From:

In sestosenso2.cpp I changed line 1552, to the following
1550 bool CommandSet::getAbsolutePosition(char *res)
1551 {
1552 return sendCmd("{\"req\":{\"get\":{\"MOT1\":{\"ABS_POS\":\"\"}}}}", "ABS_POS", res);
1553 }

Similarly on line 1557
1555 bool CommandSet::getCurrentSpeed(char *res)
1556 {
1557 return sendCmd("{\"req\":{\"get\":{\"MOT1\":{\"SPEED\":\"\"}}}}", "SPEED", res);
1558 }

While debugging I also noticed that the focusser response was truncated when requesting the NTC temperature.
Although the NTC_T property was not in the truncated part and the function worked, I changed line 1649 too:
1647 bool CommandSet::getMotorTemp(char *res)
1648 {
1649 return sendCmd("{\"req\":{\"get\":{\"MOT1\":{\"NTC_T\":\"\"}}}}", "NTC_T", res);
1650 }

There might be more routines with the same problem but I haven't noticed them. I don't know whether
older firmware has a problem with these changes.
The following user(s) said Thank You: John
Last edit: 1 year 4 months ago by Sonny Cavazos.
1 year 4 months ago #88640

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

  • Posts: 239
  • Thank you received: 38
Jasem has updated the driver on INDI GitHub. I recommend we wait until he syncs the drivers so it will appear properly on the INDI-WEB system if you use that.

Also it only works with the latest firmware for the Esatto. So you must upgrade the firmware on the Esatto to use the new driver.

It does have a proper backlash routine in the firmware now and I have used it successfully.

If you can compile GITHUB stuff, you can try it, but you will need to manually start indiserver to get it to work with your equipment.

I use this command to start my indiserver:

indiserver indi_pegasus_upb indi_qhy_ccd indi_asi_wheel indi_esatto_focus indi_asi_ccd indi_ioptronv3_telescope
The following user(s) said Thank You: Dahu, Rafael Schlegel
1 year 4 months ago #88982

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

SestoSenso driver was also updated.. if there are any users out there, please report back if it works since I don't have the hardware.
The following user(s) said Thank You: Rafael Schlegel
1 year 4 months ago #88983

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

  • Posts: 105
  • Thank you received: 23
Hi Jasem,

Unfortenately the new driver doesn't work for sesto senso2. The basic problem is that when one requests all parameters about MOT1 the response string is too long and gets truncated (most likely in the focusser itself, not in INDI). In primalucelabcommandset.cpp, this happens for the json command on line 450. This makes the driver crash. The solution should be to modify the json request so that only the desired parameters are returned. With the new structure it is not clear to me how that should be implemented.

The json command on line 736 will most likely cause the same problem but I can't test this since I don't have an ARCO device.
1 year 3 months ago #89107

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

Thank you for the update Camiel. I pushed an update to increase receive buffer, can you please git pull and see if this helps?
1 year 3 months ago #89108

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

  • Posts: 34
  • Thank you received: 1
Another Sesto Senso 2 user here, suffering from the same issue. I am totally illiterate when it comes to these thing so I would need a lot of help and guidance if I were to try and be of any help in solving this.
1 year 3 months ago #89126

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

Anyone tested after the update to GIT?
1 year 3 months ago #89127

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

  • Posts: 24
  • Thank you received: 3
I did : using an Esatto 3 device, which embeds the latest firmware (named as 03-03-07), and the indi_esatto_focus driver. Everything (but the temperature report) is OK. For temperature, I am not sure the issue is software-related, maybe my external sensor has some trouble. But all the main functionalities are up and running.
However, I have not tested with a SestoSenso type of focuser.
Thanks a lot.

Dahu
1 year 3 months ago #89128

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

  • Posts: 105
  • Thank you received: 23
Hi Jasem,

With sesto senso2 I still have the problem that the driver crashes. This is what I find in the log file:

[2022-12-18T15:42:39.587 CET DEBG ][ org.kde.kstars.indi] - Sesto Senso 2 : "[DEBUG] <REQ> {\"req\":{\"get\":{\"MOT1\":{\"ABS_POS\":\"\"}}}} "
[2022-12-18T15:42:39.623 CET DEBG ][ org.kde.kstars.indi] - Sesto Senso 2 : "[DEBUG] <RES> {\"res\":{\"get\":{\"MOT1\":{\"ABS_POS\":0}}}} "
[2022-12-18T15:42:39.623 CET DEBG ][ org.kde.kstars.indi] - Sesto Senso 2 : "[DEBUG] <REQ> {\"req\":{\"get\":{\"MOT1\":\"\"}}} "
[2022-12-18T15:42:39.700 CET DEBG ][ org.kde.kstars.indi] - Sesto Senso 2 : "[DEBUG] <RES> {\"res\":{\"get\":{\"MOT1\":{\"SUBMODEL\":\"SESTOSENSO2\",\"NTC_T\":\"32.49\",\"BKLASH\":0,\"CAL_STATUS\":\"stop\",\"CAL_MAXPOS\":172541,\"CAL_BKLASH\":100,\"CAL_MINPOS\":0,\"CAL_HOMEP\":1000,\"CAL_NUMOF\":0,\"CAL_DIR\":\"normal\",\"LASTDIR\":0,\"HOLDCURR_STATUS\":1,\"COMPENSATI "
[2022-12-18T15:42:39.855 CET INFO ][ org.kde.kstars.ekos.focus] - "Idle."
[2022-12-18T15:42:39.867 CET INFO ][ org.kde.kstars.ekos] - "Sesto Senso 2 focuser is online."
[2022-12-18T15:42:39.917 CET DEBG ][ org.kde.kstars.indi] - Removing device "Sesto Senso 2"
[2022-12-18T15:42:39.919 CET DEBG ][ org.kde.kstars.indi] - INDIListener: Removing device "Sesto Senso 2"
[2022-12-18T15:42:39.919 CET INFO ][ org.kde.kstars.ekos] - "Sesto Senso 2 is offline."
[2022-12-18T15:42:39.920 CET DEBG ][ org.kde.kstars.indi] - Removing managed driver "Ekos Remote Host"
[2022-12-18T15:42:39.922 CET DEBG ][ org.kde.kstars.indi] - INDIListener: Removing client manager for server localhost @ 7624
[2022-12-18T15:42:39.922 CET DEBG ][ org.kde.kstars.ekos] - Resetting Ekos Manager...
[2022-12-18T15:42:39.930 CET INFO ][ org.kde.kstars.ekos] - "INDI services stopped."

As you can see the last json response is truncated. I don't think this is caused by the indi driver. The fixes I posted before worked around this problem for SPEED and ABS_POS
by requesting only the information (ABS_POS or SPEED) that was really needed instead of requesting all information on MOT1 and extracting in the indi driver the parameters of interest.
I think this is needed here as well.

Hope this helps,
Camiel
1 year 3 months ago #89129

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

Ok I would need remote access to eliminate any other possibilities
1 year 3 months ago #89130

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

  • Posts: 105
  • Thank you received: 23
Hi Jasem,
There are two things that need to be changed for sesto senso2 to work. First, the method to select one of the motor presets should be:

bool SestoSenso2::applyMotorPreset(const std::string &name)
{
return m_Communication->command(MOT_NONE, {{"RUNPRESET", name}});
}

And the method getting the motor settings works when it reads as follows:

bool SestoSenso2::getMotorSettings(MotorRates &rates, MotorCurrents &currents, bool &motorHoldActive)
{
//json jsonRequest = {{"req", {{"get", {{"MOT1", ""}}}}}};
json jsonRequest = {{"req", {{"get", {{"MOT1", { {"FnRUN_ACC",""}, {"FnRUN_DEC",""}, {"FnRUN_SPD",""}, {"FnRUN_CURR_ACC",""}, {"FnRUN_CURR_DEC",""}, {"FnRUN_CURR_SPD",""}, {"FnRUN_CURR_HOLD",""}, {"HOLDCURR_STATUS",""} } }}}}}};
json jsonResponse;

if (m_Communication->sendRequest(jsonRequest, &jsonResponse))
{
jsonResponse["get"]["MOT1"]["FnRUN_ACC"].get_to(rates.accRate);
jsonResponse["get"]["MOT1"]["FnRUN_DEC"].get_to(rates.decRate);
jsonResponse["get"]["MOT1"]["FnRUN_SPD"].get_to(rates.runSpeed);

jsonResponse["get"]["MOT1"]["FnRUN_CURR_ACC"].get_to(currents.accCurrent);
jsonResponse["get"]["MOT1"]["FnRUN_CURR_DEC"].get_to(currents.decCurrent);
jsonResponse["get"]["MOT1"]["FnRUN_CURR_SPD"].get_to(currents.runCurrent);
jsonResponse["get"]["MOT1"]["FnRUN_CURR_HOLD"].get_to(currents.holdCurrent);
int tmp;
jsonResponse["get"]["MOT1"]["HOLDCURR_STATUS"].get_to(tmp);
motorHoldActive = ( tmp == 1 );
return true;
}
return false;
}
The following user(s) said Thank You: Jasem Mutlaq
1 year 3 months ago #89156

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

Thanks! I pushed the changes as you suggested, can you please verify now?
1 year 3 months ago #89162

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

Time to create page: 0.848 seconds