Pyxis Software Version 2.10 released May 10, 2007.

Controller board firmware

The ATMega128 AVR micro controller software communicates with the FT245BM USB parallel FIFO chip to provide control of the CCD and telescope peripherals from the PC. The FT245BM chip and software drivers provide a very simple USB interface between most PC platforms (mac, linux and windows) and a custom local 8-bit bus. Data is read from the FT245BM read buffer by pulling the RD# line low; when RD# is high, the data pins are placed in a high-impedance state. When the RXF# line is low, at least 1 unread byte is present in the read buffer. Data is placed into the transmit buffer when the WR line goes low. When the TXE# line is high, the transmit FIFO is full or busy storing the last byte read. The SND/WUP line can be toggled high to force the data in the transmit buffer to be sent to the PC on the next data-in request, regardless of how many bytes remain in the FIFO. The software drivers are also very simple to use, hiding most of the details involved with the USB transactions from the user. The Windows Pyxis drivers receive data in 4096 byte chunks.

On system reset, the ATMega128 MCU clears the receiver buffer on the USB FIFO. The MCU then enters a continuous loop, reading the CCD temperature and displaying the result on the LCD monitor. Simultaneously, the RXF# line on the FT245BM is polled for data present in the receive buffer. When data is present on the receive buffer, the MCU reads the first byte (the "Command" byte) and switches execution based on its value. In this way, up to 255 immediate commands can be programmed. Much of the CodeVisionAVR C-code is self-explanatory, the readability is helped by the use of defines for most port I/O and other MCU hardware specific commands, so that the purpose of most instructions are obvious. Inline assembler is occasionally used to introduce short delays of a few clock cycles.

The firmware on the power supply board is also written using CodeVisionAVR C. The power supply board contains very little code that would need to be modified by other users. In fact, incorrect modification of the code could be downright dangerous as explained in the section describing the power supply. The code works; simply program the supply AVR MCU and forget about it! If the supply (or anything else) doesn't work, you should always assume that you made a mistake in your soldering or that there is a defect in the manufactured board.

Hardware drivers

The FTDI provides royalty free drivers (FTD2XX) for use with their USB chips that greatly simplify interfacing the USB. Drivers are available for several platforms with link libraries precompiled for use with various popular compilers. The only current Pyxis hardware drivers are for Windows and are provided as a DLL (pyxiscom.dll), with link libraries compiled for use with C++ Builder 6.0. Note that this library links in the FTD2XX .lib files compiled for Builder 6.0, so you'll have to recompile the FTD2XX library if you wish to modify the library for use with your own flavour of C. Of course, you are not obliged to use these drivers and could easily modify them for your own needs (the source code is short enough). This being said, the acquisition software provided will serve most purposes, so most won't feel the need to write their own user interface.

User interface: Pyxis Capture

Great effort was expended in creating a user interface that was easy to use. I am constantly modifying the software as I think of features and functionality that enhance the use of the software. Currently the software includes many ways to filter and display the data, some of the features are;

  • Filters: convolution, Gaussian cross-convolution, histogram equalization, local average, median, minimal/maximal (opening/closing), unsharp mask, linear sky-model subtraction, Fourier high-pass/low-pass.
  • Hardware control scripting.
  • Native (.pxi) file format, FITS, Windows BMP and 16-bit gray scale PNG.
  • Hardware diagnostics: horizontal and vertical clock tests, USB bulk read test, display input image as a time sequence (useful for diagnosing time dependent ADC problems).
  • Compute and display image statistics (histogram).
  • Tool for computing the camera photon transfer constant and noise.
  • Composite images: Create up to 5 color channel composites, or LRGB composites. Stack and resample images. Allows rotational shift for registration.
  • Sum and subtract images.
  • Multiple image processing using a flexible file selection "wizard".
  • Cross-sectional display of image intensity.
  • Flexible and intuitive custom palettes using bezier curves.
  • Multiple image windows, multiple file select and open (with application running).
  • Will function adequately on displays down to 600x800 pixels (older laptops).
  • Compatible with all 32-bit Windows versions (550 MHz or better CPU recommended).
  • Auto-guiding with the Pyxis TC-211 camera.
  • Telescope tracking control using simple 4 wire TTL/5VCMOS interface or using the EZPEC, periodic error correcting telescope tracker.

All of the hardware functions implemented up to now (the main imaging camera and most power supply functions) can be controlled from the software.

The main Pyxis Capture window.
The Pyxis composite editor window (does not quite look like this in version 2.10!)
Downloads

Pyxis astronomical image capture and processing application

Version 2.10 (May 2007): Many changes have been made so that the color compositing editor is "actually" usable now. A bloom removal has been added, the layer alignment tools improved and the graphics performance is faster. Fixed some bugs in the image stacking tool and many others.

Executable installation file: Pyxis210.zip (8411 kB) - Uninstall any previously installed versions before installing.

Source for Borland C++ Builder 6.0: Pyxis210_source.zip (4690 kB)

Version 2.00 (May 2006): This version will only work with the version 2.XX ATMEL controller code!

Executable installation file: Pyxis200.zip (7598 kB) - Uninstall any previously installed versions before installing.

Source for Borland C++ Builder 6.0: Pyxis200_source.zip (4224 kB)

Version 1.02 (April 2005): This version will only work with the version 1.XX ATMEL controller code!

Executable installation file: Pyxis102.zip (8772 kB)

Source for Borland C++ Builder 6.0: Pyxis101_source.zip (5801 kB)

Online help for Pyxis image capture application


Firmware for ATMEL micro controllers:

Camera controller firmware source for CodeVision AVR C compiler and compiled Intel hex file for immediate programming of device using generic AVR SPI programmer:

Pyxis_avr200.zip (226 kB) - Suitable for use with Version 2.xx of the capture application (faster readout time)

Pyxis_avr100.zip (203 kB) - Suitable for use with Version 1.xx of the capture application

Power supply firmware source for CodeVision AVR C compiler and compiled Intel hex file for immediate programming of device using generic AVR SPI programmer:

Pyxpow100.zip (40 kB)