I just tried to install Indi on an Ubuntu 16.04.6 LTS system and ran into problems. After adding the repositories using
sudo apt-add-repository ppa:mutlaqja/ppa
sudo apt-get update
sudo apt-get install indi-full gsc
Reading package lists... Done Building dependency tree Reading state information... Done gsc is already the newest version (1.3~ubuntu16.04.1). Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: indi-full : Depends: indi-aagcloudwatcher-ng but it is not installable E: Unable to correct problems, you have held broken packages.
Ah, no problem, this does not sound silly at all. Regardless of the fact that libindi is very well designed and compiles rather well, the whole process is all but trivial for people who do not work with C++ on a regular basis.
First of all, you should follow the instructions in Jasem's forum post "HOWTO: Building latest libindi & Ekos", paragraph 3, "Building INDI from Source
". If you use Raspbian on your PI, the described steps should work without problems (at least they did for me). As a first test, I would recommend to compile the sources without the Starsense patch, just to make sure that the toolchain and the whole compilation process works flawlessly. For this purpose, simply type "sudo make" rather than "sudo make install" for this purpose.
If compilation works well, as a next step, you can apply the Starsense patch. To do this, enter the libindi directory created when downloading the sources via git, copy the patch to the same directory, and then type
patch -p1 <celestrongps_starsense.diff.txt
You should get then the following three messages:
patching file libindi/drivers/telescope/celestrondriver.cpp
patching file libindi/drivers/telescope/celestrondriver.h
patching file libindi/drivers/telescope/celestrongps.cpp
After this, you are ready to recompile the modified sources. To do this, and in the same step install the modified indi drivers use the command "sudo make install" this time.
If everything has worked correctly, you should now have a modified version of the celestrongps driver on your PI.
If the hole process sounds too complicated, maybe you kindly may ask Jasem, whether he could include the patch in his nightly builds. Since the patch is able to detect the Starsense controller and distinguishes between standard Nexstar controllers and Starsense, it should also be safe for all non-Starsense users. At least, I tested it with my AVX Nexstar+ controller and it worked flawlessly.
meanwhile I got a response from Team Celestron and have been able to create an experimental patch to unlock newer features of the celestrongsps driver, when a Starsense controller is attached instead of a newer Nexstar controller. Since older versions of the Starsense controller include a nasty bug when syncing, the patch requires Starsense firmware 1.18 or newer in order to unlock full functionality. If you have an older firmware on your Starsense controller, please update to the latest version.
Unfortunately, due to time an weather restrictions, I have been only able to do some dry tests with the modified driver. Since parking and unparking the mount completely screwed up the mount causing the OTA (if it would have been mounted) pointing towards the ground, I decided to disable parking for safety reasons if a Starsense controller is detected. Please note that the patch does nothing else than enabling the full feature set of the celestrongps driver (except from parking/unparking). It does not add any new Starsense specific functionality.
DISCLAIMER OF WARRANTY: On the first glance all other features seemed to work fine, but if you want to test the patch, please note that you do it completely at your own risk. I am not responsible for any side effects or damages caused by the patch.
@bsfstreef: If you want to test the modified driver, simply apply the patch agains the git version of libindi and recompile.
meanwhile I posted a question at Team Celestron regarding how to distinguish the Starsense hand controller and old Nexstar controllers. Let's see what will be
most likely it is not worth sharing the patch, since I simply and crudely disabled version checking for testing. This is obviously not the way how to do it officially.
The question how to distinguish between Nexstar and Starsense is a really good one. Since I did not see an obvious way to distinguish between an old Nexstar version and Starsense when I did my tests, I did not continue with these activities.
Actually I also own Starsense and use it with the AVX. It comes with its own hand controller, with additional features to control the Starsense camera to use built in plate solving for mount alignment. To my understanding, even though operation of the Starsense hand controller is different form the standard Nexstar+ controller, it appears to support the full serial command set of the current Nexstar+ controllers and hence should work flawless with libindi. However, since Celestron considers Starsense as its own (rather new) product, the firmware reports something like 1.x as version.
Unfortunately, up to now I had no time looking into details, but a brief test some time ago with a patched indi driver that starsense should work with indi. At that time there where some (reported) bugs in the Starsense firmware which caused problems when parking the mount, but to my knowledge this should be fixed meanwhile by a new Starsense firmware. Probably one of the challenges for the indi driver would be to distinguish between the Nexstar and the Starsense hand controller when reporting the firmware version to prevent the driver from thinking that it talks to an old Nexstar controller.
Even if my time is rather limited currently, if there is something I can do to support your activities, pleas let me know.
My code is available at github.com/XXgeoXX/indi. Is seems that we pretty much went the same road. I also used the MoonLite focuser code as a basis for implementing the driver. The commands you send to the focuser controller look similar to mine. My code should basically be complete, including automatic temperature compensation, selecting rotation direction as well as changing the temperature compensation sign. However, since I only own one USB_focus_v3 and have no access to other samples, it up to now has only been tested with my device, having firmware 1505 installed on it.
since I had no success using indi_usbfocus_focuser with EKOS, I finally decided to start my own (experimental) driver project for the USB_focus_V3. I already submitted some code to Jasem. I think if he finds that the code fits the quality requirements of libindi, he maybe can make a version available for testing.
Thanks a lot for your outstanding support. As requested, here is the output of indiserver -vvv for the updated libindi. Unfortunately, I cannot tell that I understand what is going on, but if i would have to make an uneducated guess, I would presume that the indi_usbfocus_focuser driver does not properly respond to setting an absolute focus position. Unfortunately I cannot check the sources myself, but the reason why a came to this assumption is that indi_simulator_focus supports setting an absolute position, while indi_usbfocus_focuser does not seem to provide this option in Kstar's indi device panel.
I guess I can confirm a similar problem. I set up a new Indi/Kstars installation based on Kubuntu 16.04 about two weeks ago. Now I attached an USB focus v3. In the indi control panel, the USB focus v3 works fine, including enabling temperature compensation and focusing in and out by providing a number of relative ticks.
However, any endeavours of controlling the USB focus v3 from Ekos in the focus tab has not been successful. Moving the focus updates the tick display, but trying to focus in or out manually, or staring an autofocus run in Ekos does not move the focus motor.
I'm not sure whether this is related to the same problem, but controlling the focus motor by a joystick does also not work for me. It is possible to activate joystick support in indi, and to configure the corresponding joystick buttons. However, pressing any buttons at my joystick does not move the focus, regardless of which buttons I try to configure.
Please let me know, if I can provide any additional information from my side.