×

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

Bi-monthly release with minor bug fixes and improvements

Major changes in synscan driver

  • Posts: 193
  • Thank you received: 46
I have just committed a very large set of changes to the synscan driver. This driver works with the synscan hand controller on a synta mount, in normal mode, ie not the eqmod stuff in pc-direct mode.

Recent versions of synscan firmware now allow for setting date / time and location over the serial port. This has been implemented now when the handset firmware is detected to support these settings. I've also included the first cut at using the alignment subsystem as an integral part of the driver.

One of the major defficiences in the synscan firmware is the inability to sync the handset, so sync has never been supported in the past. With the alignment system now integrated, you wont see any real change, until the second sync point is established. Ra and Dec co-ordinates will pass thru the driver unchanged until two sync points have been set, at which point the alignment math will start to be used when passing ra/dec co-ordinates between the mount and clients.

There is no special setup required to use this as it's set up now, just send sync points and it'll magically kick in. There is some extra spamming into the client log during goto and sync operations so we can see how the numbers are being mangled as this starts to get used. To see visually what corrections are being made is pretty strait forward, even without getting under real stars. Just open the alignment tab in the synscan pages of the indi control panel, and turn the system off by clicking on the 'active' button. Your cursor in a planetarium program will move, because the data will start coming raw from the handset with no corrections if you turn the system off.

I have tested initially with the BasicMath plugin, and will start doing some more testing now using the SVD math plugin.
8 years 2 months ago #6472

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

  • Posts: 193
  • Thank you received: 46
Ok, on that first commit, I forgot to commit the cmake changes, so I guess things wont build. I just committed that change, so it should build now.

In the process, I have realized I broke something during the cleanup, hoping to get that dealt with today, not sure right now what it was I broke.
The following user(s) said Thank You: Jasem Mutlaq
8 years 2 months ago #6480

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

  • Posts: 193
  • Thank you received: 46
I have just committed another fairly signficant set of changes for the synscan driver. The driver now works in local hour angle and declination co-ordinate space when making calls to the alignment subsystem. This appears to finally be working.

I struggled a lot to understand some of the transforms, and in the end, I believe I was right in my understanding the first time around, but, the subsystem doesn't appear to work correctly when the mount is feeding in RA/DEC co-ordinates, ie relative to the rotating sky reference frame. But when we feed it with co-ordinates in the fixed frame of the mount, it seems to work well. This last commit uses Local Hour Angle and Declination for storing sync points, and retrieving transformed data from the sync point database.

I tried it using Alt/Az co-ordinate space as well, by taking raw data and making calls into libnova to convert between Ra/Dec and Alt/Az. Using it that way, worked just as well.

I have not yet dealt with the issues of a single sync point, so, the calls thru alignment will not start doing data transforms until there are two sync points in the database. Prior to the second sync call, the driver just passes raw data back to the client. What this means, is you should not expect to see any data corrections after the first sync point is set, but they will start happening immediately after setting the second sync point.
8 years 2 months ago #6512

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

  • Posts: 15
  • Thank you received: 2
I just tried to download indilib_1.2.0 from sourceforge, and I could not get it to compile under OSX -- the error was a missing dependency on libAlignmentDriver (-lAlignmentDriver), here is a snippet of the make log:

[ 73%] Built target indi_star2000
[ 74%] Built target indi_steeldrive_focus
[ 75%] Linking CXX executable indi_synscan
ld: library not found for -lAlignmentDriver
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [indi_synscan] Error 1
make[1]: *** [CMakeFiles/indi_synscan.dir/all] Error 2
make: *** [all] Error 2

After noticing in the ChangeLog that synscan and temma were both changed between 1.1.0 and 1.2.0, I was able to Google around and find a copy of the 1.1.0 source, which compiled with no problems.

I don't know enough about CMake to fix the dependency tree, but it seems like there might be something missing in this latest version?

I added this note to the current thread, because it looks like it might be related to the changes; please let me know if I should post this somewhere else.

My interest in compiling from source is that I am going to attempt to "port" LesveDome to INDI (that is, to support the Velleman K8055 board as an INDI::Dome), so I needed a good development environment to work with. I will proceed with the 1.1.0 code, but it would be great to make sure that my stuff works with the code in trunk, too. I will start another thread on this part, so as not to spam this one.

Thanks to all contributors for their hard work on INDI; it's really starting to support a lot of gear!

Clear skies,
Jimbo
The following user(s) said Thank You: Jasem Mutlaq
8 years 3 weeks ago #7149

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

  • Posts: 712
  • Thank you received: 174
Hi Jimbo, I'll check it. Peter
8 years 3 weeks ago #7155

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

  • Posts: 712
  • Thank you received: 174
Jimbo, if you really want to try to build it from source, you have to open file libindi/CMakeLists.txt and replace lines 208-210

if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_subdirectory(${CMAKE_SOURCE_DIR}/libs/indibase/alignment)
endif()

by line

add_subdirectory(${CMAKE_SOURCE_DIR}/libs/indibase/alignment)

Unfortunately it will probably fail on some other error, alignment driver is not platform independent :(

If you want simply use it, forget cmake and download native binary package from here: www.cloudmakers.eu/indiserver or build it yourself by XCode and project located in macosx folder.
The following user(s) said Thank You: Jimbo S Harris
8 years 3 weeks ago #7168

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

  • Posts: 15
  • Thank you received: 2
Hi Peter,

Thanks for your help! With that tip (which resolved the base dependency on the AlignmentDriver library -- it's now being built), I had to figure out how to properly tweak the -L path for the linker (AlignmentDriver was not finding -lgsl).

I'm happy to report that I have just successfully compiled libindi_1.2.0 under OSX 10.11.1

I would like to submit back a pull request, so you can see the changes that I had to make in order to get it to compile on a Mac; according to my feeble merge diffs, they are:

libindi_1.2.0/CMakelists.txt
add line: set(CMAKE_MACOSX_RPATH 1)
(this should be inside some kind of ifdef, but I didn't know how to do that)
also comment out lines 208 and 210 (per your suggestion)
(the arch line should simply include OSX, but I didn't know how to do that)

libindi_1.2.0/libs/indibase/alignment/CMakeLists.txt
line 49: target_link_libraries(AlignmentDriver -L/usr/local/lib ${GSL_LIBRARIES})
(this was where libgsl.* are on my box -- this should be more properly dealt with as a variable, but I couldn't figure out which or where)

libindi_1.2.0/drivers/focuser/smartfocus.cpp
line 23: #include <termios.h>
(this should be inside an ifdef block, but I didn't know what ifdef to use, so I hardcoded it)

With those minor changes, I was able to do the standard build from scratch (well-known, same as everywhere else, but copied here, for posterity):

tar zxvf libindi_1.2.0.tar.gz
cd libindi_1.2.0
vi CMakeLists.txt
vi drivers/focuser/smartfocus.cpp
vi libs/indibase/alignment/CMakeLists.txt
cd ..
mkdir libindi12_build
cd libindi12_build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug ../libindi_1.2.0
make
sudo make install

Thanks again for your help!

Best,
Jimbo
The following user(s) said Thank You: Peter Polakovic
8 years 3 weeks ago #7173

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

Time to create page: 0.648 seconds