<sect2 id="ekos-guide">
    <title>Guide</title>
    <indexterm>
        <primary>Tools</primary>
        <secondary>Ekos</secondary>
        <tertiary>Guide</tertiary>
    </indexterm>    
    <screenshot>
        <screeninfo>
            Ekos Guide Module
        </screeninfo>
        <mediaobject>
            <imageobject>
                <imagedata fileref="ekos_guide.png" format="PNG"/>
            </imageobject>
            <textobject>
                <phrase>Ekos Guide Module</phrase>
            </textobject>
        </mediaobject>
    </screenshot>
    <sect3 id="guide-Introduction">
        <title>Introduction</title>
        <para>
            Ekos Guide Module enables autoguiding capability using either the powerful built-in guider, or at your option, external guiding via <ulink url="http://openphdguiding.org/">PHD2</ulink> or <ulink url="https://sourceforge.net/projects/linguider/">lin_guider</ulink>. Using the internal guiding, guider CCD frames are captured and sent to Ekos for analysis. Depending on the deviations of the guide star from its lock position, guiding pulses corrections are sent to your mount <guilabel>Via</guilabel> any device that supports ST4 ports. Alternatively, you may send the corrections to your mount <emphasis>directly</emphasis>, if supported by the mount driver. Most of the GUI options in the Guide Module are well documented so just hover your mouse over an item and a tooltip will popup with helpful information.
        </para>
        <para>
            To perform guiding, you need to select a Guider CCD in <link linkend="ekos-profile-wizard">Ekos Profile Setup</link>. The telescope aperture and focal length must be set in the telescope driver. If the Guider CCD is attached to a separate Guide Scope, you must also set the Guide Scope's <guilabel>Focal Length</guilabel> and <guilabel>Aperture</guilabel>. You can set these values under the <guilabel>Options</guilabel> tab of the <link linkend="indi-telescope-setup">telescope driver</link> or from the Mount module. Autoguiding is a two-step process: Calibration &amp; Guiding.
        </para>
        <mediaobject>
            <videoobject>
                <videodata contentdepth="315" contentwidth="560" fileref="https://www.youtube.com/embed/aza2fGIF7YE"/>
            </videoobject>
            <caption>
                <para>
                    <phrase>Guiding introduction</phrase>
                </para>
            </caption>
        </mediaobject>
        <para>
            During the two processes, you must set the following:
        </para>
        <itemizedlist>
            <listitem>
                <para>
                    <guilabel>Guider</guilabel>: Select the Guider CCD.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Via</guilabel>: Selects which device receives the autoguiding correction pulses from Ekos. Usually, guider CCDs have an ST4 port. If you are using the guider's ST4 to autoguide your telescope, set the guider driver in the <guilabel>Via</guilabel> combo box. The guider CCD will receive the correction pulses from Ekos and will relay them to the mount via the ST4 port. Alternatively, some telescopes support pulse commands and you can select the telescope to be a receiver of the Ekos correction pulses.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Exposure</guilabel>: CCD Exposure in seconds.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Binning</guilabel>: CCD Binning.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Box</guilabel>: Size of the box enclosing the guide star. Select a suitable size that is neither too large or too small for the selected star.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Effects</guilabel>: Specify filter to be applied to the image to enhance it.
                </para>
            </listitem>
        </itemizedlist>
    </sect3>
    
    <sect3 id="guide-dark-frames">
        <title>Dark Frames</title>
        <para>
            Dark frames are <emphasis>immensely</emphasis> helpful in reducing noises in your guide frames. It is highly recommended to take dark frames before you begin and calibration or guiding procedure. To take a dark frame, check the <guilabel>Dark</guilabel> checkbox and then click <guibutton>Capture</guibutton>. For the first time this is performed, Ekos will ask you about your camera shutter. If your camera does not have a shutter, then Ekos will warn you anytime you take a dark frame to cover your camera/telescope before proceeding with the capture. On the other hand, if the camera already includes a shutter, then Ekos will directly proceed with taking the dark frame. All dark frames are automatically saved to Ekos Dark Frame Library. By default, the Dark Library keeps reusing dark frames for 30 days after which it will capture new dark frames. This value is configurable and can be adjusted in <link linkend="ekos">Ekos settings</link> in the &kstars; settings dialog.
        </para>
        <screenshot>
            <screeninfo>
                Ekos Dark frames library
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="dark_library.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Ekos Dark frames library</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
        <para>
            It is recommended to take dark frames covering several binning and exposure values so that they may be reused transparently by Ekos whenever needed.
        </para>
    </sect3>
    
    <sect3 id="guide-calibration">
        <title>Calibration</title>
        
        <screenshot>
            <screeninfo>
                Calibration Settings
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="guide_calibration_settings.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Calibration Settings</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
        <para>
            In the calibration phase, you need to capture an image, select a guide star, and click <guibutton>Guide</guibutton> to begin the calibration process. If calibration was already completed successfully before, then the autoguiding process shall begin immediately, otherwise, it would start the calibration process. If <guilabel>Auto Star</guilabel> is checked, then you are only required to click <guibutton>Capture</guibutton> and Ekos will automatically select the best-fit guide star in the image and continues the calibration process automatically. If <guilabel>Auto Star</guilabel> is disabled, Ekos will try to automatically highlight the best guide star in the field. You need to confirm or change the selection before you can start the calibration process. The calibration options are:
        </para>
        <itemizedlist>
            <listitem>
                <para>
                    <guilabel>Pulse</guilabel>: The duration of pulses in milliseconds to be sent to the mount. This value should be large enough to cause a noticeable movement in the guide star. If you increase the value and you do not notice any movement of the guide star, then this suggests possible mount issues such as jamming or connection issues via the ST4 cable.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Two axis</guilabel>: Check if you want the calibration process makes calibration in both RA &amp; DEC. If unchecked, the calibration is only performed in RA.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Auto Star</guilabel>: If checked, Ekos will attempt to select the best guide star in the frame and begins the calibration process automatically.
                </para>
            </listitem>
        </itemizedlist>
        <para>
            The reticle position is the guide star position selected by you (or by the auto selection) in the captured guider image. You should select a star that is not close to the edge. If the image is not clear, you may select different <guilabel>Effects</guilabel> to enhance it.
        </para>
        <para>
            Ekos begins the calibration process by sending pulses to move the mount in RA and DEC. If the calibration process fails due to short drift, try increasing the pulse duration. To clear calibration, click the trash bin icon next to the <guibutton>Guide</guibutton> button.
        </para>
        <warning>
            <para>
                Calibration can fail for a variety of reasons. To improve the chances of success, try the tips below.
            </para>
        </warning>
        <itemizedlist>
            <listitem>
                <para>
                    <guilabel>Better Polar Alignment</guilabel>: This is critical to the success of any astrophotography session. Perform a quick polar alignment with a polar scope (if available) or by using Ekos <link linkend="ekos-align-polaralignment">Polar Alignment procedure</link> in the <guilabel>Align</guilabel> module.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>Set binning to 2x2</guilabel>: Binning improves SNR and is often very important to the success of the calibration and guiding procedures.
                </para>
            </listitem>
            <listitem>
                <para>
                    Prefer to use ST4 cable between guide-camera and mount over using mount pulse commands.
                </para>
            </listitem>
            <listitem>
                <para>
                    Select different filter (&eg; High contrast) and see if that makes a difference to bring down the noise.
                </para>
            </listitem>
            <listitem>
                <para>
                    Smaller Square Size.
                </para>
            </listitem>
            <listitem>
                <para>
                    Take dark frames to reduce noise.
                </para>
            </listitem>
            <listitem>
                <para>
                    Play with DEC Proportional Gain or disable DEC control completely and see the difference.
                </para>
            </listitem>
            <listitem>
                <para>
                    Leave algorithm to the default value (<guimenuitem>Smart</guimenuitem>)
                </para>
            </listitem>
        </itemizedlist>
    </sect3>
    
    <sect3 id="guide-guiding">
        <title>Guiding</title>
        
        <screenshot>
            <screeninfo>
                Guide Settings
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="guide_guide_settings.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Guide Settings</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
        <para>
            Once the calibration process is completed successfully, the guiding shall begin automatically hereafter. The guiding performance is displayed in the <guilabel>Drift Graphics</guilabel> region where <guilabel>Green</guilabel> reflects deviations in RA and <guilabel>Blue</guilabel> deviations in DEC. The colors of the RA/DE lines can be changed in <link linkend="colors">&kstars; color scheme</link> in &kstars; settings dialog. The vertical axis denotes the deviation in arcsecs from the guide star central position and the horizontal axis denotes time. You can hover over the line to get the exact deviation at this particular point in time. Furthermore, you can also zoom and drag/pan the graph to inspect a specific region of the graph.
        </para>
        <para>
            Ekos can utilize multiple algorithms to determine the center of mass of the guide star. By default, the <emphasis>smart</emphasis> algorithm is suited best for most situation. The <emphasis>fast</emphasis> algorithm is based on HFR calculations. You can try switching guiding algorithms if Ekos cannot keep of the guide star within the guiding square properly.
        </para>
        <para>
            The info region displays information on the telescope &amp; FOV, in addition to the deviations from the guide star along with the correction pulses sent to the mount. The RMS value for each axis is displayed along with the total RMS value in arcsecs. The internal guider employs <ulink url="https://en.wikipedia.org/wiki/PID_controller">PID controller</ulink> to correct the mount tracking. Currently, the <emphasis>only</emphasis> the proportional and integral gains are utilized within the algorithm, so adjusting it should affect the length of the generated pulses sent to the mount in milliseconds.
        </para>
        <para>
            To enable automatic dithering between frames, make sure to check the <guilabel>Dither</guilabel> checkbox. By default, Ekos should dither (&ie; move) the guiding box by up to 3 pixels after each frame captured in <link linkend="ekos-capture">Ekos Capture Module</link>. The motion duration and direction are randomized. Since the guiding performance can oscillate immediately after dithering, you can set the appropriate <guilabel>Settle</guilabel> duration to wait after dither is complete before resuming the capture process. In rare cases where the dithering process can get stuck in an endless loop, set the appropriate <guilabel>Timeout</guilabel> to abort the process. But even if dithering fails, you can select whether this failure should terminate the autoguiding process or not. Toggle <guilabel>Abort Autoguide on failure</guilabel> to select the desired behavior.
        </para>
        <para>
            Non-guide dithering is also supported. This is useful when no guide camera is available or when performing short exposures. In this case, the mount can be commanded to dither in a random direction for up to the pulse specified in the <guilabel>Non-Guide Dither Pulse</guilabel> option.
        </para>
        <para>
            Ekos supports multiple guiding methods: Internal, PHD2, and LinGuider. You need to select the desired guider in your Ekos equipment profile:
        </para>
        <itemizedlist>
            <listitem>
                <para>
                    <guilabel>Internal Guider</guilabel>: Use Ekos internal guider. This is the default and recommended option.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>PHD2</guilabel>: Use PHD2 as the external guider. If selected, specify the host and port of the PHD2. Leave to default values if Ekos and PHD2 are running on the same machine.
                </para>
            </listitem>
            <listitem>
                <para>
                    <guilabel>LinGuider</guilabel>: Use LinGuider as the external guider. If selected, specify the host and port of the LinGuider. Leave to default values if Ekos and LinGuider are running on the same machine.
                </para>
            </listitem>
        </itemizedlist>
        <screenshot>
            <screeninfo>
                Guiding Direction Control
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="ekos_profile_guider_select.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Guiding Direction Control</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
    </sect3>
    
    <sect3 id="guide-direction-control">
        <title>Guiding Direction Control</title>
        <para>
            You can fine-tune the guiding performance in the Control Section. The autoguide process works like a <ulink url="https://en.wikipedia.org/wiki/PID_controller">PID controller</ulink> when sending correction commands to the mount. You can alter the Proportional and Integral gains to improve the guiding performance if necessary. By default, guiding corrective pulses are sent to both mount axis in all directions: positive and negative. You can fine-tune control by selecting which axis shall receive corrective guiding pulses and within each axis, you can indicate which direction <guilabel>(Positive) +</guilabel> or <guilabel>Negative (-)</guilabel> receives the guiding pulses. For example, for the Declination axis, the <guilabel>+</guilabel> direction is North and <guilabel>-</guilabel> is South.
        </para>
    </sect3>
    
    <sect3 id="guide-guiding-rate">
        <title>Guiding Rate</title>
        <para>
            Each mount has a particular guiding rate in (x15"/sec) and usually ranges from 0.1x, to 1.0x with 0.5x being a common value used by many mounts. The default guiding rate is 0.5x sidereal, which is equivalent to a proportional gain of 133.33. Therefore, set the guiding rate value to whatever value used by your mount, and Ekos shall display the <emphasis>recommended</emphasis> proportional gain value that you may set in the proportional gain field under the <guilabel>Control Parameters</guilabel>. Setting this value <emphasis>does not</emphasis> change your mount guiding rate! You must change your mount guiding rate either via the <link linkend="indi-telescope-setup">INDI driver</link>, if supported, or via the hand controller.
        </para>
    </sect3>
    
    <sect3 id="guide-drift-graphics">
        <title>Drift Graphics</title>
        
        <screenshot>
            <screeninfo>
                Drift Graphics
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="guide_drift_graphics.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Drift Graphics</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
        <para>
            The drift graphics is a very useful tool to monitor the guiding performance. It is a 2D plot of guiding <emphasis>deviations</emphasis> and <emphasis>corrections</emphasis>. By default, only the guiding deviations in RA and DE are displayed. The horizontal axis is the time in seconds since the autoguiding process was started while the vertical axis plots the guiding drift/deviation in arcsecs for each axis. Guiding corrections (pulses) can also be plotted in the same graph and you can enable them by checking the <guilabel>Corr</guilabel> checkbox below each Axis. The corrections are plotted as shaded areas in the background with the same color as that of the axis.
        </para>
        <para>
            You can pan and zoom the plot, and when hovering the mouse over the graph, a tooltip is displayed containing information about this specific point in time. It contains the guiding drift and any corrections made, in addition to the local time, this event was recorded. A vertical slider to the right of the image can be used to adjust the height of the secondary Y-axis for pulses corrections.</para>
        <para>
            The <guilabel>Trace</guilabel> horizontal slider at the bottom can be used to scroll through the guide history. Alternatively, you can click the <guilabel>Max</guilabel> checkbox to lock the graph onto the latest point so that the drift graphics autoscrolls. The buttons to the right of the slider are used for autoscaling the graphs, exporting the guide data to a CSV file, clearing all the guide data, and for scaling the target in the <guilabel>Drift Plot</guilabel>. Furthermore, the guide graph includes a label to indicate when a dither occurred so the user knows guiding was not bad at those points.
        </para>
        <para>
            The colors of each axis can be customized in <link linkend="colors">&kstars; Settings color scheme</link>.
        </para>
    </sect3>
    
    <sect3 id="guide-drift-plot">
        <title>Drift Plot</title>
        <para>
            A bulls-eye scatter plot can be used to gauge the <emphasis>accuracy</emphasis> of the overall guiding performance. It is composed of three concentric rings of varying radii with the central green ring having a default radius of 2 arcsecs. The last RMS value is plotted as <inlinemediaobject><imageobject><imagedata fileref="add-circle.png" format="PNG"/></imageobject></inlinemediaobject> with its color reflecting which concentric ring it falls within. You can change the radius of the innermost green circle by adjusting the drift plot accuracy.
        </para>
    </sect3>
    
    <sect3 id="guide-phd2-support">
        <title>PHD2 Support</title>
        <para>
            You can opt to select external PHD2 application to perform guiding instead of the built-in guider.
        </para>
        <screenshot>
            <screeninfo>
                Ekos Guide PHD2 settings
            </screeninfo>
            <mediaobject>
                <imageobject>
                    <imagedata fileref="ekos_guide_phd2.png" format="PNG"/>
                </imageobject>
                <textobject>
                    <phrase>Ekos Guide PHD2 settings</phrase>
                </textobject>
            </mediaobject>
        </screenshot>
        
        <para>
            If PHD2 is selected, the <guibutton>Connect</guibutton> and <guibutton>Disconnect</guibutton> buttons are enabled to allow you to establish a connection with the PHD2 server. You can control PHD2 exposure and DEC guide settings. When clicking <guibutton>Guide</guibutton>, PHD2 should perform all the required actions to start the guiding process. PHD2 <emphasis role="bold">must</emphasis> be started and configured <emphasis>before</emphasis> Ekos.
        </para>
        <para>
            After launching PHD2, select your INDI equipment and set their options. From Ekos, connect to PHD2 by clicking the <guibutton>Connect</guibutton> button. On startup, Ekos will attempt to automatically connect to PHD2. Once the connection is established, you may begin the guiding immediately by click on the <guibutton>Guide</guibutton> button. PHD2 shall perform calibration if necessary. If dithering is selected, PHD2 shall be commanded to dither given the offset pixels indicated and once guiding is settled and stable, the capture process in Ekos shall resume.
        </para>
        <note>
            <para>
                Ekos saves a CSV guide log data that can be useful for analysis of the mount's performance under <filename>~/.local/share/kstars/guide_log.txt</filename>. This log is only available when using the built-in guider.
            </para>
        </note>
    </sect3>
</sect2>
