;this is a comment #this is also a comment ############# SECTION POSITION ################ ;wintertime UTCADJUST = -3600 ;summertime ;UTCADJUST = -7200 LATITUDE = 48.766667 LONGITUDE = 9.1833333 ############# SECTION SCOPESETTINGS ########### ;limits for the altitude, saving your tube, and or okular. ;set it in degrees. ALTHORIZONTLIMIT = 0.0 ALTZENITLIMIT = 100.0 ;the real size in arcseconds per halfstep ;of your motors. Set it so correctly as valid. AZHALFSTEPSIZE = 1.1294137 ALTHALFSTEPSIZE = 1.1934581 FRHALFSTEPSIZE = 3.0 ;AZHALFSTEPSIZE = 0.5 ;ALTHALFSTEPSIZE = 0.5 ;FRHALFSTEPSIZE = 3.0 ;Default the using of the fieldrotoator is off ;If it is used during guiding, uncomment this ;If you use the monitor, you can switch it off/on ;there. ;FRUSE = ON ;This is for calculating the refraction ;You can switch this off, but then your ;scope is moving to the real alt-koordinates ;and perhaps, - your object will not be shown ;if you near the horizon. ;The temperature should be the current degrees C ;The airpressure in millibars. ;Default is ON with +10 degrees C. amd 1013 millibars. ;You can set this also with your commandline-parameters, ;which override this settings. ;for exmpl: eltel -rf ON/OFF -t +10.0 -p 1013.0 ;In the monitor the refraction you can switch on/off ;if you set it on at startup. ;CALCREFRACTION = OFF TEMPERATURE = +10.0 AIRPRESSURE = 1013.0 ;if guiding is running, and a little correction will ;be done with slow left,right,up,down ( keypad, etc .. ) ;the size of halfsteps for this can be set with this. GUIDEAZCORRECTIONHS = 1.0 GUIDEALTCORRECTIONHS = 1.0 ############# SECTION INTERFACESETTINGS ####### ;setting the interface to teleskope ;default all is no interface ;Interface smc800 with centronics-cable to parallelport ;INTERFACE = PARALLELSMC ;Interface parallelport raw ( for your own constructions ). ;INTERFACE = PARALLELRAW ;next planned interface is a protocoll orientied ;connection to a cpu-board in the same way, as ;the serial interface, but using the parallel port. ;Generally this will be the same interface, as the serial, ;but with a parallel connection. ;- but currently not implemented, so don't use this ;INTERFACE = SERPARPROT ;settings for the parallel-port, if PARALLELSMC, or PARALLELRAW ;or, if implemented for SERPARPROT ;this you must also set if your keypad is using parallelport ;Don't be shy using the parallelinput for keypadinput, toghether ;with your parallel interface. The input, and outputsignals ;are strictly separated. A very useful handling is a keypad ;connected directly to a smc800-card. ;PARALLELPORT = 0x378 ;PARALLELPORT = 0x278 ;PARALLELPORT = 0x3bc ;Interface el31-board with serial connection INTERFACE = SERIAL ###### settings only for the serial interface ##### ;this must be an cpu-board like the el31board, which ;understands the used protocol. ;(see explanations about the serial protocol ) ;the baudrate is fix 19200 ;SERIALPORT = /dev/ttyS0 SERIALPORT = /dev/ttyS1 ;Next is used for the calculation ;if serial cpu-board is used. ;these settings depends on your motors, ;and your speedsettings. ;The best way, to find it out, is ;to measure the time in seconds for ;a 90degree moving ( f.exmpl.) ;An Example for the goto-settings: ;For 90 Degrees the az-drive uses 3 Minutes = 180 seconds. ;90 * 3600 = 324000 arcseconds. ;324000 / 180 = 1800 arcseconds per second ;1800 / AZHALFSTEPSIZE = your value for SERIALAZGOTOHSPERSEC. ;For getting usefull values for this, you can call ;eltel with the commandlineoption -testck ;This starts eltel do some movings, calculates these values, ;and ends. SERIALAZCORRECTIONHSPERSEC = 520.077699 SERIALAZGOTOHSPERSEC = 1809.878466 SERIALALTCORRECTIONHSPERSEC = 506.363027 SERIALALTGOTOHSPERSEC = 1746.581769 ######## END SECTION SERIALSETTINGS ######## ######## SECTION SPEED ###################### ;setting the loopinterval ;for an el31board like cpu-board these are values in the range ( 0- 255) ;for the parallelport a value in microseconds ( 0 - 999999 ) ;(for parallel using, no interrupt ist used, its a timer, which ;splits the complete thread, which handles the three motors. ;The only reason to set this value to 0, if, in case of a very slow ;computer. TIMERINTCTGOTO = 2 TIMERINTCTCORRECTION = 2 ;setting the speeds: ;for SERIAL >cpu-board these are values in the range ( 0 - 255 ) ;a value of 10 means, - all 10 * TIMERINTCT a step will go. ;for the parallelport the same, but value can be in range( 0 - 999999 ) AZGOTOSPEED = 8 ALTGOTOSPEED = 4 FRGOTOSPEED = 4 AZCORRECTIONSPEED = 20 ALTCORRECTIONSPEED = 20 FRCORRECTIONSPEED = 20 ;This is only used for parallel interface, and only ;for guiding. If the aproaching to the needed koordinates ;will take more then one step, we have to wait with the ;frequencie your motor can be handle. ;This should be the max value in Hz of your poorest motor. HSTEPMAXIMUMSPEED = 1000 ;If the interface is set for an serial >cpu-board ;and motors are running, the ALT,AZ used for monitoring, ;are not get directly from board, instead ;calculated by program per seconds. ;The reasion is, that getting the serial ;koordinates from board, during running motors, ;can return inproper values, because serial connection mostly ;is using an interrupt. This can only ;effect during correction, and goto. For saving your own build ;cpu-board for this, we get not the koordinates directly when ;motors are running. The guiding funcs in a completely other way ;then the other movings. Its a approaching to the needed koordinate, ;means getting current board-koors, compares it, makes steps if necessary, ;get koors again ... and so on. ;So the board itself, is running with its own ;correct koordinates. ;Once again: ;Koordinates will be get from board by program, ;for every event, excepting if motors still ;running, but not guiding - then the koordinates are calculated. ;Next operations, which starts the motors ;again, or getting koordinates during not ;running motors, or during guiding gets the koordinates directly ;from the board. ;For a proper calculation, you must set the SERIALXXXXXHSPERSEC, ;the TIMERINTCTXXXX, and the SPEEDS correctly. ############# SECTION KEYPAD ################## ;setting the keypad for the joystickport, or parallelport ;default no keypad is defined ;The joystickport is very usefull for a keypad, but only ;useable if it is not included into a soundcard. ;Perhaps you can test after init sound, if the joystickport ;is available. Use the tool testdefjoystick for that, it must ;return a 0xf0 value if joystickport is reachable. JOYSTICKKEYPAD = ON JOYSTICKPORT = 0x200 ;or setting the keypad for the parallelport ;if this, -you must set PARALLELPORT above. ;It makes no sense to use different parallel ports ;for interface-parallel, and keypad-parallel, because ;interface uses only outputsignals, and keypad the ;separated status bits of port. ;PARALLELKEYPAD = ON ############# SECTION SERVER ################## ;settings for the tcpserver, if used ;default is off - see the headerfile ;defines.h for the eventsettings, when using ;the server for your own programs. ;SERVER = ON ;SERVERTYPE = TCP SERVERTYPE = FIFO ;next two setting are only used, if servertype FIFO is init ;the fifos can be create like following: mkfifo -m 0666 /tmp/eltel_fifo_in SERVERFIFOIN = /tmp/eltel_fifo_in SERVERFIFOOUT = /tmp/eltel_fifo_out ;next three settings are only used, if servertype TCP is init ;SERVERSERVICENAME = eltel ;SERVERENVNAME = ELTELPORT ;SERVERPORT = 23400 ;these are for further nonblocking implementations ;currently are not used. ;SERVERTIMEOUTREAD = 3 ;SERVERTIMEOUTWRITE = 3 ############# SECTION XEPHEM-FIFOS ############ ;these settings are for the xephem-options ;-Teleskopmarker, and -Teleskopcontrol. ;settings for input from xephems-outputfifo ;default is off XEPHEMFIFO = ON ;the fifo where eltel becomes koordinates from ( Telescope Control ) ;set it to nothing, or uncomment, if not used. XEPHEMFIFOIN = /usr/X11R6/lib/xephem/fifos/xephem_loc_fifo ;the fifo where eltel sends koordinates to (Telescope Marker ) ;set it to nothing, or uncomment, if not used. XEPHEMFIFOOUT = /usr/X11R6/lib/xephem/fifos/xephem_in_fifo ;the following is only available if XEPHEMFIFOOUT, and XEPHEMFIFO ;is initiated. ;This means if motors are running the current koordinates will ;be get all XEPHEMFIFOOUTLOOP seconds, and send out to ;the xephem-fifo. ;Set it to a value of 0, or comment it out, if this is not used. ;(The default ). ;if Interface is serial-el31board the current koordinates ;will be the simulated koordinates. ;In monitor this can be switched on/off, if init at startup. ;The default for that is off, even if it is init, you can ;set it to on with monitor, or if using server(tcp/fifo) you ;have to set it on with one of the dependend events. XEPHEMFIFOOUTLOOP = 1 ;this is a very special, but usefull option ;if this is activated the XEPHEMFIFOOUTLOOP is ;switched off automatically, if it is set to on. ;Instead this option a special option will add to the ;KEYPAD - like the following: ;If motor is running ( guiding, correction, goto ) ;any key other then the stop-key will effect a ;getting of the current Az-Alt Koordinates, and send ;it to the xephemoutfifo ( Telesope-marker ). ;In this case you must init the normal operation with ;the keys, and next using of the keys ( not the stop key ) ;sends current koordinates to xephem, till the stop key ;is pressed. ;If no motor is running, the stopkey has the functionality ;to sending koordinates to xephem. ;This handling is mostly more usefully, then the loop. ;In the monitor it can be switch on/off, if keypad is init ;at startup. if the xephemoutloop is active then this will ;be switch off when special is init. ;XEPHEMKEYPADSPECIAL = ON ;be aware, that the input from xephem only funcs, if XEPHEMFIFO is ON, ;and the fifo-input file is set. ;The output from eltel to xephems teleskopmarker is undependent of ;the setting of XEPHEMFIFO. The current koordinates can be send ;with a event to xephem, if the filename for XEPHEMFIFOOUT is set ;correctly, and xephem is running. ;If you use another astronomie-program, instead xephem, it should ;receive the fifo-inputs in following format: ;RA:XX.XXXXXX Dec:XX.XXXXXX Epoch:XXXX.XXX ;( the Ra, and dec-koordinates are send as radians, not degrees, ;and the epoch as full year like 2002.000). ;The program should sending the data like a normal edb-entrie. ;Objectname,type,ra-koordinates,dec-koordinates, whatever else. ;The ra-koodinates in the format XX:XX:XX.XXX ( Hours ) ;and the dec-koordinates XXX:XX:XX.XXX ( degrees ). ;( all values must be komma-separated ). ############# SECTION MONITOR / KEYBOARD ###### ;default is off, ;if this is used, you should not send eltel to the background ;instead call it directly inside a terminal ( xterm funcs properly ). ;so a little monitor will show events, and you can steer your teleskope ;with fast menueoptions. ;You can replace it with your own program, using the FIFO, or TCP - Server. MONITOR = ON ;the path where your objdatabases are located. MONITOROBJDBPATH = /usr/X11/lib/xephem/edb ############# SECTION EXFIFO ###### ;this is for using an external program, which ;will steer additionally the correctness of position. ;elcam, or elcamw are such a programs. ;Such programs must put following paramters to a fifo-out ;The base for this is the using of elcam using strategy "spot". ;all other strategies of elcam do not output the directions to fifo. ok\n this means all is ok, the same as eltel receives nothing from this fifo normally this is used after the next declared parameter, to show eltel that the position now is correct. It is only necessary once a time, after the following event. 0:0:0:0\n means left:right:up:down where left,right,up,down menans, if one, or more of them is 1, one step with size EXFIFOAZSTEP ( for left,right ), and/or size EXFIFOALTSTEPS of correction will be done, or ( if guiding active ), added/substrated to/from current guiding position. The only accepted values for left,right,up,down ist 0, or 1. Also the syntax, and the order of the bytes must set exactly. ;default exfifo is off #EXFIFO = ON #EXFIFOFILE = /tmp/elcam_fifoout ;this is aequevalent to GUIDEAZCORRECTIONHS,GUIDEALTCORRECTIONHS #EXFIFOAZSTEPS = 1.0 #EXFIFOALTSTEPS = 1.0 ;this means left is used for right, right for left, ;up for down, and down for up. ;for using elcam you must set this. #EXFIFOINVERT = ON ############# SECTION ENCODERS ###### ;Note: ;Please don't misunderstand the using of the ;name encoders here. Eltel does not use this signalproviding ;stuff for additional positioning. ;It uses this instead for correction of current position, if ;you have a mount with frictional drives, and this mount is ;not 100 percent correctly. Most of such self-builded systems, ;sometimes lose halfsteps during running motors, because the ;sprockets are sliding sometimes. ;For this cases it makes sense to add a little correctionsystem, ;with two little signalpushers, like commercial encoders. ; ;You cannot use this signalpusher for manual-positioning, ;because eltel handles this signals together with every ;stop of motors. ;For the PARALLELSMC-interface the encoders must be connected ;in the same way as for the PARALLELRAW-interface. The SMC-card ;makes this valid. So you have to connect some cables directly ;to the centronicsport of the SMC-card. ( Normally this is done on ;card's backside ). ;The handling of PARALLELSMC, and PARALLERAW is completely identical. ;You have three variants of connecting encoders: ;1.) Your encoders are part of the cpu-board ( SERIAL ), and transfers ;its signals with the positionstream of the board, over the serial ;interface. For the serial interface, only the serial encoders connected ;to the cpu-board are valid. You cannot use joystick, or parallelencoders ;for this interface. ;2.) Your encoders are connected to the parallel-input signals directly ;to the parallelport, or to the smc-card. ;If you have only one parallelport, these signals are no more useable ;for a parallel-keypad, - but you can use the JOYSTICKKEYPAD-option for it, ;3.) Your encoders are connected to the joystickport, which then no more ;useable for JOYSTICKKEYPAD, if you have one port for joysticks. ;In this case you can use the parallel input-signals for a keypad ( PARALLELKEYPAD ). ;Default the use of encoders are off, ;you must switch it on, by setting one of this. SERIALENCODER = ON ;PARALLELENCODER = ON ;JOYSTICKENCODER = ON ;if you use PARALLELENCODER, set the portaddress of your used parallel-port. ;if you use JOYSTICKENCODER, set the portaddress of your used joystickport. ;But be sure, you have switched on PARALLELENCODER, or JOYSTICKENCODER before ;setting this. ;ENCODERPORT = 0x278 ;The number of signals for a complete turn of 360 degrees, ;and for the altitude-axis the number of a turn with 90 degrees. ;With this eltel calculates the number of halfsteps per pulse. ;Be carefull with the building of your encoders. ;If you have a segmentdisc with a subdivision of 120, eltel ;not use only the signals from one black segment to the next black ;segment, instead using every signalchange. eltel avoids a encoderdisk ;with two exactly half-positioned reflexcopplers. ;So if your subdivision is 120, for eltel it is a subdivision of 480, ;because every change ( from the white, to black, and black to white ) ;is used as signal. The direction, and its changes is handled directly. ;So be also sure, that your encoders have no blind hole, when changing ;direction.( Better you not use gearwheels for your additional transmission ratio.) ENCODERAZSIGNALS360 = 4000.0 ENCODERALTSIGNALS90 = 1000.0 ;For flickering signals, we have add a tolerance. ;The current position will be checked in the range between ;current halfsteps / steps per pulse - ENCODERTOLERANCE, ;and current halfsteps / steps per pulse + ENCODERTOLERANCE ;Have a look, that eltel not use absolute values for encoders, instead ;really testing in this range. ;Its correct as correct the values for ENCODERAZSIGNAL... ;and the tolerances are set. ;If you do not have flickering signals, set this to 0.0 ENCODERAZTOLERANCE = 0.1 ENCODERALTTOLERANCE = 0.1 ;Note ;Be sure your encoders are produce not too much signals in a specific time, ;otherwise it cannot be handled exactly. A Pulsenumber of less then 4096 ;per 360 degreess of the complete azimuth-axis is a good choice for all ;types of encoders. With this you have a correctness of 316 arcseconds, ;which is quiet enough for correction of sliding frictional drives. ;(If not, than you should have some problems with your mount. ; ;If you have problems for calculating the right values for ENCODERAZSIGNALS360, ;ENCODERALTSIGNALS90, and the tolerances, set option DEBUG on for first tests. ;Then move without any directionchange to the right, as long as you mean ;your encoder have made 20 pulses, and then do the same upwards with the alt-axis. ;After ending the program, you became a little statistic depending on ;20 measured values between every pulsechange, and some results for this ;values. ;The comparsion of encodersignals to done halfsteps you can switch on/off ;in monitor from eltel, or with a mouseclick in xeltel. ( encoder on/off ). ;This Userswitch is only available, if you have set one of the interfaces, ;SERIALENCODER,PARALLELENCODER,JOYSTICKENCODER. If one off these is set, ;the getting of encodersignals is on, otherwise off. ;If one of these interfaces is set, the updating of signals is done in every case, ;also if you switch the comparison off during running software. ;If DEBUG is ON, default the comparison is off, otherwise on. ############# SPECIAL SETTINGS ################# ;Normally after startup of software, the motors move some steps to ;the right, and some upwards. You can set this off, by uncommenting ;this option with the value ON, or 1. ;Instead this you can also use the commandline-parameter -skip ;SKIPSTARTUPMOTOR = ON ;this is only usefully, for showing the used guide-counts per seconds ;inside the monitor, and the real halfsteps, and for getting usefull ;values for the encodersettings, if it is used. ;Don't use it for normal operations. ;But it is usefull for seeing normal halfsteps, instead koordinates, ;for calculating the halfstepsizes. ;For example, - after starting all the scope is set automatically to ;koordinates 00:00:00 - 00:00:00. ;Set a marker to current az-drive and make a fast move right. ;If the scope have fullfilled a complete turnaraound, and the marker ;is reached, - stop all, get koordinates, and read the azhs-value. ;360 degreeas * 3600 = 1296000 arcseconds ;1296000 / azhs = should be a useful value for the azhalfstepsize. ;for altitude you can find out the value with a 90 degrees moving. ;For testing this, you should set the stepsizes to a small value, ;because otherwise the az-turn reaches the 360 degrees to early. ;If you have set one of the encoderinterfaces, and DEBUG is ON, ;at startup the comparison between encodervalues, and halfsteps ;is off. You can switch this on/off by monitor ( encoder on/off). DEBUG = ON ;################################################### ;Connector for raw-parallel using ;(All signals are low-active, Eltel sets all to high ;if startet. ;You have to invert it normally for your driving ;circuit ( using 7404 f.exmpl. ) ;DB25 Connector ;Pin 2 D0 = winding A_1 Az-Drive ;Pin 3 D1 = winding B_1 " ;Pin 4 D2 = winding A_2 " ;Pin 5 D3 = winding B_2 " ;Pin 6 D4 = winding A_1 Alt-Drive ;Pin 7 D5 = winding B_1 " ;Pin 8 D6 = winding A_2 " ;Pin 9 D7 = winding B_2 " ;Pin 1 C0 = winding A_1 Fr-Drive ;Pin 14 C1 = winding B_1 " ;Pin 16 C2 = winding A_2 " ;Pin 17 C3 = winding B_2 " ;Pins 18-25 Ground ;Centronics Connector ;(Differs only for C2,C3, and GND) ;Pin 2 D0 = winding A_1 Az-Drive ;Pin 3 D1 = winding B_1 " ;Pin 4 D2 = winding A_2 " ;Pin 5 D3 = winding B_2 " ;Pin 6 D4 = winding A_1 Alt-Drive ;Pin 7 D5 = winding B_1 " ;Pin 8 D6 = winding A_2 " ;Pin 9 D7 = winding B_2 " ;Pin 1 C0 = winding A_1 Fr-Drive ;Pin 14 C1 = winding B_1 " ;Pin 31 C2 = winding A_2 " ;Pin 36 C3 = winding B_2 " ;Pins 19-30 Ground ################ SPECIAL NOTE FOR THE PARALLEL-PORT ######################### ;if you have problems with not properly running motors, ( and i know you will ;have this problems ). Start the program as root with a higher nice value. ;So, for example: sudo nice -20 eltel ;Otherwise a simple change of your window, or another action will disturb ;the port-handling thread, which ends in breaks of sending stepvalues out. ;That is the reason, why i prefer an external cpu-board by my onw. ;The parallel-port of a pc is normally not useable for steering of steppers, ;because interrupts, other programms etc ... will not allow a real-time ;thread handling. ;But Unix provides the "nearly" real-time using of threads/processes, setting ;the priority of it. But this is not without dangerous, because mostly program ;will start as root, and for root is allowd all. The worst case for setting ;the priority in a real-timerunning thread is a complete HANG-UP of the ;complete system. - But i'm working on this. ;Currently we can reach a useable result with setting the nice-value ;for this program as root. ;The named problem will not disturb the correctness of the position during ;guiding, or moving the scope, - instead ending in a unround motorrun ;during fast movings. ;For guiding we use a continuous aproaching to the needed koordinates, ;so, for this, we don't have this problem. ( if you not paint pictures ;beneath you guide your scope ). ;Generally the problem is as higher, as slower the computer. So do not use an ;old PC with less than 133 MHz. This will perhaps only destroys your nerves. ############################################################################## ;Connections for the Keypad at joystickport, or parallelport see explanation ;"How to build the keypad" ###############################################################################