Pegasus Astro Indigo Filter Wheel Won't Connect
Forum rules
If you have a problem or question, please check the FAQ to see if it already has an answer : https://www.sharpcap.co.uk/sharpcap-faqs
Please also read about Troubleshooting USB Issues before posting.
*** Please do not post license keys - please report any problems with licensing to 'admin' by private message ***
Please include the following details in any bug report:
* Version of SharpCap
* Camera and other hardware being user
* Operating system version
* Contents of the SharpCap log after the problem has occurred.
[If SharpCap crashes, please send the bug report when prompted instead of including the log]
If you have a problem or question, please check the FAQ to see if it already has an answer : https://www.sharpcap.co.uk/sharpcap-faqs
Please also read about Troubleshooting USB Issues before posting.
*** Please do not post license keys - please report any problems with licensing to 'admin' by private message ***
Please include the following details in any bug report:
* Version of SharpCap
* Camera and other hardware being user
* Operating system version
* Contents of the SharpCap log after the problem has occurred.
[If SharpCap crashes, please send the bug report when prompted instead of including the log]
-
nebulosity10
- Posts: 5
- Joined: Sat Jan 25, 2025 5:18 am
Pegasus Astro Indigo Filter Wheel Won't Connect
I am encountering an issue when connecting my Pegasus Astro Indigo Filter. When I either (a) attempt to connect from the control panel or (b) select properties for the filter wheel under settings, I get an error that says, "Could not show the filter wheel driver properties. Exception has been thrown by the target of an invocation".
I am using the latest version of SharpCap, latest version of Pegasus Astro's Unity Platform, and ASCOM v7.
If I use ASCOM diagonstics, I can connect to the filter wheel without issue. I can also access the filter wheel via Pegasus Astro's Unity Platform. I also have a NYX101 mount; the mount connects without issue to SharpCap.
I've included a screenshot and a debug log. Pertinent snippet from the log is below:
Info 17:47:45.277377 #24 =='ASCOM UI Thread for Wheel' (New Thread)
Info 17:47:45.277428 #24 Showing properties for filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Debug 17:47:45.279436 #24 Started new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 17:47:45.279493 #24 Creating ASCOM Wheel of type ASCOM.PegasusAstroIndigo.FilterWheel ('PegasusAstro Indigo') in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 17:47:46.222761 #24 Ended new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 17:47:47.477096 #1 Notification (Status=Warning): SharpCap is having problems with your PegasusAstro Indigo. Currently retrying operation. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Error 17:47:47.484979 #24 Getting connected status of Filter Wheel : Exception of type 'COMException' : The RPC server is unavailable. (0x800706BA)
Stack Trace: at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
at object CallSite.Target(Closure, CallSite, object)
at bool ASCOM.Com.DriverAccess.ASCOMDevice.get_Connected() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 149 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 17:47:47.485937 #24 Failed to reconnect to PegasusAstro Indigo : Exception of type 'COMException' : The RPC server is unavailable. (0x800706BA)
Stack Trace: at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 94
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.TryReconnect() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 129 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.TryReconnect()
Error 17:47:47.488859 #24 Failed to show wheel properties : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 106 in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Error 17:47:47.489533 #24 Inner Exception : System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (0x800706BA)
at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 94
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at void SharpCap.WheelProxy.ASCOM.WheelWrapper.Dispose() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 50
at object InvokeStub_IDisposable.Dispose(object, object, IntPtr*)
at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr) in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Info 17:47:49.290678 #24 MessageBox : '' Could not show the filter wheel driver properties.
Exception has been thrown by the target of an invocation. => user choice OK in DialogResult SharpCap.Base.Utilities.MessageBoxHub.ShowImpl(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
Info 17:47:49.290752 #24 Properties completed for filter wheel. in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
I am using the latest version of SharpCap, latest version of Pegasus Astro's Unity Platform, and ASCOM v7.
If I use ASCOM diagonstics, I can connect to the filter wheel without issue. I can also access the filter wheel via Pegasus Astro's Unity Platform. I also have a NYX101 mount; the mount connects without issue to SharpCap.
I've included a screenshot and a debug log. Pertinent snippet from the log is below:
Info 17:47:45.277377 #24 =='ASCOM UI Thread for Wheel' (New Thread)
Info 17:47:45.277428 #24 Showing properties for filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Debug 17:47:45.279436 #24 Started new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 17:47:45.279493 #24 Creating ASCOM Wheel of type ASCOM.PegasusAstroIndigo.FilterWheel ('PegasusAstro Indigo') in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 17:47:46.222761 #24 Ended new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 17:47:47.477096 #1 Notification (Status=Warning): SharpCap is having problems with your PegasusAstro Indigo. Currently retrying operation. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Error 17:47:47.484979 #24 Getting connected status of Filter Wheel : Exception of type 'COMException' : The RPC server is unavailable. (0x800706BA)
Stack Trace: at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 132
at object CallSite.Target(Closure, CallSite, object)
at bool ASCOM.Com.DriverAccess.ASCOMDevice.get_Connected() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 149 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 17:47:47.485937 #24 Failed to reconnect to PegasusAstro Indigo : Exception of type 'COMException' : The RPC server is unavailable. (0x800706BA)
Stack Trace: at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 94
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.TryReconnect() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 129 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.TryReconnect()
Error 17:47:47.488859 #24 Failed to show wheel properties : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object System.Reflection.MethodBase.Invoke(object obj, object[] parameters)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 106 in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Error 17:47:47.489533 #24 Inner Exception : System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (0x800706BA)
at object RuntimeType.InvokeDispMethod(string name, BindingFlags invokeAttr, object target, object[] args, bool[] byrefModifiers, int culture, string[] namedParameters)
at object RuntimeType.InvokeMember(string name, BindingFlags bindingFlags, Binder binder, object target, object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParams)
at object Type.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args)
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 94
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at void SharpCap.WheelProxy.ASCOM.WheelWrapper.Dispose() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 50
at object InvokeStub_IDisposable.Dispose(object, object, IntPtr*)
at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr) in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
Info 17:47:49.290678 #24 MessageBox : '' Could not show the filter wheel driver properties.
Exception has been thrown by the target of an invocation. => user choice OK in DialogResult SharpCap.Base.Utilities.MessageBoxHub.ShowImpl(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
Info 17:47:49.290752 #24 Properties completed for filter wheel. in void SharpCap.Models.Wheel.ShowProperties(IWin32Window parent)
- Attachments
-
- Screenshot 2025-01-24 at 17.18.40.png (277.66 KiB) Viewed 1151 times
-
- Indigo Filter Wheel Error.txt
- (51.28 KiB) Downloaded 12 times
- admin
- Site Admin
- Posts: 17530
- Joined: Sat Feb 11, 2017 3:52 pm
- Location: Vale of the White Horse, UK
- Contact:
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Hi,
the key error message in that log that helps show what is going on is
That tells us that the failure is happening because the ASCOM driver code for the Pegasus wheel that is running inside SharpCap is failing to communicate with the Pegasus Unity control software that actually talks to the hardware. Without that connection from the code in SharpCap to Unity, everything that SharpCap tries to do in relation to the wheel will fail - setting the connected state, showing the setup window, even checking the connected state 
I have seen things like this happen before when Pegasus Unity is running 'As Administrator' and SharpCap isn't - Windows blocks communcation from a non administrator app to an administrator app on security grounds. However, from you screenshot, it doesn't look as if unity is running in administrator mode. On the other hand, I think there is a 3rd component - a Pegasus service or server that runs in the background - maybe that is the thing running as administrator.
You might want to try running SharpCap 'As administrator' to see if that helps - if it does it would at least confirm that we are on the right sort of track.
Other things you could try are to uninstall/reinstall the Unity software, and to fully reboot in case there is some oddity caused by not rebooting after an update/install. Beyond that, check other applications to see if they have the same sort of problem, and potentially try the 32 bit version of SharpCap just in case that works and the 64-bit doesn't. Anything we can learn about which applications are affected and which tests either change the result or do nothing to help is information that helps narrow down the cause of the problem.
cheers,
Robin
the key error message in that log that helps show what is going on is
Code: Select all
The RPC server is unavailable. (0x800706BA)
I have seen things like this happen before when Pegasus Unity is running 'As Administrator' and SharpCap isn't - Windows blocks communcation from a non administrator app to an administrator app on security grounds. However, from you screenshot, it doesn't look as if unity is running in administrator mode. On the other hand, I think there is a 3rd component - a Pegasus service or server that runs in the background - maybe that is the thing running as administrator.
You might want to try running SharpCap 'As administrator' to see if that helps - if it does it would at least confirm that we are on the right sort of track.
Other things you could try are to uninstall/reinstall the Unity software, and to fully reboot in case there is some oddity caused by not rebooting after an update/install. Beyond that, check other applications to see if they have the same sort of problem, and potentially try the 32 bit version of SharpCap just in case that works and the 64-bit doesn't. Anything we can learn about which applications are affected and which tests either change the result or do nothing to help is information that helps narrow down the cause of the problem.
cheers,
Robin
-
nebulosity10
- Posts: 5
- Joined: Sat Jan 25, 2025 5:18 am
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Thank, Robin. That gives me a few ideas to try and debug the issue. I'll follow-up.
-
nebulosity10
- Posts: 5
- Joined: Sat Jan 25, 2025 5:18 am
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
OK, I ran some tests. Below are the results, which got a little stranger, honestly.
1. 64bit vs 32bit SharpCap
If I run 32bit SharpCap, I get a 32bit error when I attempt to connect to any Pegasus Astro device (either my NYX101 or the Filter Wheel). The error is "MILERROR_WIN32ERROR". See the attached image.
2. The Pegasus Astro Unity Platform is not running as administrator. Neither are these two background applications:
Peg.UI
ASCOM.PegasusAstroUnity.Server (32 bit)
3. SharpCap can connect to the NYX101 without problem. I can connect, disconnect, reconnect.
4. Filter Wheel behavior - here is where it got strange:
- SharpCap 64 bit was able to connect to the filter wheel and successfully rotate filters.
- However, if I *disconnected* I got an error (see attached image). I could no longer reconnect after this.
- Shutting down SharpCap and restarting it repeated the above behavior.
- It did not matter if I connected the NYX101 first or afterwards.
5. Other Programs - I tested with ASCOM v7's 64-bit Device Connection Tester. It could connect and disconnected repeatedly from the filter wheel and also poll it for information, all of which was properly received.
One observation I had is that I see the ASCOM.PegasusAstroUnityPlatform.Server program runs as 32 bit. Might this be an issue when 64 bit SharpCap attempts to engage with it? Note again that it's odd the behavior is as expected when connecting and disconnecting from the NYX101. It's only the Filter Wheel that poses this odd issue. I do not know why I could not connect at all prior, as I originally posted, whereas now I can connect, but disconnection leads to failure.
Logs attached for further review.
Thanks again for the assistance!
Initial Snippet of filter wheel connection and thrown error for disconnect:
Info 16:32:46.919058 #33 =='ASCOM UI Thread for Wheel' (New Thread)
Info 16:32:46.919089 #33 Creating filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Debug 16:32:46.920504 #33 Started new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 16:32:46.920582 #33 Creating ASCOM Wheel of type ASCOM.PegasusAstroIndigo.FilterWheel ('PegasusAstro Indigo') in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 16:32:46.941099 #33 Ended new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 16:32:46.943727 #33 Connecting to filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Info 16:32:47.003906 #1 Wheel 'PegasusAstro Indigo' now Conneted:True in void SharpCap.Models.ConnectableHardware<T>.OnConnectedChanged(IApplication app)+() => { }
Warning 16:32:47.012641 #1 Bad index value from filter wheel proxy - received 0. We have 0 filters... in string SharpCap.Base.PropertyControls.WheelPropertyControl+WheelFeature.get_Value()
Warning 16:32:47.015559 #1 Setting name of filter 4 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015677 #1 Setting name of filter 5 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015782 #1 Setting name of filter 6 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015895 #1 Setting name of filter 7 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Info 16:32:47.016242 #1 Filter names from wheel are Optolong L-Pro Light Pollution Filter, Lumicon Ultra High Contrast Gen3 Filter, IDAS NBZ-II Filter Ha OIII Nebula Booster Filter, Filter 4, Filter 5, Filter 6, Filter 7 in void SharpCap.Base.PropertyControls.WheelPropertyControl+WheelFeature.Refresh()
Info 16:33:28.105779 #33 Disconnecting from filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Error 16:33:28.114135 #33 Async Disconnect from PegasusAstro Indigo failed : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.set_Connected(bool value) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 171
at Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DisconnectAsync(CancellationToken cancellationToken)+() => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 293
at async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 256 in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.114235 #33 Inner Exception : ASCOM.DriverException: Object reference not set to an instance of an object.
---> System.NullReferenceException: Object reference not set to an instance of an object.
--- End of inner exception stack trace ---
at void ASCOM.Com.DriverAccess.DynamicAccess.CheckDotNetExceptions(string memberName, Exception e) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 278
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 105
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at void SharpCap.WheelProxy.ASCOM.WheelWrapper.Dispose() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 50
at object RuntimeMethodHandle.InvokeMethod(object target, Void** arguments, Signature sig, bool isConstructor)
at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr) in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.114314 #33 Inner Exception : System.NullReferenceException: Object reference not set to an instance of an object. in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.124313 #1 Getting connected status of Filter Wheel : Exception of type 'DriverException' : Object reference not set to an instance of an object.
Stack Trace: at void ASCOM.Com.DriverAccess.DynamicAccess.CheckDotNetExceptions(string memberName, Exception e) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 278
at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 150
at object CallSite.Target(Closure, CallSite, object)
at bool ASCOM.Com.DriverAccess.ASCOMDevice.get_Connected() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 149 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 16:33:28.124404 #1 Inner Exception : System.NullReferenceException: Object reference not set to an instance of an object. in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 16:33:28.125873 #1 An error occurred while trying to connect to your PegasusAstro Indigo Mount. : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.set_Connected(bool value) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 171
at Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DisconnectAsync(CancellationToken cancellationToken)+() => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 293
at async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 256
at async void SharpCap.ViewModels.WheelViewModel.set_Connected(bool value)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/ViewModels/Controls/WheelViewModel.cs:line 53 in void SharpCap.Utils.TaskDialogHelper.ShowErrorReportTaskDialog(IApplication app, Exception e, string caption, string instructionText, string textPreamble, string linkInstruction, bool showIgnore, string ignoreInstruction, Nullable<(string name, string text, string instruction, Func<Task<bool>> action, bool? close)> additionalLink)
1. 64bit vs 32bit SharpCap
If I run 32bit SharpCap, I get a 32bit error when I attempt to connect to any Pegasus Astro device (either my NYX101 or the Filter Wheel). The error is "MILERROR_WIN32ERROR". See the attached image.
2. The Pegasus Astro Unity Platform is not running as administrator. Neither are these two background applications:
Peg.UI
ASCOM.PegasusAstroUnity.Server (32 bit)
3. SharpCap can connect to the NYX101 without problem. I can connect, disconnect, reconnect.
4. Filter Wheel behavior - here is where it got strange:
- SharpCap 64 bit was able to connect to the filter wheel and successfully rotate filters.
- However, if I *disconnected* I got an error (see attached image). I could no longer reconnect after this.
- Shutting down SharpCap and restarting it repeated the above behavior.
- It did not matter if I connected the NYX101 first or afterwards.
5. Other Programs - I tested with ASCOM v7's 64-bit Device Connection Tester. It could connect and disconnected repeatedly from the filter wheel and also poll it for information, all of which was properly received.
One observation I had is that I see the ASCOM.PegasusAstroUnityPlatform.Server program runs as 32 bit. Might this be an issue when 64 bit SharpCap attempts to engage with it? Note again that it's odd the behavior is as expected when connecting and disconnecting from the NYX101. It's only the Filter Wheel that poses this odd issue. I do not know why I could not connect at all prior, as I originally posted, whereas now I can connect, but disconnection leads to failure.
Logs attached for further review.
Thanks again for the assistance!
Initial Snippet of filter wheel connection and thrown error for disconnect:
Info 16:32:46.919058 #33 =='ASCOM UI Thread for Wheel' (New Thread)
Info 16:32:46.919089 #33 Creating filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Debug 16:32:46.920504 #33 Started new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 16:32:46.920582 #33 Creating ASCOM Wheel of type ASCOM.PegasusAstroIndigo.FilterWheel ('PegasusAstro Indigo') in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Debug 16:32:46.941099 #33 Ended new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId) in new SharpCap.WheelProxy.ASCOM.WheelWrapper(string deviceName, string progId)
Info 16:32:46.943727 #33 Connecting to filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Info 16:32:47.003906 #1 Wheel 'PegasusAstro Indigo' now Conneted:True in void SharpCap.Models.ConnectableHardware<T>.OnConnectedChanged(IApplication app)+() => { }
Warning 16:32:47.012641 #1 Bad index value from filter wheel proxy - received 0. We have 0 filters... in string SharpCap.Base.PropertyControls.WheelPropertyControl+WheelFeature.get_Value()
Warning 16:32:47.015559 #1 Setting name of filter 4 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015677 #1 Setting name of filter 5 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015782 #1 Setting name of filter 6 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Warning 16:32:47.015895 #1 Setting name of filter 7 to a non null/empty default in IReadOnlyList<string> SharpCap.Models.Wheel.get_FilterNames()
Info 16:32:47.016242 #1 Filter names from wheel are Optolong L-Pro Light Pollution Filter, Lumicon Ultra High Contrast Gen3 Filter, IDAS NBZ-II Filter Ha OIII Nebula Booster Filter, Filter 4, Filter 5, Filter 6, Filter 7 in void SharpCap.Base.PropertyControls.WheelPropertyControl+WheelFeature.Refresh()
Info 16:33:28.105779 #33 Disconnecting from filter wheel : PegasusAstro Indigo in void SharpCap.Models.Wheel.set_Connected(bool value)
Error 16:33:28.114135 #33 Async Disconnect from PegasusAstro Indigo failed : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.set_Connected(bool value) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 171
at Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DisconnectAsync(CancellationToken cancellationToken)+() => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 293
at async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 256 in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.114235 #33 Inner Exception : ASCOM.DriverException: Object reference not set to an instance of an object.
---> System.NullReferenceException: Object reference not set to an instance of an object.
--- End of inner exception stack trace ---
at void ASCOM.Com.DriverAccess.DynamicAccess.CheckDotNetExceptions(string memberName, Exception e) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 278
at bool ASCOM.Com.DriverAccess.DynamicAccess.TrySetMember(SetMemberBinder binder, object value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 105
at object CallSite.Target(Closure, CallSite, object, bool)
at void ASCOM.Com.DriverAccess.ASCOMDevice.set_Connected(bool value) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at void SharpCap.WheelProxy.ASCOM.WheelWrapper.Dispose() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 50
at object RuntimeMethodHandle.InvokeMethod(object target, Void** arguments, Signature sig, bool isConstructor)
at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr) in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.114314 #33 Inner Exception : System.NullReferenceException: Object reference not set to an instance of an object. in async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { }
Error 16:33:28.124313 #1 Getting connected status of Filter Wheel : Exception of type 'DriverException' : Object reference not set to an instance of an object.
Stack Trace: at void ASCOM.Com.DriverAccess.DynamicAccess.CheckDotNetExceptions(string memberName, Exception e) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 278
at bool ASCOM.Com.DriverAccess.DynamicAccess.TryGetMember(GetMemberBinder binder, out object result) in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/DynamicAccess.cs:line 150
at object CallSite.Target(Closure, CallSite, object)
at bool ASCOM.Com.DriverAccess.ASCOMDevice.get_Connected() in J:/ASCOMLibrary/ASCOM.Com/ASCOM.Com.DriverAccess/BaseClass/ASCOMDevice.cs:line 47
at bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected() in C:/Documents/Source Code/SharpCap/src/SharpCap.WheelProxy.ASCOM/WheelWrapper.cs:line 149 in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 16:33:28.124404 #1 Inner Exception : System.NullReferenceException: Object reference not set to an instance of an object. in bool SharpCap.WheelProxy.ASCOM.WheelWrapper.get_Connected()
Error 16:33:28.125873 #1 An error occurred while trying to connect to your PegasusAstro Indigo Mount. : Exception of type 'TargetInvocationException' : Exception has been thrown by the target of an invocation.
Stack Trace: at object System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(object obj, BindingFlags invokeAttr)
at object SharpCap.Base.Utilities.RetryProxy<T>.Invoke(MethodInfo targetMethod, object[] args) in C:/Documents/Source Code/SharpCap/src/SharpCap.Base/Utilities/RetryProxy.cs:line 26
at void generatedProxy_3.Dispose()
at void SharpCap.Models.Wheel.set_Connected(bool value) in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/Wheel.cs:line 171
at Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DisconnectAsync(CancellationToken cancellationToken)+() => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 293
at async Task SharpCap.Base.Interfaces.FakeAsyncConnectable<T>.DoInTask(Action a, CancellationToken cancellationToken, string action)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/Models/FakeAsyncConnectable.cs:line 256
at async void SharpCap.ViewModels.WheelViewModel.set_Connected(bool value)+(?) => { } in C:/Documents/Source Code/SharpCap/src/SharpCap/ViewModels/Controls/WheelViewModel.cs:line 53 in void SharpCap.Utils.TaskDialogHelper.ShowErrorReportTaskDialog(IApplication app, Exception e, string caption, string instructionText, string textPreamble, string linkInstruction, bool showIgnore, string ignoreInstruction, Nullable<(string name, string text, string instruction, Func<Task<bool>> action, bool? close)> additionalLink)
- Attachments
-
- indigo filter wheel error.txt
- (188.63 KiB) Downloaded 11 times
-
- Screenshot 2025-01-25 at 16.34.28.png (545.15 KiB) Viewed 1146 times
-
- Screenshot 2025-01-25 at 16.45.17.png (369.33 KiB) Viewed 1146 times
- admin
- Site Admin
- Posts: 17530
- Joined: Sat Feb 11, 2017 3:52 pm
- Location: Vale of the White Horse, UK
- Contact:
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Hi,
Ok, thanks for reporting back.
The MILERROR_WIN32ERROR thing is a problem with the display technology that SharpCap uses crashing, probably due to memory limitations. It can be worth trying to update your graphics driver to avoid this and also to try both with and without hardware acceleration (first page of the SharpCap settings). This error is really not related to the filter wheel I think, although it is odd that it happens when you try to connect to the filter wheel in 32 bit.
The second error (NullReferenceException) looks like it is coming from an internal problem in the ASCOM driver for the filter wheel - I suspect that the disconnection somehow leaves it in a state that is unexpected and then that fails on the reconnection attempt. It is odd though that we don't see in the log any trace of the internal location in the ASCOM driver that the crash occurred - in older versions of ASCOM we used to get that. It's a bit annoying not to have that info as it was a good way to report this sort of issue to the ASCOM driver developer - you could point them at the exact place that the problem occurred. I will see if I can work out why that has gone missing and try to get it back.
Right now, I don't have a good way to work out what is going wrong in SharpCap that is different to other apps, since other filter wheels that I can test with all work fine. It's probably worth passing this on to Pegasus to see if they can replicate the issue and then maybe fix it. Also, you could try using the 'ASCOM Just A Hub' filter wheel as an intermediary - set up SharpCap to talk to that and that to talk to the Pegasus driver. That might give a workaround.
cheers,
Robin
Ok, thanks for reporting back.
The MILERROR_WIN32ERROR thing is a problem with the display technology that SharpCap uses crashing, probably due to memory limitations. It can be worth trying to update your graphics driver to avoid this and also to try both with and without hardware acceleration (first page of the SharpCap settings). This error is really not related to the filter wheel I think, although it is odd that it happens when you try to connect to the filter wheel in 32 bit.
The second error (NullReferenceException) looks like it is coming from an internal problem in the ASCOM driver for the filter wheel - I suspect that the disconnection somehow leaves it in a state that is unexpected and then that fails on the reconnection attempt. It is odd though that we don't see in the log any trace of the internal location in the ASCOM driver that the crash occurred - in older versions of ASCOM we used to get that. It's a bit annoying not to have that info as it was a good way to report this sort of issue to the ASCOM driver developer - you could point them at the exact place that the problem occurred. I will see if I can work out why that has gone missing and try to get it back.
Right now, I don't have a good way to work out what is going wrong in SharpCap that is different to other apps, since other filter wheels that I can test with all work fine. It's probably worth passing this on to Pegasus to see if they can replicate the issue and then maybe fix it. Also, you could try using the 'ASCOM Just A Hub' filter wheel as an intermediary - set up SharpCap to talk to that and that to talk to the Pegasus driver. That might give a workaround.
cheers,
Robin
-
nebulosity10
- Posts: 5
- Joined: Sat Jan 25, 2025 5:18 am
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Thanks again, Robin. I'll start by submitting to Pegasus Astro to see if they can fix it. It is odd - it had previously worked fine, so it does make me wonder if a mix of upgrading to ASCOM 7 along with the latest Unity Platform updates may have spurred something. I will report back once I hear more from them.
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
I too had this problem and solved it by using the earlier 1.x version of Unity available on the Pegasus website.
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
I reported the issue and my solution to Pegasus with a request that if they update Unity they let me know.
I got the reply
Feb 21, 2025, 12:22 GMT+2
Hello [LordRat],
we're sorry about the inconvenience with the new version of our software and SharpCap.
We're aware of this and in fact it is not a Unity issue, rather than a SharpCap one, having to do with the ASCOM discovery/selection method.
I'm afraid this has to be solved from SharpCap's team side.
Thank you for reporting.
Regards
I uninstalled both Unity and SharpCap, restarted the computer and reinstalled the latest version of both. The SharpCap version is v4.1.13.131 64 bit . The problem remains.
I got the reply
Feb 21, 2025, 12:22 GMT+2
Hello [LordRat],
we're sorry about the inconvenience with the new version of our software and SharpCap.
We're aware of this and in fact it is not a Unity issue, rather than a SharpCap one, having to do with the ASCOM discovery/selection method.
I'm afraid this has to be solved from SharpCap's team side.
Thank you for reporting.
Regards
I uninstalled both Unity and SharpCap, restarted the computer and reinstalled the latest version of both. The SharpCap version is v4.1.13.131 64 bit . The problem remains.
- admin
- Site Admin
- Posts: 17530
- Joined: Sat Feb 11, 2017 3:52 pm
- Location: Vale of the White Horse, UK
- Contact:
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Hi,
thanks for passing that on, I wasn't aware of that feedback from Pegasus and I'm not 100% convinced as all the other filter wheel drivers work with the technique that SharpCap uses to activate/deactivate them. However, it could be that both SharpCap and the Pegasus driver do things in a bit of an odd way and that when those two are brought together things break (even if the approach of either apps seems to work on its own).
I am going to dig a little further to see if I can get any more info in my own testing (unfortunately I don't have a Pegasus wheel, but sometimes you can still find the cause of a bug). If I am still stuck I may ask you to produce some more diagnostic logs if that's OK.
thanks,
Robin
thanks for passing that on, I wasn't aware of that feedback from Pegasus and I'm not 100% convinced as all the other filter wheel drivers work with the technique that SharpCap uses to activate/deactivate them. However, it could be that both SharpCap and the Pegasus driver do things in a bit of an odd way and that when those two are brought together things break (even if the approach of either apps seems to work on its own).
I am going to dig a little further to see if I can get any more info in my own testing (unfortunately I don't have a Pegasus wheel, but sometimes you can still find the cause of a bug). If I am still stuck I may ask you to produce some more diagnostic logs if that's OK.
thanks,
Robin
Re: Pegasus Astro Indigo Filter Wheel Won't Connect
Delighted to help in anyway I can including loaning a filter wheel as a) it is cloudy and b) if it is not I still have a 1.25in ZWO filter wheel which works fine.