Saturday, July 30, 2022

KStars v3.6.0 Released

KStars v3.6.0 is released on 2022.07.30 for MacOS, Linux, and Windows. It's a bi-monthly bugfix release with a couple of exciting features.

Linear 1 Pass Algorithm

John Evans contributed a new Focus algorithm: The Linear 1 Pass Algorithm. When using this algorithm, Ekos initially performs like the Linear algorithm in establishing the first pass V-Curve and fitting a curve to it to find the solution. Then, however, it moves directly to the calculated minimum. Key features include:

  • The algorithm compensates for focuser backlash, providing that backlash is consistent.

  • The algorithm is fast, taking 1 pass to identify optimum focus.

  • The algorithm uses more sophisticated curve fitting to pinpoint the optimum focus position.

  • The algorithm is highly configurable with user control over many parameters like step size and number of steps.




Early tests by various users shows very promising and stable results

Polar-alignment V3


Hy Murveit introduced a new Polar Alignment method based of plate solving. The original polar-alignment error measurement scheme has not changed. The user interface has changed slightly--different messages and a new LED display to indicate progress.

The original polar-alignment refresh/correction method still exists (if you choose the MoveStar or MoveStar & Cal Err refresh methods).

A new polar-alignment refresh/correction method is provided called PlateSolve. It allows for corrections of larger polar-misalignment in a single pass, does not depend on the image display, and may be more reliable if your plate solving is working well.

A new alternative to MoveStar is the PlateSolve method. This can polar align mounts with larger alignment errors in a single procedure. A similar triangle is displayed on the image display, but it is not central to this scheme. 


Rather the user should concentrate on the Updated Error line at the bottom of the display, and attempt to zero the Altitude and Azimuth errors. Also, arrows display the direction the mount needs to move to reduce error.

The method works by plate-solving images as they are captured, and then estimating the user's knob-adjustments from the plate-solve solutions. Note that, since knobs may be moved during exposures, some images may have large star trails and plate solves may fail. Be patient and allow the system to capture a clean image before relying on the error estimate. 

Image ROI Statistics


Madhav Prabhu made his first contribution to KStars by adding Region-Of-Interest (ROI) selection in FITS viewer where users may view statistics for a particular region of the image. The stats include average, median, and standard deviation.



You can select from existing probes of varying sizes (50x50, 100x100..etc), or you can simply hold down the Shift key and drag the mouse to create your own rectangle.

Profile Scripts


For complex equipment profile that have inter-dependencies requiring script execution or programmable delays, the new Script Profile edit provides complete control over the driver startup sequence.


You may define a Pre-Delay and Pre-Script before a driver is executed (e.g. script to turn on the observatory electricity), and define a Post driver delay and script if desired. For some drivers like Pegasus Ultimate Power Box, it is often desirable to start this driver before other drivers so that all configuration is loaded.

Geographic Map Update


Ed Lee made his first contribution to KStars by replacing the old geographic map from a new high quality version from NASA. This should play more nicely on larger monitors and high DPI displays.

Misc. Updates


Small but important quality of life improvements to KStars & Ekos.
  • Hy Murveit Show number of clipped pixels on fitsviewer status bar if show-clipping is enabled
  • Akarsh Simha Improve the manual focus dialog for the SkyMap
  • Sophie Taylor Correct nomenclature for Linear1 focus algorithm with "R2" -> "R²", and add a default and minimum value for R² limit
  • Akarsh Simha Further improvements to Add Catalog Object UI, including auto-filling data from text.
  • Sophie Taylor Improve tooltips for GPG expert settings
  • Akarsh Simha Various fixes and improvements related to DSO catalogs and visibility.
  • Akarsh Simha Refactor `DmsBox` widget and improve the Add Catalog Object form.

Thursday, May 26, 2022

KStars v3.5.9 Released

KStars v3.5.9 is released on 2022.05.26 for MacOS, Linux, and Windows. It's a bi-monthly bugfix release with a couple of exciting features.

DSS Offline HiPS

HiPS (Hierarchical Progressive Surveys) is a technology that provides progressive high resolution images of the sky at different zoom levels. KStars fully supports online HiPS where data is downloaded from online servers and cached to display on the Sky Map.


