summaryrefslogtreecommitdiffstats
path: root/doc/kstars/indi.docbook
blob: 4d26b856a6d1e4d12193cdbe8bdacd0b2a19f66f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
<chapter id="indi">
<title>Astronomical Device Control with <acronym>INDI</acronym></title>
<indexterm><primary>INDI Control</primary>
<secondary>Overview</secondary>
</indexterm>

<para>KStars provides an interface to configure and control astronomical instruments via
the <acronym><link linkend="what-is-indi">INDI</link></acronym> protocol.</para>

<para>The <acronym>INDI</acronym> protocol supports a variety of astronomical instruments
such as CCD cameras and focusers. Currently, KStars supports the following
devices:</para>

<table id="device-table" pgwide="1" frame="all">
<title>Supported Telescopes</title>
<tgroup cols="3" colsep="1" rowsep="1">
<thead>
<row>
<entry>Telescope</entry>
<entry>Device driver</entry>
<entry>Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>LX200 8"-12" Classic</entry>
<entry>lx200classic</entry>
<entry>1.0</entry>
</row>
<row>
<entry>Autostar based telescopes</entry>
<entry>lx200autostar</entry>
<entry>1.0</entry>
</row>
<row>
<entry>LX200 GPS 8"-16"</entry>
<entry>lx200gps</entry>
<entry>1.0</entry>
</row>
<row>
<entry>LX200 Classic 16"</entry>
<entry>lx200_16</entry>
<entry>1.0</entry>
</row>
<row>
<entry>NexStar GPS, CGE, AS-GT</entry>
<entry>celestrongps</entry>
<entry>0.9</entry>
</row>
<row>
<entry>New GT, NexStar 5i/8i</entry>
<entry>celestrongps</entry>
<entry>0.9</entry>
</row>
<row>
<entry>Takahashi Temma</entry>
<entry>temma</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Astro-Physics AP</entry>
<entry>apmount</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Astro-Electronic FS-2</entry>
<entry>lx200basic</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Argo Navis</entry>
<entry>lx200basic</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Losmandy Gemini</entry>
<entry>lx200basic</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Mel Bartels Controllers</entry>
<entry>lx200basic</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Sky Commander</entry>
<entry>skycommander</entry>
<entry>0.1</entry>
</row>
</tbody>
</tgroup>
</table>
<table id="focuser-table" pgwide="1" frame="all">
<title>Supported Focusers</title>
<tgroup cols="3" colsep="1" rowsep="1">
<thead>
<row>
<entry>Focuser</entry>
<entry>Device driver</entry>
<entry>Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>Meade LX200GPS Microfocuser</entry>
<entry>lx200gps</entry>
<entry>0.9</entry>
</row>
<row>
<entry>Meade 1206 Primary Mirror Focuser</entry>
<entry>lx200generic</entry>
<entry>0.9</entry>
</row>
<row>
<entry>JMI NGF Series</entry>
<entry>lx200generic</entry>
<entry>0.1</entry>
</row>
<row>
<entry>JMI MOTOFOCUS</entry>
<entry>lx200generic</entry>
<entry>0.1</entry>
</row>
</tbody>
</tgroup>
</table>

<table id="ccd-table" pgwide="1" frame="all">
<title>Supported CCDs</title>
<tgroup cols="3" colsep="1" rowsep="1">
<thead>
<row>
<entry>CCD</entry>
<entry>Device driver</entry>
<entry>Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>Finger Lakes Instruments CCDs</entry>
<entry>fliccd</entry>
<entry>1.0</entry>
</row>
<row>
<entry>Santa Barbara Instrument CCDs</entry>
<entry>sbigccd</entry>
<entry>0.1</entry>
</row>
<row>
<entry>Apogee CCDs</entry>
<entry>apogee_ppi, apogee_pci, apogee_isa, apogee_usb</entry>
<entry>0.1</entry>
</row>
</tbody>
</tgroup>
</table>

<table id="filter-table" pgwide="1" frame="all">
  <title>Supported Filter Wheels</title>
  <tgroup cols="3" colsep="1" rowsep="1">
    <thead>
      <row>
	<entry>Filter Wheel</entry>
	<entry>Device driver</entry>
	<entry>Version</entry>
      </row>
    </thead>
    <tbody>
      <row>
	<entry>FLI Filter Wheels</entry>
	<entry>fliwheel</entry>
	<entry>0.9</entry>
      </row>
    </tbody>
  </tgroup>
  </table>
  
