Pavel replied to the topic '64bit Astroberry' in the forum. 9 months ago

Well, so I tried migrating to Stellarmate as well. First I was afraid of a closed system, but it is not really. Just a small support for the INDI development to download the base image. But my PyIndi scripts do not work like they did on Astroberry. Strange issues and error. Maybe because of the recent upgrade to INDI 2.0 and changes in API that are not fully transferred to the PyIndi yet? Also, my myFocuser does not want to connect to the hotspot anymore, despite of the same SSID/password/IP setting.

Read More...

The cause seems to be a regular call to the infamous astroplan package, even just for what I thought a simple calculation. I have updated that package too and it does not seem to improve - rather the opposite.

I thought a delay in INDI event processing would cause missed events, but why does it cause this type of python exception?

Read More...

OK. I have done some cleaning, even tried a new installation of Astroberry... It looks like completely random crashes, both run manually and at the startup.

Read More...

Hi, I have a rather complex pyindi script that I have no problems to run manually, but when started on system boot (rc.local or systemd service), it usually fails (only occasionally/randomly it starts). Until lately, it worked (mostly) also on startup, but suddenly (after latest Astroberry updates?) it usually fails and I have to restart it manually.

It always fails with the following message:

Traceback (most recent call last):
   File "/usr/local/lib/python3.7/dist-packages/PyIndi.py", line 1081, in <lambda>
     __getattr__ = lambda self, name: _swig_getattr(self, BaseClient, name)
   File "/usr/local/lib/python3.7/dist-packages/PyIndi.py", line 80, in _swig_getattr
     raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
 AttributeError: 'BaseClient' object has no attribute 'removeDevice'

This exception is always preceded by a long list of messages of this type (just sometimes with different values or empty attributes):
Dispatch command error(-1): No device available and none was created
<defNumber name="%g" label="" format="%g" min="-32767" max="32767" step="0">
0
</defNumber>

I cannot locate any particular place or operation triggering this exception.

I have tried upgrading/downgrading pyindi-client between versions 0.2.5 and 0.2.7a (0.2.7 and 0.2.7b do not compile), but without success. Could it be some problem of the libindi 1.8.9 itself?

Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

I didn't start Ekos. I just started KStars. But I have to admit I am completely confused of how it is configured. Does it always start its own instance of INDI server by default? Where can I turn it off? I always just use the device manager to manually connect to the running INDI server at localhost - I wonder whether that cannot just happen automatically on start? The documentation just describes how to connect and change the modes manually, but I cannot see any setting for automatic connection/setup.