One of the most popular catalogs in KStars is the DSS Colored progressive survey. With v3.5.9, you can now specify directory where the offline DSS catalog is located. You can download the data from various HiPS services online. For best experience, it's recommended to download 3rd, 4th, and 5th (Norder3, Norder4, and Norder5) order directories which would take around 1GB of storage space. You may download further orders (i.e. higher zoom levels) at the expense of more storage space.

The following shows a sample of downloaded order directories, at minimum you need Norder3 folder for this functionality to work.


Revamped Mosaic Planner

New simplified and powerful Mosaic Planner directly integrated in the Sky Map. It greatly benefits from HiPS overlay to make your target framing spot on. Toggle the Mosaic View from the tool bar, and select your equipment and the mosaic configuration. You can also use it as a very simple tool to frame a single 1x1 tile.



Adjust the tile center either by manually specifying the J2000 center or by dragging the tiles across the sky map. Once done, you can command the mount to go to the target and solve. Alternatively, you can proceed to create jobs for the Ekos Scheduler. After the jobs are added, you may start the scheduler at any time to plan the mosaic session accordingly.

Refocus After Meridian Flip


Dušan Poizl
 added the ability to refocus after a meridian flip is complete. This is very useful for some optical train setups where the focuser might shift duration the flip.

New Index Files


Robert Lancaster added the new 5200 astrometry index files. The difference is just which star surveys were used to build which indexes. The 4200 Series was made from 2MASS and covers all the image scales. The 4100 series was made from Tycho2 but only covers wide image scales. The 5200 series was just recently added, was made by blending Tycho2 and Gaia, and complements the 4100 series to give it the smaller scales.

Internal Plumbing: Introducing Device Adapter

Wolfgang Reissenberger continues his outstanding work refactoring Ekos state machine by introducing the device adapter. Next step extracting state handling from Capture into a dedicated state machine. In this step devices are managed by a dedicated device adapter (successor of the command processor). With this refactoring it is no longer necessary to route device events from Capture through SequenceJob to the state machine, the device adapter sends the events directly to the state machine.

Capture Progress face lift


Wolfgang Reissenberger streamlined the capture progress section of Capture:

  • Remaining time for frame and sequence displayed as hh:mm:ss
  • Display of average download time (in calculation, all download times are taken into account and not only those > 1)
  • New status widget with a color LED displaying the capture status (and no longer using the seconds text for this)
  • Using the same widget on the Master tab 

Greedy Scheduler Speeds up


Fans of Greedy Scheduler rejoice! Hy Murveit made significant speedups to the Greedy Scheduler, especially for very large scheduler. 


Friday, March 18, 2022

KStars v3.5.8 Released

 KStars v3.5.8 is released on 2022.03.19 for MacOS, Linux, and Windows. This is a mostly bugfix release with a couple of exciting new features.

Faster plate-solving with StellarSolver 2.2

Robert Lancaster released StellarSolver 2.2 with significant improvements. StellarSolver is the library used by Ekos for star extraction and plate-solving. It is now so fast that sub-second plate-solves are quite common. Here are some highlights:

  • Eliminating the last external files: solved and cancel files from the internal solver
  • Making an interface between the C++ and astrometry.net logging that works well to fix logging issues
  • Making StellarSolver easier to use in a blocking way, including using it as a C++ temporary object
  • Making the convolution filter easier to generate and use as well as adding more types of filters
  • Significantly reducing the astrometry code needed for the solver
  • Adding support for a new external solver: the Watney Astrometry Solver
  • Improving the abort code so that it shuts down faster
  • Adding a number of demos to show how to use StellarSolver
  • Adding healpix and index series hints so that you can speed up solves in localized areas based on former solves
  • Making it possible to run two stellar solvers simultaneously
  • Adding some new options for star extraction
  • Making API simplifications
  • Fixing some memory leaks and other warnings on various operating systems
  • Removing some unused code

Greed is Eternal (10th Rule of Acquisition)

Hy Murveit introduced a new type of scheduling algorithm which he dubbed as the Greedy algorithm.

