×

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

Bi-monthly release with minor bug fixes and improvements

Driver for Pegasus Indigo Filter Wheel

  • Posts: 45
  • Thank you received: 3
By the way... I think there's a bug on line 110:

The firmware version command is WV, and not FV. :)
1 year 3 months ago #89001

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

Ok please git pull and test again.
1 year 3 months ago #89002

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

  • Posts: 45
  • Thank you received: 3
In progress. I'll let you know when I have results.
1 year 3 months ago #89003

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

  • Posts: 45
  • Thank you received: 3
The new code seems to be processing reponses correctly.
Breakpoint 1, PegasusINDIGO::sendCommand (this=0x55b18152b0, cmd=0x558bef7318 "W#", res=0x7fcd8c18d0 "FW_OK", cmd_len=-1, res_len=-1)
    at /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:210
210	        LOGF_DEBUG("RES <%s>", res);
(gdb) p res
$1 = 0x7fcd8c18d0 "FW_OK"
(gdb) c
Continuing.
 
Breakpoint 1, PegasusINDIGO::sendCommand (this=0x55b18152b0, cmd=0x558bef7328 "WV", res=0x7fcd8c1c50 "WV:1.2", cmd_len=-1, res_len=-1)
    at /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:210
210	        LOGF_DEBUG("RES <%s>", res);
(gdb) p res
$2 = 0x7fcd8c1c50 "WV:1.2"
(gdb) c
Continuing.
 
Breakpoint 1, PegasusINDIGO::sendCommand (this=0x55b18152b0, cmd=0x7fcd8c1eb0 "WM:2", res=0x7fcd8c1e30 "WM:2", cmd_len=-1, res_len=-1)
    at /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:210
210	        LOGF_DEBUG("RES <%s>", res);
(gdb) p res
$3 = 0x7fcd8c1e30 "WM:2"
(gdb) c
Continuing.

We could probably trim "WV:" off the front of the version response. I also see a serial port error raised once per second when the filter wheel is disconnected.



I'm trying to enable debug logging, but can't for some reason. Every time I click "Enable" it flicks back to "Disabled"
1 year 3 months ago #89004

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

  • Posts: 45
  • Thank you received: 3
I suspect the serial write error is related to the WF command I noticed in my original logs. Perhaps this debugging information will be useful?
(gdb) break /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:140
Breakpoint 2 at 0x558bec9db0: file /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp, line 140.
(gdb) c
Continuing.
 
Breakpoint 2, PegasusINDIGO::TimerHit (this=0x55b18152b0) at /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:140
140	            if (sscanf(response, "WF:%d", &position) == 1)
(gdb) p response
$10 = '\000' <repeats 127 times>
(gdb) p TargetFilter
$11 = 3
(gdb) p position
$12 = -1

I get this result even after the wheel has moved to the correct position.
Last edit: 1 year 3 months ago by Chris Barbour.
1 year 3 months ago #89006

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

You get the serial write error immediately after setting a new filter target in the driver? I pushed a small update for the firmware parsing.
1 year 3 months ago #89008

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

  • Posts: 45
  • Thank you received: 3
The serial write error shows up after disconnecting the filter wheel, and disappears when I reconnect it.

I'm not 100% sure what triggers it, but I suspect it's part of the wait loop which checks if the filter is moving.
1 year 3 months ago #89009

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

  • Posts: 45
  • Thank you received: 3
I'm not a C++ guy, but in this block of code I'm not entirely clear how response is updated after sending the WF command:

github.com/indilib/indi/blob/master/driv...indigo.cpp#L132-L149
1 year 3 months ago #89010

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

  • Posts: 45
  • Thank you received: 3
I'm building the latest version. I'll see if the isConnected check makes the error go away.
1 year 3 months ago #89011

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

  • Posts: 45
  • Thank you received: 3
The new update makes the Serial write error go away. The filter wheel version number is also correct.