<table id="video-table" pgwide="1" frame="all">
<title>Supported Webcams</title>
<tgroup cols="3" colsep="1" rowsep="1">
<thead>
<row>
<entry>Webcam</entry>
<entry>Device driver</entry>
<entry>Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>Any Video4Linux compatible device</entry>
<entry>v4ldriver</entry>
<entry>1.0</entry>
</row>
<row>
<entry>Philips webcam</entry>
<entry>v4lphilips</entry>
<entry>1.0</entry>
</row>
<row>
<entry>Meade Lunar Planetary Imager</entry>
<entry>meade_lpi</entry>
<entry>0.1</entry>
</row>

</tbody>
</tgroup>
</table>

<sect1 id="indi-kstars-setup">
<title>INDI Setup</title>
<indexterm><primary>INDI</primary>
<secondary>Setup</secondary>
</indexterm>
<para>
KStars can control local and remote devices seamlessly via the <link linkend="what-is-indi">INDI</link> server/client architecture. INDI devices may be run in three different modes:</para>

<orderedlist>
<listitem><para>Local: The local mode is the most common and is used to control local device (&ie; a device attached to your machine).</para></listitem>
<listitem><para>Server: The server mode establishes an INDI server for a particular device and waits for connections from remote clients. You cannot operate server devices, you can only start and shut them down.</para></listitem>
<listitem><para>Client: The client mode is used to connect to remote INDI servers running INDI devices. You can control remote devices seamlessly like local devices.</para></listitem>
</orderedlist>

<para>You can run local device, establish INDI servers, and connect to remote clients from the <guimenuitem>Device Manager</guimenuitem> in the <guimenu>Devices</guimenu> menu.</para>

<para>Here is a screenshot of the <guilabel>Device Manager</guilabel>
window:</para>

<screenshot>
<screeninfo>Running device drivers</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="devicemanager.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Start device drivers</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>You can run devices by browsing the device tree, selecting a specific device, and then clicking on the <guibutton>Run Service button</guibutton>. You can select the operation mode, either local or server as defined above.</para>

<para>To control remove devices, refer to the <link linkend="indi-remote-control">remote device control</link> section.</para>
</sect1>

<sect1 id="indi-telescope-setup">
<title>Telescope Setup</title>
<indexterm><primary>INDI</primary>
<secondary>Setup</secondary>
</indexterm>

<para>Most telescopes are equipped with <hardware>RS232</hardware> interface
for remote control. Connect the RS232 jack in your telescope to your
computer's <hardware>Serial/USB</hardware> port. Traditionally, the RS232
connects to the serial port of your computer, but since many new laptops
abandoned the serial port in favor of <hardware>USB/FireWire</hardware>
ports, you might need to obtain a Serial to USB adaptor to use with new
laptops.</para>

<para>After connecting your telescope to the Serial/USB port, turn your
telescope on. It is <emphasis>highly</emphasis> recommended that you
download and install the latest firmware for your telescope
controller.</para>

<para>The telescope needs to be aligned before it can be used properly.
Align your telescope (one or two stars alignment) as illustrated in your
telescope manual.</para>

<para>&kstars; needs to verify time and location settings before connecting to the telescope. This insures proper tracking and synchronization between the telescope and &kstars;. The following steps will enable you to connect to a device that is connected to your computer. To connect and control remote devices, please refer to <link linkend="indi-remote-control">remote device control</link> section.</para>

<para>You can use the Telescope Setup Wizard and it will verify all the required information in the process. It can automatically scan ports for attached telescopes. You can run the wizard by selecting <guimenuitem>Telescope Setup Wizard</guimenuitem> from the <guimenu>Devices</guimenu> menu.</para>

<para>Alternatively, you can connect to a local telescope by performing the following
steps:</para>

