Gemini/DAO software supplied by Tim Hardy
Cicada softward from Mount Stromlo & Siding Spring Observatories
The Voodoo program is a java based program written by Scott Streit at SDSU. It does a nice job of running the controllers in a lab testing environment.
Here is the latest revision of the software and documents about it from SDSU. This is the revision level they are calling 1.4. If there is a desire to have earlier versions let me know and I will put them here also. Otherwise, I will just start archiving them from level 1.4 on.
==============================================================================
PCI
==============================================================================
This document contains an index of the files stored in the PCI subdirectories, a program version index, and important installation notes. Directory version numbers are based on the Voodoo version number.
The ver1.4 contains DSP files that have changes made to them that implement several new features and bug fixes in the PCI software. Compared to ver1.3 the major changes in ver1.4 are described below -
* The device driver has ioctl support for setting column and row binning parameters.
* The device driver now performs the necessary data swapping in kernel memory, instead of Voodoo.
* The device driver no longer checks for a reply after sending the image buffer addresses to the PCI board.
* Voodoo now supports several Controller Configuration parameters. See the Programmer's Reference Manual for details and bit descriptions.
* Voodoo parses and checks all textfield values before issuing a command.
* All static variables (that could be made non-static) have be changed to non-static.
* Voodoo Global Setup has been created to save all window size info, all exposure info from the main window, and the last loaded controller setup file. When the global setup is saved, it will restore all the saved info upon the next startup of Voodoo and apply the settings to the hardware.
==============================================================================
PCI File Index
==============================================================================
| Description | File Version 1.4 |
| The Linux version of the PCI device driver. | astropci_linux.tar.gz |
| The Solaris PCI device driver. | astropci_solaris.tar.gz |
| Voodoo image aquisition software. | voodoo.tar.gz |
| PCI board ROM burn program. | PciRomBurn.tar.gz |
| Timing board ROM burn program. | TimRomBurn.tar.gz |
| The programmers manual. | programmers.pdf |
| The Voodoo user's manual. | voodooDoc.pdf |
==============================================================================
Installation Troubleshooting
==============================================================================
*********************
* Device Driver *
*********************
Solaris:
Device driver installation instructions are contained within the bundled tar file. Or, run the Install script bundled with the driver.
Linux:
The Linux version of the PCI device driver performs the same actions as it's Solaris counterpart. The Linux driver has been tested on Redhat 6.2 (kernels 2.2.14-5.0 and 2.2.14-12). As superuser, execute the following to load the module: ./astro_load
*********************
* Voodoo *
*********************
To install Voodoo, become superuser and run the Install script. DO NOT untar the voodoofiles.tar file.
After unpacking voodoo, you should have the following directory structure:
/Voodoo The toplevel directory. /Voodoo/Clib The C function library. /Voodoo/Documents The code documentation. /Voodoo/classes The executable classes. /Voodoo/pics The application images. /Voodoo/src The source code. /packages The classes and source code for abstract windows.
To run voodoo, you must have the following:
1. Java JDK2 installed or a JRE that supports Java2
2. Your library path must point to the /Clib/lib subdirectory of the extracted Voodoo directory structure. For example:
setenv LD_LIBRARY_PATH /export/home/blah/Voodoo/Clib/lib
3. Your CLASSPATH should be set to the /packages directory. For Example:
setenv CLASSPATH /export/home/blah/packages/
If you get an "Unsatisfied Link Error", then your path information is not set correctly. Type "voodoo" to start the program.
Voodoo On Linux:
Voodoo has a known bug on Linux. This may or may not be a JRE problem. The bug: ocasionally Voodoo will not kill the exposure thread when "abort readout" is pushed. The result may be system lockup.
It is important to use a JIT (Just In Time) compiler and JRE on the Linux box or Voodoo will not function properly. We currently use the "Blackdown jdk1.2.2" (jdk-1.2.2-RC4-linux-i386-glibc-2.1.2.sh) compiler/JRE. This compiler/JRE is available at www.java.sun.com. There are also several other JIT compiler/JRE's there.
==============================================================================
PCI DSP C Library
==============================================================================
The DSP C library contains a set of functions used to control the SDSU controller through the PCI interface board. The library is bundled into a ".a". The source is also provided so that the user may make any modifications that they need. The program "mreadout_pci.c" is an example of how to use the functions in the library.
==============================================================================
Getting Started
==============================================================================
Once you have all the files downloaded, extracted, and paths properly set you are ready to rock-n-roll. There is a file called "sample.setup" in the subdirectory /Voodoo. Start Voodoo and open the "Controller Setup" window. Next, "Load" the "sample"setup" file and you will be able to take a sample test exposure. The timing application 3 and utility application 0 produce a stripped greyscale image of the size specified by the "Dimensions". To take the exposure, "Apply" the setting in the "Controller Setup" window, open Saoimage or Ximtool, and select "Display" in the main voodoo window. Finally, push expose.
==============================================================================
Generating New ROMS
==============================================================================
ROMs can be re-programmed while they're installed in the PCI/Timing board by executing a stand-alone program named "PciRomBurn" or "TimRomBurn". The procedure for the PCI and Timing boards are the same, except step 3 does not need to be performed for the Timing board. The procedure is -
1. Execute the script "rom" with a current revision of "pciboot.asm" file to generate the file "pci.rom" to be written to the ROM.
2. Start up the program "PciRomBurn". It will ask for a file name, which the user must be careful to specify as the output file from step 3:
To run the program, type "PciRomBurn" and answer the questions - Proceed (Y/N): Y Permanently Write PCI ROM File (Y/N): Y Enter PCI ROM filename (*.rom): pci.rom Writing ROM File ROM File .... OK addr = ... data = ... Power off machine to load new ROM into DSP ... ROM Burn finished!
3. As the program says in the instructions, you need to turn off the Sun so the new contents of the ROM get loaded into the DSP on power up. Then start up Voodoo.
==============================================================================
ROM Burn
==============================================================================
The program PciRomBurn is used to burn a new program into the PCI EEPROM. The program is contained within an ascii file of form "*.rom", where "*" is typically "pci".
WARNING - This process can be destructive and non-repairable if the original ROM contents are not in hand. To run PciRomBurn:
1. Unpack the program: uncompress PciRomBurn.tar.Z tar xvf PciRomBurn.tar 2. Change to the newly created /ROM directory. 3. Type PciRomBurn and follow the instructions.
The program TimRomBurn is used to burn a new program into the Timing board EEPROM. The program is contained within an ascii file of form "*.rom", where "*" is typically "tim".
WARNING - This process can be destructive and non-repairable if the original ROM contents are not in hand. To run PciRomBurn:
1. Unpack the program: uncompress TimRomBurn.tar.Z tar xvf TimRomBurn.tar 2. Change to the newly created /ROM directory. 3. Type PciRomBurn and follow the instructions.
As soon as I get something from Tim I will put it in here. (first I have to send him email about it though)
For Cicada MSSSO has set up a very nice web page, please go there for any info. Cicada host software. If you have questions about it please contact Peter Young.