I still see the WF command being sent every second in the debug logs:
INFO	227.063863 sec	: Pegasus INDIGO is online.
DEBUG	227.064552 sec	: CMD <WV>
DEBUG	227.079659 sec	: RES <WV:1.2>
DEBUG	228.064635 sec	: CMD <WF>
DEBUG	229.065935 sec	: CMD <WF>
DEBUG	230.067225 sec	: CMD <WF>
INFO	230.300844 sec	: Setting current filter to slot 2
DEBUG	230.300985 sec	: CMD <WM:2>
DEBUG	230.327024 sec	: RES <WM:2>
DEBUG	231.068405 sec	: CMD <WF>
DEBUG	232.070111 sec	: CMD <WF>
INFO	232.959201 sec	: Setting current filter to slot 1
DEBUG	232.959480 sec	: CMD <WM:1>
DEBUG	232.982931 sec	: RES <WM:1>
DEBUG	233.070819 sec	: CMD <WF>
DEBUG	234.072282 sec	: CMD <WF>
DEBUG	235.073851 sec	: CMD <WF>
DEBUG	236.075557 sec	: CMD <WF>
DEBUG	237.076402 sec	: CMD <WF>
DEBUG	238.077982 sec	: CMD <WF>
DEBUG	239.079320 sec	: CMD <WF>
INFO	239.687003 sec	: Pegasus INDIGO is offline.

As best I can tell, the driver never hits SelectFilterDone() at line 143.
(gdb) break /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp:143
Breakpoint 1 at 0x557de09e20: file /home/stellarmate/Projects/indi/drivers/filter_wheel/pegasus_indigo.cpp, line 143.
(gdb) c
Continuing.