<orderedlist>
<listitem><para>Set your geographical location. Open the <guilabel>Geographic...</guilabel> window by selecting
<guimenuitem>Set Geographic Location...</guimenuitem> from the
<guimenu>Settings</guimenu> menu, or by pressing the <guiicon>Globe</guiicon> icon in the toolbar, or by pressing <keycombo
action="simul">&Ctrl;<keycap>g</keycap></keycombo>.</para>
</listitem>
<listitem><para>Set your local time and date. You can change to any time or
date by selecting <guimenuitem>Set Time...</guimenuitem> from the <guimenu>Time</guimenu> menu, or by
pressing the <guiicon>time</guiicon> icon in the toolbar. The <guilabel>Set Time</guilabel> window uses a standard &kde; Date Picker widget, coupled with three spinboxes for setting the hours, minutes and seconds. If you ever need to reset the clock back to the current time, just select <guimenuitem>Set Time to Now</guimenuitem> from the <guimenu>Time</guimenu> menu.</para>
</listitem>
<listitem>
<para>Click on the <guimenu>Devices</guimenu> menu and select the
<guimenuitem>Device Manager</guimenuitem>.</para>
</listitem>
<listitem>
<para>Under the <guilabel>Device</guilabel> column, select your telescope model.</para>
</listitem>
<listitem>
<para> <mousebutton>Right</mousebutton>-click on the device and select
<guilabel>Run Service</guilabel>.</para>
</listitem>
<listitem>
<para>Click <guibutton>Ok</guibutton> to close the Device Manager
Dialog.</para>
</listitem>
</orderedlist>

<note id="geo-time-note">
<title>Frequent Settings</title>
<para>You do not need to set the geographic location and time every time you connect to a telescope. Only adjust the settings as needed.</para></note>

<para>You are now ready to use the device features, &kstars; conveniently provides two interchangeable GUI interfaces for controlling telescopes:</para>

<orderedlist>
<title>Controlling your telescope</title>
<listitem>
<para>
<guilabel>Sky map Control</guilabel>: For each device you run in the <guilabel>Device Manager</guilabel>, a corresponding entry will show up in popup menu that allows you to control the properties of the device. You can
issue commands like <command>Slew, Sync,</command> and
<command>Track</command> directly from the sky map.
</para>
<para>Here is a screenshot of the popup menu with an active LX200 Classic
device:</para>
<screenshot>
<screeninfo>Controlling devices from sky map</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="skymapdevice.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
</listitem>

<listitem>
<para>
<guilabel>INDI Control Panel</guilabel>: The panel offers the user with all the
features supported by a device.
</para>

<para>The panel is divided into three main sections:</para>
<itemizedlist>
<listitem>
<para>
<guilabel>Device tabs</guilabel>: Each additional active device occupies a
tab in the INDI panel. Multiple devices can run simultaneously without
affecting the operation of other devices.
</para>
</listitem>
<listitem>
<para>
<guilabel>Property view</guilabel>: Properties are the key element in INDI
architecture. Each device defines a set of properties to communicate with
the client. The current position of the telescope is an example of a
property. Semantically similar properties are usually contained in logical
blocks or groupings.
</para>
</listitem>
<listitem>
<para>
<guilabel>Log viewers</guilabel>: Devices report their status and acknowledge commands by sending INDI messages. Each device has its own log view, and all devices share one generic log viewer. A device usually sends messages to its device driver only, but a device is permitted to send a generic message when appropriate.
</para>
</listitem>
</itemizedlist>
<screenshot>
<screeninfo>INDI Control Panel</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="indicontrolpanel.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>
</listitem>
</orderedlist>

<para>You are not restricted on using one interface over another as they can be both used simultaneously. Actions from the <guilabel>Sky map</guilabel> are automatically reflected in the <guilabel>INDI Control Panel</guilabel>
and vice versa.</para>

<para>To connect to your telescope, you can either select <guimenuitem>Connect</guimenuitem> from your device popup menu or
alternatively, you can press <guibutton>Connect</guibutton> under your device tab in the <guilabel>INDI Control Panel</guilabel>.</para>

<important><para>By default, KStars will try to connect to the <constant>/dev/ttyS0</constant>
port. To change the connection port, select <guilabel>INDI Control Panel</guilabel> from the <guimenu>Devices</guimenu> menu and change the port under your device tab.</para></important>

<para>&kstars; automatically updates the telescope's longitude, latitude, and
time based on current settings in &kstars;. You can enable/disable these
updates from <guimenuitem>Configure INDI</guimenuitem> dialog under the
<guimenu>Devices</guimenu> menu.
</para>