In both the Classic and Greedy schedulers, jobs are listed as "earlier on the job list means higher priority". With the Classic scheduler, priority is of the highest importance. It will not schedule a lower priority job until the higher priority job is done, even if that job takes several nights, and even if the higher-priority job cannot run at the current time, e.g. due to altitude/terrain/etc.  In contrast to this, the Greedy scheduler attempts to keep Ekos busy as much as possible. Although it gives priority to earlier-listed-jobs, it will run later-listed ones if the earlier one can't run. Of course, the lower priority job will get preempted when the high-priority job can finally start to run.

If you start the scheduler with only one job, there is no difference between Classic and Greedy scheduling. However, if you have more than one job, depending on your setup, there is a good chance that the Greedy scheduler will schedule more imaging time than Classic.

Here's a recommended way to try this out. Let's assume you have a main target for which you want to collect as many images as possible. Set that target up as first on the scheduler list, have it start ASAP and set its completion condition as "Repeat Until Terminated". It should be scheduled to image whenever possible (even across multiple nights) until you turn off the scheduler or Ekos. Add several other targets as well, ones that you might also be interested in, and that can be imaged in other parts of the night. Make sure those are listed below the primary target on the jobs list. Set those the same way (ASAP/RepeatUntilTerminated). They will be scheduled to run whenever the primary target can't be imaged.  Of course, make sure the twilight restriction is set for all your targets. Altitude and terrain restrictions are important as well--if Ekos doesn't know that there's a tree or house blocking your target, it can't be smart about scheduling it.

Since jobs will be preempted/restarted more often with Greedy than with Classic, the "Remember Job Progress" option is now more important.  You can find this setting in the KStars Setting Menu --> Ekos --> Scheduler --> "Remember job progress".  This option only works if you are storing images on the same machine where the scheduler is running. You should enable "Remember Job Progress" with this scheduler to get the most benefit, assuming your capture sequences use multiple/different filters. If your capture sequences are just used with one type of filter/or OSC then it probably doesn't matter. (RememberJobProgress has also be updated a bit, and should now do a better job of picking up where the last attempt finished.)

The screenshot above shows the scheduler running with this new scheme. Note that there are 4 jobs, and they are listed in order of precedence. You can see the next start times for each of the jobs on the scheduler table, and the highlighted (4th) job is the one currently running. A schedule for the next 48 hours is also printed in the log window at the bottom.


The scheduler is (minimally) integrated with Analyze. During testing I let the Greedy Scheduler run for 3 days. Here's a screenshot of the Analyze timeline for the 3 days. (Note some timelines didn't display well because of screen resolution.) The top line is the new scheduler timeline in Analyze. The different colors correspond to different jobs that were run, each one keeping its same color on different stars. You can see the different jobs ran as expected each night.

Support for Capture Format

New in this release is support for INDI v1.9.5 Capture Format selection. This was previously explicitly selected by the user in INDI Control Panel but is now available in the Sequence settings in the capture module.



Full change log