I had a closer look at my DIY thumb joystick and not only its resolution is very poor, but it has terrible dead zones at the edges of its range. Maybe it is rather problem of the Arduino controller and its A/D converter. Anyway, the only plausible solution to use the range of values would probably be to divide it into three zones. The outer would incrementally increase the slew rate (let's say in 0.5s intervals?), the medial would just keep the movement and the inner one would incrementally decrease the speed until it stops completely. The Arduino could emulate the speed change commands as button presses. However, it does not seem to be of any use with the current speed limits and the automatic go-to system is the only way to control large scale slews at the moment.

I found no closer description of the "ramp up" process of slew speed in the documentation. May be one could find inspiration in the ASCOM source code? At the first look it seems to define 5 speeds: 0 (stop), 0.6x (guide), 5x (center), 50x (move) and 600x (slew 2.5deg/s). (The base being the sidereal rate.) Does anyone have any experience with the ASCOM implementation and how it actually behaves?

Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

So, I have not found anything useful using logs, so I just wrote a simple python script that turns on the "USEJOYSTICK" switch and put it into /etc/rc.local. Stupid workaround, but it works (with a slight delay after bootup).

I have tried testing my thumb joystick, fighting with its random deviations, which make everything more complicated. I am thinking of several methods how to control the speed without additional buttons. But for casual visual observations, it seems I would be happy enough just using the highest speed currently available. Higher speeds are not supported (and I do not dare to implement them now) and lower speeds do not currently seem to be necessary (the iExos-100 is not that much robust and stable for such delicate fine-tuning anyway, and for astrophotography a remote control by a computer seems more useful than manual joystick).

I was just a bit surprised yesterday: after slewing to some position in the sky using SkySafari, I started KStars at the Astroberry desktop and at that moment the mount driver got reset, thinking it is pointing to the NCP. Any idea why?

Read More...

Oh, it looks like the problematic update was indi-astroberry-diy 2.5. The indi web manager wasn't able to change the profile, but after I manually removed the "Astroberry Board" driver from .indi/profiles.db, everything seems to work again.

Read More...

I just did apt update now and after reboot INDI won't start. The syslog is full of the following failures:

systemd[1]: Started INDI Web Manager.
indi-web[2689]: Traceback (most recent call last):
indi-web[2689]:   File "/usr/local/bin/indi-web", line 10, in <module>
indi-web[2689]:     sys.exit(main())
indi-web[2689]:   File "/usr/local/lib/python3.7/dist-packages/indiweb/main.py", line 315, in main
indi-web[2689]:     start_profile(profile['name'])
indi-web[2689]:   File "/usr/local/lib/python3.7/dist-packages/indiweb/main.py", line 99, in start_profile
indi-web[2689]:     indi_server.start(info['port'], all_drivers)
indi-web[2689]:   File "/usr/local/lib/python3.7/dist-packages/indiweb/indi_server.py", line 74, in start
indi-web[2689]:     self.start_driver(driver)
indi-web[2689]:   File "/usr/local/lib/python3.7/dist-packages/indiweb/indi_server.py", line 37, in start_driver
indi-web[2689]:     cmd = 'start %s' % driver.binary
indi-web[2689]: AttributeError: 'NoneType' object has no attribute 'binary'
systemd[1]: indiwebmanager.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: indiwebmanager.service: Failed with result 'exit-code'.
indiwebmanager.log contains repeated failures
WARNING: terminating indiserver failed code 1


Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

Setting the SlewRate according to the magnitude of the joystick inTelescope::processNSWE() e.g.:

ceil(mag*nSlewRate)-1
It would probably be useful to put some minimal threshold there, so it would become:
ceil((mag-minThreshold)*nSlewRate/(1-minThreshold))-1
Or maybe a logarithmic scale would be more adequate than linear?
Of course, the condition "if (mag < 0.5)" at the beginning would probably change into "if (mag < minThreshold)" and later "if (mag > 0.9)" into "if (mag > minThreshold)". Is it a bad idea? I hope it could work well for nSlewRate=4, as currently provided by the PMC8 driver. I am not sure about all the 9 speeds available in ExploreStars, if ever implemented by the PMC8 driver. It would need testing in practice and it would probably depend on the particular joystick. My DIY thumb-joystick would probably not offer really exact control of too many speeds, but maybe I would not mind. So, maybe it would raise desire for even more configurability of the joystick settings - such as a toggle between the current "digital" control with a preset speed, and this kind of "analog" control with variable speed.

Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

After a long search for the code where the driver integrates the joystick controller, I found (surprise! surprise!) that it's all just inherited from the default INDI::Telescope implementation. Finally, a lot of the undocumented settings make some sense to me, as well as the terms "angle" and "magnitude". On the other hand, most of the limitations seem to be based here. Since it is the work of Mutlaq personally, the reason is definitely NOT any lack of competence in this case... ;-) The "magnitude" plays no role - it just starts movement when above 90% (and stops when below 50%?). So, trying to program the joystick to work around the INDI system seems as crazy as just playing with the code of the method Telescope::processNSWE() myself. Or maybe is the whole idea of mine to control the speed by the magnitude of the joystick just for some reason bad?

Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

The problem might have been that I misunderstood the documentation and turned into the debugging mode where there are completely different commands with low-level effects on basic settings. But that is just another reason not to trust myself. Nobody really told me what happened, they just sent me a new mount.

I only tried the mount twice since I bought it and I have had problems with a proper polar alignment and with keeping it. I still need to learn. But I wished to be able to move the mount freely manually even without the goto, just to be on the safe side if I give up fighting in the fields and forests. I have read the higher speeds need to be turned on gradually (and I do not suppose the mount does it automatically, so I expect it to be the reason it is not implemented in the driver yet).

The ability to move both axes at once should not be a problem, though. Currently the driver denies the second movement, because the mount "is currently slewing". I suppose it is not desirable to start movements when the mount is slewing automatically to some target position. So, if it is possible to differentiate between the goto-slewing movement and the manual one, it could be enabled easily. I will have a look.

However, those are all just minor details one can live well without. I guess the most serious limitation of the driver is currently the lack of support for the INDI alignment subsystem...?

Read More...

Pavel replied to the topic 'iEXOS100 Mount Tested With PMC8 Driver' in the forum. 4 years ago

Maybe the joystick is not available at the moment the INDI drivers start and turns off again? I noticed that happens with the mount as well. It is not a plug and play system, it only tries once...?

Yes, I would like to contribute, I just do not trust myself. My first experiments ended with a damaged mount and I had to return it. I only tried to telnet and query the firmware version and still the mount stopped working. A discouraging experience. So, when I see something is not implemented by a more competent person, I am afraid there might be some good reason for that. I will try to get deeper into the INDI system, if I can, but I will surely always try to raise questions before trying to actually "fix" something that should not be played with for some good reason.

I really like the whole INDI system architecture, but I still wonder about some details of the implementation, such as the array-like implementation of switches and the reason for such implementation decisions (what happens if I try to switch on more then one option? etc.). I should probably get some time to study the documentation closer before trying to hack something (and break it).

Read More...