The following diff seems to fix the issue:
diff --git a/drivers/filter_wheel/pegasus_indigo.cpp b/drivers/filter_wheel/pegasus_indigo.cpp
index b184decad..972052857 100644
--- a/drivers/filter_wheel/pegasus_indigo.cpp
+++ b/drivers/filter_wheel/pegasus_indigo.cpp
@@ -134,7 +134,7 @@ void PegasusINDIGO::TimerHit()
     if (isConnected() && FilterSlotNP.s == IPS_BUSY)
     {
         char response[DRIVER_LEN] = {0};
-        if (sendCommand("WF"))
+        if (sendCommand("WF", response))
         {
             int position = -1;
             if (sscanf(response, "WF:%d", &position) == 1)

With that in place, I see the following in the logs:
INFO	181.999770 sec	: Pegasus INDIGO is online.
DEBUG	182.000172 sec	: CMD <WV>
DEBUG	182.015682 sec	: RES <WV:1.2>
INFO	185.342267 sec	: Setting current filter to slot 1
DEBUG	185.342539 sec	: CMD <WM:1>
DEBUG	185.375298 sec	: RES <WM:1>
DEBUG	186.002934 sec	: CMD <WF>
DEBUG	186.015014 sec	: RES <WF:-1>
DEBUG	187.016328 sec	: CMD <WF>
DEBUG	187.038995 sec	: RES <WF:-1>
DEBUG	188.040434 sec	: CMD <WF>
DEBUG	188.062985 sec	: RES <WF:-1>
DEBUG	189.064485 sec	: CMD <WF>
DEBUG	189.086792 sec	: RES <WF:1>
INFO	194.713997 sec	: Setting current filter to slot 7
DEBUG	194.714204 sec	: CMD <WM:7>
DEBUG	194.750045 sec	: RES <WM:7>
DEBUG	195.093203 sec	: CMD <WF>
DEBUG	195.117954 sec	: RES <WF:-1>
DEBUG	196.119440 sec	: CMD <WF>
DEBUG	196.141981 sec	: RES <WF:-1>
DEBUG	197.143499 sec	: CMD <WF>
DEBUG	197.165692 sec	: RES <WF:-1>
DEBUG	198.166977 sec	: CMD <WF>
DEBUG	198.189555 sec	: RES <WF:-1>
DEBUG	199.190985 sec	: CMD <WF>
DEBUG	199.213615 sec	: RES <WF:-1>
DEBUG	200.215133 sec	: CMD <WF>
DEBUG	200.237485 sec	: RES <WF:7>
INFO	206.282713 sec	: Setting current filter to slot 1
DEBUG	206.282891 sec	: CMD <WM:1>
DEBUG	206.316700 sec	: RES <WM:1>
DEBUG	207.245849 sec	: CMD <WF>
DEBUG	207.260594 sec	: RES <WF:-1>
DEBUG	208.261946 sec	: CMD <WF>
DEBUG	208.284591 sec	: RES <WF:-1>
DEBUG	209.285932 sec	: CMD <WF>
DEBUG	209.308229 sec	: RES <WF:-1>
DEBUG	210.309508 sec	: CMD <WF>
DEBUG	210.332186 sec	: RES <WF:-1>
DEBUG	211.333015 sec	: CMD <WF>
DEBUG	211.356101 sec	: RES <WF:-1>
DEBUG	212.357608 sec	: CMD <WF>
DEBUG	212.379995 sec	: RES <WF:1>
INFO	215.036573 sec	: Pegasus INDIGO is offline.
1 year 3 months ago #89012

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

I forgot to set target filter.. ok try now it should work.
1 year 3 months ago #89022

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

  • Posts: 45
  • Thank you received: 3
The continuous WF log entries are still an issue with the latest commit. Was there a problem with the patch I proposed in my previous reply? It seems to fix things.
INFO	24.877526 sec	: Session log file /home/stellarmate/.indi/logs/2022-12-14/indi_pegasusindigo_wheel/indi_pegasusindigo_wheel_19:56:57.log
INFO	24.877676 sec	: Setting current filter to slot 1
DEBUG	24.877725 sec	: CMD <WM:1>
DEBUG	24.891831 sec	: RES <WM:1>
DEBUG	24.893191 sec	: Configuration successfully saved for FILTER_NAME.
DEBUG	24.893521 sec	: Configuration successfully loaded.
DEBUG	25.188256 sec	: CMD <WF>
DEBUG	26.188830 sec	: CMD <WF>
DEBUG	27.190110 sec	: CMD <WF>
DEBUG	28.191619 sec	: CMD <WF>
DEBUG	29.192966 sec	: CMD <WF>
DEBUG	30.194325 sec	: CMD <WF>
DEBUG	31.195668 sec	: CMD <WF>
DEBUG	32.196961 sec	: CMD <WF>
DEBUG	33.198253 sec	: CMD <WF>
DEBUG	34.199642 sec	: CMD <WF>
DEBUG	35.201334 sec	: CMD <WF>
DEBUG	36.203255 sec	: CMD <WF>
DEBUG	37.204883 sec	: CMD <WF>
DEBUG	38.206551 sec	: CMD <WF>
DEBUG	39.208060 sec	: CMD <WF>
DEBUG	40.209701 sec	: CMD <WF>
DEBUG	41.211316 sec	: CMD <WF>
DEBUG	42.212889 sec	: CMD <WF>
DEBUG	43.214221 sec	: CMD <WF>
DEBUG	44.215833 sec	: CMD <WF>
DEBUG	45.217620 sec	: CMD <WF>
DEBUG	46.219300 sec	: CMD <WF>
DEBUG	47.221041 sec	: CMD <WF>
DEBUG	48.222904 sec	: CMD <WF>
DEBUG	49.224984 sec	: CMD <WF>
DEBUG	50.226658 sec	: CMD <WF>
DEBUG	51.228447 sec	: CMD <WF>
DEBUG	52.230095 sec	: CMD <WF>
DEBUG	53.231425 sec	: CMD <WF>
DEBUG	54.232827 sec	: CMD <WF>
DEBUG	55.234292 sec	: CMD <WF>
DEBUG	56.235891 sec	: CMD <WF>
DEBUG	57.237321 sec	: CMD <WF>
DEBUG	58.239273 sec	: CMD <WF>
DEBUG	59.240114 sec	: CMD <WF>
DEBUG	60.241433 sec	: CMD <WF>
DEBUG	61.242743 sec	: CMD <WF>
DEBUG	62.244091 sec	: CMD <WF>
DEBUG	63.245504 sec	: CMD <WF>
DEBUG	64.246882 sec	: CMD <WF>
1 year 3 months ago #89054

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

Time to create page: 1.390 seconds