907bc629b 2022-03-15 Jasem Mutlaq         Replace repeated message with just a label update
fead0a8d4 2022-03-15 Wolfgang Reissenberger Avoid in-sequence-counter countdown when already zero
b10c443f7 2022-03-14 Robert Lancaster     Forgot Prefix path for DriverSupport
0a552226f 2022-03-14 Jasem Mutlaq         Only emit newCoord when mount is connected
e02adcf48 2022-03-14 Wolfgang Reissenberger Bugfix initial guide deviation set blocks post MF calibration
6853eec35 2022-03-14 Jasem Mutlaq         If telescope device is not defined or connected, do not process coordinates
1640c7a2b 2022-03-13 Robert Lancaster     Moving KStars Mac INDI copy instructions to cmakelists
56cd0535f 2022-03-13 Jasem Mutlaq         Add an exact parameter to findByName so that catalog component can customize its search behavior globally
64b9ec0c3 2022-03-13 Akarsh Simha         Fix  CatalogsComponent::findByName() to find only 1 exact match
0e2a3ab07 2022-03-13 Akarsh Simha         Fixes and some improvements to the "Add catalog object" UI
e22bfc6ed 2022-03-11 Akarsh Simha         Fix truncation of observing list upon adding to it from popup menu
993692eaa 2022-03-13 Akarsh Simha         Make some usability improvements, especially in the Find Dialog
9245f9b75 2022-03-12 Hy Murveit           reduce log spam
e23a7ab8c 2022-03-12 Jasem Mutlaq         Various memory leaks. Still there is definitely memory leaks when performing...
dabeeec3d 2022-03-11 Jasem Mutlaq         Fix compile on 18.04
f34bcb7d9 2022-03-11 Jasem Mutlaq         Disable event-driven setScopeStatus from INDI::Telescope since it sets m_Status which prevents the polling method from working
5033fba01 2022-03-11 Jasem Mutlaq         Fix bug that caused PAA to fail if a driver send HORIZONTAL_COORD as well
836f47c89 2022-03-11 Jasem Mutlaq         Improve Look n Feel tab
23bb6cbfd 2022-03-10 Robert Lancaster     updating to StellarSolver 2.1
f184fd378 2022-03-09 Nicolas Fella        Don't find KAuth
96ed6a6d7 2022-03-10 Jasem Mutlaq         Fix compile on Windows
755c34e96 2022-03-09 Hy Murveit           Make the test_ekos_scheduler_ops tests more stable.
860301309 2022-03-09 Jasem Mutlaq         Fix typo
abec3e796 2022-03-09 Jasem Mutlaq         Extra check
e4685108d 2022-03-09 Jasem Mutlaq         vShapeSolution should be reset in stop
d38a27b17 2022-03-08 Akarsh Simha         Whenever stars have Henry Draper numbers, make them show up as their names
21635a353 2022-03-08 Robert Lancaster     Fix memory leak
4c71e6262 2022-03-07 Jasem Mutlaq         No need to explicitly load the dark frame
50c523bdc 2022-03-07 Jasem Mutlaq         Clear pointers on disconnect
d973ffec2 2022-03-06 Robert Lancaster     Making it faster by reusing stellarsolver.
4ea60c7fe 2022-03-07 Jasem Mutlaq         Capture encoding is now fully implemented in the code along with capture format. Fix issue when setting temperature and filters in non-light frames
e1a1f7c33 2022-03-06 Jasem Mutlaq         Make it compile on 18.04
8e7fd183f 2022-03-06 Hy Murveit           change scheduler colors for analyze
146577ca6 2022-03-06 Robert Lancaster     Fixing a KHelpClient bug on MacOS
3b39d06b4 2022-03-06 Philip Mair          Fixed restoring of bin settings
134d3d8d1 2022-03-06 Yuri Chornoivan      Fix minor typos
52e0e4d1e 2022-03-06 Jasem Mutlaq         Improve tooltip and simplify UI
961575df9 2022-03-05 Robert Lancaster     Improving Tooltips
d2724f80c 2022-03-05 Jasem Mutlaq         Clear sequence array on clear sequence
24d0806b5 2022-03-02 Akarsh Simha         Fix bug due to addition of new sky culture by saving config differently
ec9448cbd 2022-03-05 Hy Murveit           New Greedy Algorithm for Scheduler
a39d48e8e 2022-03-04 Mattia Procopio      Allow to provide a custom URL to download index data from
3e5b922c1 2022-03-04 Robert Lancaster     Fixing some issues found by Jussi Saarvirta
56a377826 2022-03-03 Hy Murveit           fix maxGuidestarsHFR issue, fix test, increase max dither size
cf5db0400 2022-03-02 Robert Lancaster     Updating KStars to support StellarSolver 2.0
9f20fe9e7 2022-03-02 Jasem Mutlaq         Make minimum exposure value 1 for refresh phase
831dc2890 2022-03-02 Hy Murveit           Allow older capture sequence files
cc7225978 2022-03-01 Salman Naheed        Ekoslive dark library
bfa23a060 2022-02-28 Nate Graham          Add Release tags to AppStream metadata file
06d6c0460 2022-02-26 Nate Graham          Make default color scheme default
8fe6068e0 2022-02-24 Salman Naheed        Ekoslive dark library
5dbb32de0 2022-02-23 Hy Murveit           Unconstrain Ekos' main vertical slider
df71cbf3e 2022-02-22 Salman Naheed        Ekoslive dark library
cd1cb58cf 2022-02-22 Wolfgang Reissenberger Timer based update of mount coordinates
8c457d62a 2022-02-22 Jasem Mutlaq         Add support for INDI capture format
2de2a7d0b 2022-02-21 Akarsh Simha         Adding popular asterisms as a sky culture
bbe08f422 2022-02-21 Salman Naheed        Ekoslive dark library
46d5fd47b 2022-02-21 Hy Murveit           Change gpg period spinbox from int to double
5a04cdbaa 2022-02-19 Wolfgang Reissenberger Bugfix selecting guide deviation when guiding is not running
9071245d7 2022-02-17 Wolfgang Reissenberger Bugfix darks jobstate and #158
e23f1c33d 2022-02-16 Hy Murveit           Small bug fixes: calibration not always shown. MultiStar graphics offset by a frame.
5bd737613 2022-02-16 Jasem Mutlaq         Fix meridian flip message, should be KSMessageBox and not newLog
628cf1241 2022-02-15 Yuri Chornoivan      Fix minor typo
99410cd62 2022-02-15 Hy Murveit           Make sure SolverUtils doesn't delete a running StellarSolver
c3bd4bd40 2022-02-14 Wolfgang Reissenberger State machine for capture control | preparation phase
f60d72d9b 2022-02-14 Salman Naheed        Ekoslive dark library
f103653f4 2022-02-14 Jasem Mutlaq         Disable stellarsolver logging
59f0a1301 2022-02-14 Wolfgang Reissenberger Display of filter name corrected
22e0ec011 2022-02-14 Jasem Mutlaq         More refinement to the polynomial method. Discard bad data points.
d606ffd33 2022-02-14 Jasem Mutlaq         Check target position versus current position every N frames
76e733a3e 2022-02-13 Robert Lancaster     removing setLoadWCS in another spot
80eabfa07 2022-02-12 Jasem Mutlaq         Change default guide exposure to 2 seconds
0fd94a4a5 2022-02-11 Hy Murveit           guider bugfix, firstframe improperly set
dd1c4becb 2022-02-10 Jasem Mutlaq         Allow send module frame to send from dark library
be665df18 2022-02-10 Hy Murveit           Check position after captures
ce83f275f 2022-02-08 Jasem Mutlaq         INDI drivers sync
d9e30a0fe 2022-02-08 Jasem Mutlaq         Remove check for parking time over 12 hours since it is acceptable if within 24 hours
6978d77d9 2022-02-08 Robert Lancaster     Removing WCS Coord disabling line
1ba2464c3 2022-02-07 Hy Murveit           Changes needed for upcoming Indi AstroPhysics driver
e40d833de 2022-02-05 Hy Murveit           guider cleanup and bugfix
b831c904e 2022-02-05 Hy Murveit           Add developer options tab, add option to save internal guider images.
62a551549 2022-01-31 Jasem Mutlaq         Catalog search should not be limited so that we can check for multiple identifiers
9305fe2b2 2022-01-31 Hy Murveit           Analyze: update graphics plot for completed capture or focus if latest is checked
3a778dc16 2022-01-27 Jasem Mutlaq         Increase test timeout
1c8e607e9 2022-01-27 Hy Murveit           Adjust dbus interfaces and paths to allow test_ekos_scheduler_ops tests to...
0515257a7 2022-01-27 Hy Murveit           Min #detections to initialize SEP MultiStar
6a5a96382 2022-01-26 Hy Murveit           add missing signal to analyze for focus restarts
0f2a4c951 2022-01-26 Jasem Mutlaq         Fix wrong arg
55b462887 2022-01-25 Toni Schriber        Standardized dialog for guider 'Control Parameters' &'Other Settings'
35236a51c 2022-01-23 Jasem Mutlaq         Check if regionItem is null
b3114467b 2022-01-23 Jasem Mutlaq         Fix issue in treating calibration frames since we used to only check a single channel whereas we were supposed to check all three
8808d3309 2022-01-23 Jasem Mutlaq         Add else for multiple channels
1efbbc7cc 2022-01-22 Robert Lancaster     Adding translations to Mac prebuild
6dafdc27b 2022-01-21 Jasem Mutlaq         Fix bug where filter is sometimes not set in camera or dustcap drivers unless it is set explicitly by the user by selecting it from the dropdown. No..
003a29faa 2022-01-21 Jasem Mutlaq         Fix issue when saving dark flats with sub-second exposures as we need to update the full prefix if duration was selected
0032701b6 2022-01-21 Jasem Mutlaq         Invalidate download timer to avoid bogus reports
18174ad1c 2022-01-21 Jasem Mutlaq         Reduce threashold to 1000ms
ff1ac9cfe 2022-01-21 Salman Naheed        Add generate dark flats to EkosLive
0ecfd135b 2022-01-20 Jasem Mutlaq         Make it so it is possible to create a 1x1 mosaic for purposes of framing
0f5c633c5 2022-01-20 Jasem Mutlaq         Update sequence prefix for ADU-calculated flat frames since full prefix can...
36e47a522 2022-01-20 Jasem Mutlaq         Set Focus module to the filter of the first light job in the sequence so that...
7c0807ad4 2022-01-19 Jasem Mutlaq         Starting KStars v3.5.8 development cycle
06277101e 2022-01-18 Jasem Mutlaq         INDI drivers sync
2e8345b8f 2022-01-17 Jasem Mutlaq         Improve message when failing to establish connection for remote devices
6f94491d3 2022-01-17 Jasem Mutlaq         Move options before ekoslive