<para>If &kstars; communicates successfully with the telescope, it will retrieve the current <abbrev>RA</abbrev> and <abbrev>DEC</abbrev> from the telescope and will display a crosshair on the sky map indicating the telescope position.</para>

<note id="indi-sync">
<title>Synchronizing your telescope</title>
<para>If you aligned your telescope and the last alignment star was, for example, Vega, then the crosshair should be centered around Vega. If the crosshair was off target, then you can <mousebutton>right</mousebutton>-click Vega from the sky map and select
<command>Sync</command> from your telescope menu. This action will instruct the telescope to synchronize its internal coordinates to match those of Vega, and the telescope's crosshair should now be centered around Vega.
</para>
</note>

<para>That is it: your telescope is ready to explore the heavens.</para>

<warning>
<title>WARNING</title>
<para>Never use the telescope to look at the sun. Looking at the sun might cause irreversible damage to your eyes and as well as your equipment.</para>
</warning>
</sect1>

<sect1 id="indi-other-setup">
<title>CCD and Video-Capture Setup</title>
<indexterm><primary>CCD Video Control</primary>
<secondary>Setup</secondary>
</indexterm>

<para>KStars supports the following imaging devices:</para>
<itemizedlist>
  <listitem><para>Finger Lakes instruments CCDs</para></listitem>
  <listitem><para>Apogee CCDs: Parallel, ISA, PCI, and USB modes are supported. You need to install <ulink url="http://indi.sf.net/apogee_kernel.tar.gz">Apogee kernel drivers</ulink> for your specific mode (for USB mode, you only need libusb).</para></listitem>
  <listitem><para><ulink url="http://www.exploits.org/v4l/">Video4Linux</ulink> compatible devices. Philips webcam extended features are supported as well.</para></listitem>
</itemizedlist>

<para>You can run CCD and Video Capture devices from the <guimenuitem>Device Manager</guimenuitem> in the <guimenu>Devices</guimenu> menu. Like all INDI devices, some of the device controls will be accessible from the skymap. The device can be controlled fully from the <guimenuitem>INDI Control Panel.</guimenuitem></para>

<para>The standard format for image capture is FITS. Once an image is captured and downloaded, it will be automatically displayed in the KStars <link linkend="tool-fitsviewer">FITS Viewer</link>. To capture a sequence of images, use the <guimenuitem>Capture Image Sequence</guimenuitem> tool from the <guimenu>Devices</guimenu> menu. This tool is inactive until you establish a connection to an image device.</para>

<important>
<para>The FLICCD driver requires root privileges in order to operate properly. Note that running the driver as root is considered a security risk</para>
</important>
</sect1>

<sect1 id="indi-capture">
<title>Capture Image Sequence</title>
<indexterm><primary>Capture</primary>
<secondary>Image</secondary>
</indexterm>

<para>The Capture Image Sequence tool can be used to aquire images from cameras and CCDs in interactive and batch modes. Furthermore, you can select which filter, if any, you want to use for your images. The capture tool remains disabled until you establish a connection to an imaging device.</para> 

<screenshot>
<screeninfo>Capture Image Sequence</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="indicapture.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>

