@ASIMount@ZWO#60046 @w7ay Sorry to be posting so frequent here, but I am now determined to find out the root cause of the guiding issue. I figured out that it's simple to control the AM5 directly via the USB/comm port. From the ASCOM driver's log, I also can figure out the communication protocol used and the communication traffic between the ASCOM driver and the AM5 firmware. There were a few weird responses I did not expect from the mount. For example, setting the LONGITUDE value with the sign flipped:
21:31:55.137 Set LONGITUDE -121[B0]48'00"
21:31:55.138 Sync Longitude to Mount -121[B0]48'00"
21:31:55.142 <-- 20:31:55#
21:31:55.143 --> :Sg+121*48:00#
21:31:55.252 <-- 1
21:31:55.252 Sync Longitude to Mount R True
21:31:55.252 Set Longitude to Mount Set Longitude to Mount successfully
For the issue I reported earlier in this thread, that it takes more than 4 seconds for Phd2 to send a correction pulse to the mount via the ASCOM driver, here is an example of the communication traffic:
21:42:00.457 Slewing Get False
21:42:00.458 IsPulseGuiding Get False
21:42:00.458 PulseGuide Set Direction: guideWest, Duration: 800
21:42:00.458 --> :Mgw0800#
21:42:01.264 PulseGuide Over
21:42:01.264 IsPulseGuiding Get False
21:42:01.721 --> :GU#
21:42:01.721 <-- NG0100211#
21:42:01.721 --> :GAT#
21:42:01.832 <-- 1#
21:42:04.841 --> :GU#
21:42:04.952 <-- NG0100211#
21:42:04.952 --> :GAT#
21:42:05.063 <-- 1#
21:42:05.152 Slewing Get
21:42:05.152 --> :GU#
21:42:05.267 <-- NG0100211#
21:42:05.267 Slewing Get False
21:42:05.267 IsPulseGuiding Get False
21:42:05.268 PulseGuide Set Direction: guideWest, Duration: 800
21:42:05.268 --> :Mgw0800#
21:42:06.073 PulseGuide Over
Notice that there is not any confirmation of a successful execution of the request being sent back by the mount or the ASCOM driver. I confirmed that with my manual invocation of this command directly to the AM5 firmware via USB, that although the mount does move, there is no feedback from the request at all. Any client making these types of requests (move or guide pulse commands) would expect an acknowledgement. If none is received, typical client logic would have a timeout before moving on to the next task.
This is very different from what the mount firmware does when I send the set longitude request above, where I do get a response of "1" as the success code.
I believe this is the root cause of all these ASCOM driver issues that I raised in this thread and other threads. Client apps like Phd2 or my star tracker issued move or pulse commands to the mount, but no feedback was received. (For these rapid move or pulse commands, they would typically just wait for the command was acknowledged to be received, not completed.) So these apps just wait until the request is deemed timeout. Each app will have different timeout settings, so in the case of Phd2, it takes 4 seconds before the next pulse command is issued.
Can the dev team confirm this? I have been developing software for quite a long time, and I hope this observation will help in getting a robust AM5 driver for us to use.
Kai