Tuesday, January 18, 2022

KStars v3.5.7 Released

KStars v3.5.7 is released on January 18th for Windows, MacOS, and Linux. This release includes a number of new features and bug fixes.

Mosaic Dragging


This feature is finally implemented in 3.5.7. Many assumed it existed before and were disappointed when they couldn't drag the mosaic panels around for finer adjustments.


Better MacOS support


Robert Lancaster worked vigilantly on improving KStars & INDI support for MacOS. This includes working on all the plumping required to get a daily build going in KDE Binary Farms using KDE's Craft technology so that MacOS users may finally have access to nightly builds.

Flat Darks


Capture Flat Darks with a click of a button. After adding your desired flat frames, simply click the Flat Dark generator icon to add Dark Flats to your sequence queue. When Ekos completes capture of the flat frames, it will use the same exposure time (per filter, if one exists) for the dark flats. 



Please note that for this to work, the flats must be captured in the same session. That is, you cannot partially capture flats, restart Ekos, and then proceed to capture dark flats.

Comets Visibility


Hy Murveit made comets more discoverable in KStars by displaying them on almost all zoom levels. You'll find a lot more comets to learn and discover about in this release.


Internal refactoring


Wolfgang Reissenberger introduced State Machine for Capture Control changes as part of Ekos Road map to separate state machines, command processors, and business logic into their own manageable silos. While this is not exactly a user-facing activity, it remains to be critical for Ekos stability and growth in the future.


Faster Dithering


Hy Murveit introduced a One Pulse Dither option in Ekos guide module with randomly generated pulse. This should reduce the time it takes to dither at the expense of verifying that the guide star moved by the specific number of pixels required. Experiment with this new option and let us know what you think!



More highlights

  • Wolfgang Reissenberger: Bugfix for capture guiding deviation recovery
  • Eric Dejouhanet: Mosaic Tool documentation update
  • Akarsh Simha: Fix bugs involving the reading and writing of user's notes (logs) on objects
  • Wolfgang Reissenberger: Deactivating meridian flip while PAA is running
  • Paweł Pleskaczyński: change guide graph style to line graph
  • Wolfgang Reissenberger: Display FITS viewer only when option is set
  • Jasem Mutlaq: Compressed FITS image with fpack are now properly loaded in KStars when they are sent as buffer
  • Antonio Escriban: Standardized dialog for guider 'Control Parameters' &'Other Settings'
  • Hy Murveit: Display comets at almost all zooms, default names now 1AU.
  • Jasem Mutlaq: Extend properties that can be saved in a sequence file beyond just numbers