<para>The above screenshot depicts a sample capture session. The tool provides the following options:</para>
<itemizedlist>
  <listitem><para>Camera/CCD</para>
     <itemizedlist>
         <listitem><para><option>Device:</option> The desired imaging device.</para></listitem>
         <listitem><para><option>Prefix:</option> The image prefix which will be prepended to each captured filename.</para></listitem>
         <listitem><para><option>Exposure:</option> The number of seconds to expose each frame.</para></listitem>
         <listitem><para><option>Count:</option> The number of images to aquire.</para></listitem>
         <listitem><para><option>Delay:</option> The delay in seconds between consecutive images.</para></listitem>
         <listitem><para><option>ISO 8601 time stamp:</option> Append ISO 8601 time stamp to the filename. (e.g. image_01_20050427T09:48:05).</para></listitem>
     </itemizedlist>
    </listitem>
   <listitem><para>Filter</para>
      <itemizedlist>
          <listitem><para><option>Device:</option> The desired filter device.</para></listitem>
          <listitem><para><option>Filter:</option> The desired filter slot. You can assign color values to slot numbers using the <link linkend="indi-configure">Configure INDI</link> window (e.g. Slot #1 = Red, Slot #2 = Blue..etc).</para></listitem>          
       </itemizedlist>
   </listitem>
</itemizedlist>

<para>After you fill in the desired options, you can begin the capture procedure by pressing the <guibutton>Start</guibutton> button. You may cancel at any time using the <guibutton>Stop</guibutton> button. All captured images will be saved to the default FITS directory which can be specified in the <link linkend="indi-configure">Configure INDI</link> window.</para>

<para>If you have more complex capturing requirements and conditions to fulfil, it is recommended to create a script to meet your specific needs using the <link linkend="tool-scriptbuilder">Script Builder</link> tool in the <guimenu>Tools</guimenu> menu.</para>
</sect1>

<sect1 id="indi-configure">
<title>Configure INDI</title>
<indexterm><primary>Configure</primary>
<secondary>INDI</secondary>
</indexterm>

<para>The Configure INDI window allows you to modify <emphasis>Client side</emphasis> INDI specific options. The window is divided into four main categories: General, Automatic device updates, Display, and Filter Wheel:</para>

 <itemizedlist>
   <listitem><para>General</para>
      <itemizedlist>
         <listitem><para><option>Default FITS directory:</option> Specify the directory where all captured FITS images will be saved to. If no directory is specified, images will be stored in $HOME.</para></listitem>
         <listitem><para><option>Automatic Display of FITS upon capture:</option> When checked, KStars will display captured FITS in KStars <link linkend="tool-fitsviewer">FITS Viewer</link> tool. If you use the <link linkend="indi-capture">Capture Image Sequence</link> tool, all captured images will be saved to disk regardless of this option.</para></listitem>
         <listitem><para><option>Telescope port:</option> The default telescope port. When you connect to a local or remote telescope service, KStars will automatically fill the telescope's device port with the specified default port.</para></listitem>
         <listitem><para><option>Video port:</option> The default video port. When you connect to a local or remote video service, KStars will automatically fill the webcam's device port with the specified default port.</para></listitem>
      </itemizedlist>
   </listitem>
   <listitem><para>Automatic device updates</para>
    <itemizedlist>
       <listitem><para><option>Time:</option> Update the telescope's date and time, if supported, upon connection.</para></listitem>
       <listitem><para><option>Geographic location:</option> Update the telescope's geographical location information (current longitude and latitude), if supported, upon connection.</para></listitem>
    </itemizedlist>
   </listitem>
   <listitem><para>Display</para>
    <itemizedlist>
     <listitem><para><option>Device target crosshair:</option> When checked, KStars displays the telescope's target crosshair on the sky map. The crosshair is displayed upon a successful connection to the telescope and its location is updated periodically. The telescope's name is displayed next to the crosshair. KStars displays one crosshair per each connected telescope. To change the color of the telescope's crosshair, open the <link linkend="viewops">Configure KStars</link> window. Select the <guilabel>Colors</guilabel> tab, and then change the color of the <emphasis>Target Indicator</emphasis> item to the desired color.</para></listitem>
     <listitem><para><option>INDI messages in status bar:</option> When checked, KStars displays INDI status messages in the KStars status bar.</para></listitem>
    </itemizedlist>
   </listitem>
  <listitem><para>Filter Wheel: Assign color codes to the filter wheel slots (e.g. Slot #0 Red, Slot #1 Blue..etc). You can assign color codes for up to 10 filter slots (0 to 9). To assign a color code, select a slot number from the drop down combo box, and then type the corresponding color code in the edit field. Repeat the process for all desired slots and then press OK.</para>
  </listitem>
  </itemizedlist>

</sect1>

<sect1 id="indi-concepts">
<title>INDI Concepts</title>
<indexterm><primary>Telescope Control</primary>
<secondary>Concepts</secondary>
</indexterm>

<para>
The main key concept in INDI is that devices have the ability to describe themselves. This is accomplished by using XML to describe a generic hierarchy that can represent both canonical and non-canonical devices. In INDI, all <emphasis>devices</emphasis> may contain one or more <emphasis>properties</emphasis>. Any <emphasis>property</emphasis> may contain one or more <emphasis>elements</emphasis>. There are four types of INDI properties:</para>
<itemizedlist>
<listitem><para>Text property.</para></listitem>
<listitem><para>Number property.</para></listitem>
<listitem><para>Switch property (Represented in GUI by buttons and checkboxes).</para></listitem>
<listitem><para>Light property (Represented in GUI by colored LEDs).</para></listitem>
</itemizedlist>

<para>For example, all INDI devices share the CONNECTION standard switch <emphasis>property</emphasis>. The CONNECTION property has two elements: CONNECT and DISCONNECT switches. KStars parses the generic XML description of properties and builds a GUI representation suitable for direct human interaction.</para>

<para>The INDI control panel offers many device properties not accessible from the sky map. The properties offered differ from one device to another. Nevertheless, all properties share common features that constrains how they are displayed and used:</para>

<itemizedlist>
<listitem>
<para>
Permission: All properties can either be read-only, write-only, or read and
write enabled. An example of a read-write property is the telescope's Right
Ascension. You can enter a new Right Ascension and the telescope, based on
current settings, will either slew or sync to the new input. Furthermore,
when the telescope slews, its Right Ascension gets updated and sent back to
the client.</para>
</listitem>
<listitem>
<para>State: Prefixed to each property is a state indicator (round LED).
Each property has a state and an associated color code:</para>
<table frame="top"><title>INDI State color code</title>
<tgroup cols="3" colsep="1" rowsep="1">
<thead>
<row>
<entry>State</entry>
<entry>Color</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Idle</entry>
<entry>Gray</entry>
<entry>Device is performing no action with respect to this property</entry>
</row>
<row>
<entry>Ok</entry>
<entry>Green</entry>
<entry>Last operation performed on this property was successful and
active</entry>
</row>
<row>
<entry>Busy</entry>
<entry>Yellow</entry>
<entry>The property is performing an action</entry>
</row>
<row>
<entry>Alert</entry>
<entry>Red</entry>
<entry>The property is in critical condition and needs immediate
attention</entry>
	</row>
	</tbody>
</tgroup>
</table>

<para>The device driver updates the property state in real-time when
necessary. For example, if the telescope is in the process of slewing to a
target, then the RA/DEC properties will be signaled as
<guilabel>Busy</guilabel>. When the slew process is completed successfully,
the properties will be signaled as
<guilabel>Ok</guilabel>.</para>
</listitem>
<listitem>
<para>
Context: Numerical properties can accept and process numbers in two formats:
decimal and sexagesimal. The sexagesimal format is convenient when expressing
time or equatorial/geographical coordinates. You can use any format at your
convenience. For example, all the following numbers are equal:</para>
<itemizedlist>
<listitem><para>-156.40</para></listitem>
<listitem><para>-156:24:00</para></listitem>
<listitem><para>-156:24</para></listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
Time: The standard time for all INDI-related communications is Universal Time UTC specified as YYYY-MM-DDTHH:MM:SS in accord with ISO 8601. &kstars; communicates the correct UTC time with device drivers automatically. You can enable/disable automatic time updates from the <guimenuitem>Configure INDI</guimenuitem> dialog under the <guimenu>Devices</guimenu> menu.
</para>
</listitem>
</itemizedlist>
</sect1>

<sect1 id="indi-remote-control">
<title>Remote Device Control</title>
<indexterm><primary>Telescope Control</primary>
<secondary>Remote Devices</secondary>
</indexterm>

<para>KStars provides a simple yet powerful layer for remote device control.
A detailed description of the layer is described in the INDI <ulink
url="http://www.clearskyinstitute.com/INDI/INDI.pdf">white
paper</ulink>.</para>

<para>You need to configure both the server and client machines for remote
control:</para>

<orderedlist>
<listitem>
<para>Server: To prepare a device for remote control, follow the same steps in the <link linkend="indi-kstars-setup">local/server</link> setup. When you start a device service in the <guimenu>Device Manager</guimenu>, a port number is displayed under the <guilabel>Listening port</guilabel> column. In addition to the port number, you also need the hostname or IP address of your server.
</para>

</listitem>
<listitem>
<para>Client: Select the <guimenuitem>Device Manager</guimenuitem> from the <guimenu>Device</guimenu> menu and click on the <guilabel>Client</guilabel> tab. You can add, modify, or delete hosts under the <guilabel>Client</guilabel> tab. Add a host by clicking on the <guibutton>Add</guibutton> button. Enter the hostname/IP address of the server in the <guilabel>Host</guilabel> field, and enter the port number obtained from the <emphasis>server</emphasis> machine in step 1.
</para>
</listitem>
</orderedlist>

<screenshot>
<screeninfo>INDI Client</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="indiclient.png" format="PNG"/>
</imageobject>
</mediaobject>
</screenshot>

<para>After you add a host, right click on the host to
<guimenuitem>Connect</guimenuitem> or <guimenuitem>Disconnect</guimenuitem>.
If a connection is established, you can control the telescope from the
<guilabel>Sky map</guilabel> or <guilabel>INDI Control Panel</guilabel>
exactly as described in the <link linkend="indi-kstars-setup">local/server</link> section. It is as easy at that.
</para>

<sect2 id="indi-commandline">
<title>Running an INDI server from the command line</title>
<para>While &kstars; allows you to easily deploy an INDI server; you can launch an INDI server from the command line.
</para>

<para>
Since INDI is an independent backend component, you can run an INDI server on a host without KStars. INDI can be compiled separately to run on remote hosts. Furthermore, device drivers log messages to <constant>stderr</constant> and that can be helpful in a debugging situation.  The syntax for INDI server is
as following:</para>

<para>$ <command>indiserver</command> [options] [<filename>driver</filename>
...]</para>

<para>Options:</para>
<para> -p p  : alternate IP port, default 7624</para>
<para> -r n  : max restart attempts, default 2</para>
<para> -v    : more verbose to stderr</para>

<para>For example, if you want to start an INDI server running an LX200 GPS
driver and listening to connections on port 8000, you would run the
following command:</para>

<para>$ <command>indiserver</command> -p 8000 <filename>lx200gps</filename></para>
</sect2>

<sect2 id="indi-secure-remote">
<title>Secure Remote Operation</title>

<para>Suppose we want to run an indiserver with INDI drivers on a remote host,
<constant>remote_host</constant>, and connect them to &kstars; running on the local machine.</para>

<para>From the local machine log onto the remote host, <constant>remote_host</constant>, by typing:</para>

<para>$ <command>ssh</command> -L <varname>local_port</varname>:<constant>remote_host</constant>:<varname>remote_port</varname></para>

<para>This binds the <varname>local_port</varname> on the local machine to the <varname>remote_port</varname> on the <constant>remote_host</constant>. After logging in, run indiserver on the remote host:</para>

<para>$ <command>indiserver</command> -p <varname>remote_port</varname> [<filename>driver</filename>...]</para>

<para>Back on the local machine, start &kstars; then open the <guimenuitem>Device Manager</guimenuitem> and add a host under the <guilabel>Client</guilabel> tab. The host should be the local host (usually 127.0.0.1) and the port number should be the <varname>local_port</varname> used in the steps above. <mousebutton>Right</mousebutton>-click on the host and select <guimenuitem>Connect</guimenuitem> from the popup menu. &kstars; will connect to the remote INDI server securely. The host information will be saved for future sessions.</para>
</sect2>
</sect1>

<sect1 id="indi-faq">
<title>INDI Frequently Asked Questions</title>
<indexterm><primary>Telescope Control</primary>
<secondary><acronym>FAQ</acronym></secondary>
</indexterm>

<qandaset defaultlabel="qanda">
<qandaentry>
<question id="what-is-indi">
<para>What is INDI?</para>
</question>
<answer>
<para> <acronym>INDI</acronym> is the <ulink url="http://indi.sourceforge.net"> Instrument-Neutral-Distributed-Interface</ulink> control protocol developed by <author><firstname>Elwood</firstname><surname>C.
Downey</surname></author> of <ulink url="http://www.clearskyinstitute.com/">ClearSky Institute</ulink>. &kstars; employs device drivers that are compatible with the INDI protocol. INDI has many advantages including loose coupling between hardware devices and
software drivers. Clients that use the device drivers (like &kstars;) are completely unaware of the device capabilities. In run time, &kstars; communicates with the device drivers and builds a completely dynamical GUI based on services provided by the device. Therefore, new device drivers can be written or updated and KStars can take full advantage of them without any changes on the client side.</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Do you plan to support more devices?
</para>
</question>
<answer>
<para>
Yes. We plan to support major CCD cameras and focusers and extend support
for more telescopes. If you would like INDI to support a particular device,
please send an email to <email>indi-devel@lists.sourceforge.net</email>
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
What operations does KStars provide to control the telescope?
</para>
</question>
<answer>
<para>
It depends on the particular telescope you're running, but the minimum three operations are <command>Slew</command>, <command>Track</command>, and <command>Sync</command>, which you can issue directly from the sky map. Your telescope must be aligned for those operations to perform correctly. Some telescopes offer you more operations like site management, slew modes, focusing, parking, and more. You can access the telescopes extended features from the INDI Control Panel in the Devices Menu.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
What's the difference between <command>Slew</command>, <command>Track</command>, and <command>Sync</command> exactly?
</para>
</question>
<answer>
<para>
The command <command>Slew</command> orders the telescope to move to a particular target, and once the telescope reaches its target, the telescope keeps tracking that target at a <emphasis>sidereal</emphasis> rate (i.e. the rate at which stars move across the sky). This works well for stars, Messier objects, and about everything outside our solar system. But solar system objects travel differently across the sky and so the telescope must <command>Track</command> the objects as they move.
</para>
<para>
Therefore, you need to issue a track command if you want to track an object with non-sidereal motion. On the other hand, <command>Sync</command> is used to synchronize the telescope's internal coordinates with that of an object you select.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Can I control my telescope remotely?
</para>
</question>
<answer>
<para>
Yes. You can start an INDI server on the machine connected to your telescope and the server will listen to requests from &kstars; clients. Once you're connected, you can control your telescope directly from the sky map. This procedure is described in detail in the <link linkend="indi-remote-control">Remote device control</link> section.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
When I try to <guibutton>Connect</guibutton>, &kstars; reports that the
telescope is not connected to the serial/USB port. What can I do?
</para>
</question>
<answer>
<para>This message is triggered when &kstars; cannot communicate with the telescope. Here are few things you can do:</para>

   <orderedlist>
   <listitem>
<para>Check that you have both reading and writing permission for the port you are trying to connect to.</para>
   </listitem>
   <listitem>
<para>Check the connection cable, make sure it is in good condition and test it with other applications.</para>
   </listitem>
   <listitem>
<para>Check your telescope power, make sure the power is on and that the telescope is getting enough power.</para>
   </listitem>
   <listitem>
<para>Set the correct port in the <guilabel>INDI Control Panel</guilabel>
under the <guimenu>Devices</guimenu> menu. The default device is
<constant>/dev/ttyS0</constant></para>
   </listitem>
   <listitem>
   <para>Restart &kstars; and retry again.</para>
   </listitem>
   </orderedlist>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>&kstars; reports that the telescope is online and ready, but I cannot find the telescope's crosshair, where is it?</para>
</question>
<answer>
<para>&kstars; retrieves the telescopes RA and DEC coordinates upon connection. If your alignment was performed correctly, then you should see the crosshair around your target in the Sky Map. However, the RA and DEC coordinates provided by the telescope may be incorrect (even below the horizon) and you need to <link linkend="indi-sync">Sync</link> your telescope to your current target. You can use the right-click menu to center and track the telescope crosshair in the sky map.</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>The telescope is moving erratically or not moving at all. What can I do?</para>
</question>
<answer>
<para>This behavior is mostly due to incorrect settings, please verify the following check list:</para>
<orderedlist>
<listitem>
<para>Is the telescope aligned?</para>
</listitem>
<listitem>
<para>Is the telescope alignment mode correct? Use <guilabel>INDI Control Panel</guilabel> to check and change these settings (<constant>Alt/Az,Polar, Land</constant>).</para>
</listitem>
<listitem>
<para>Are the telescope's time and date settings correct?</para>
</listitem>
<listitem>
<para>Are the telescope's longitude and latitude settings correct?</para>
</listitem>
<listitem>
<para>Is the telescope's UTC offset correct?</para>
</listitem>
<listitem>
<para>Are the telescope's RA and DEC axis locked firmly?</para>
</listitem>
<listitem>
<para>Is the telescope's N/S switch (when applicable) setup correctly for your hemisphere?</para>
</listitem>
<listitem>
<para>Is the cable between the telescope and computer in good condition?</para>
</listitem>
</orderedlist>

<para>If you think all settings are correct but the telescope still moves erratically or not at all, then please send a report to
<email>kstars-devel@kde.org</email></para>
</answer>
</qandaentry>
</qandaset>
</sect1>
</chapter>