Elwood Charles Downey
Last updated May 2009
Systems or Software Technical Lead for advanced scientific or embedded projects.
Major Strengths and Experiences:
6 years writing SOWs; contracting officer - technical representative; proposal evaluation; project integration, coordination and oversight
Principle Application Domains
20 years Astronomy control systems; 8 years Medical Imaging; 2 years Avionics; 2 years antenna and RF design.
6 years teaching classes on advanced UNIX, C, Java, sh, X Window System and Motif
20 years shared memory, DMA, ethernet, ISDN, RS232/485, TCP/IP sockets, UDP, RPC, ssh, HTTP, fiber optics
Graphics & Image Processing
15 years custom hardware and software, algorithms and applications, 3D modeling, voxels
Graphical User Interfaces
10 years X Window System, Motif, Qt, Java Swing, tk, design and implementation
Chief Software Engineer
12 years capturing systems requirements, leading design, implementation and deployment
Real-Time Embedded Control
12 years event-driven, embedded, motion control, drivers, anti-jerk, Nucleus, µC/OS, PSOS, stand-alone C
UNIX and C
30 years applications, drivers, kernel work; PDP11, Vax, x86, dual core, MC680x0, PPC; Linux, Solaris, Mac OS X
20 years structured, rapid-prototyping, object-oriented
20 years controlling telescopes, CCD cameras; photometry, astrometry, ephemerides calculations.
30 years C, Perl, HTML, XML, Java (J2SE and J2ME), postscript, tcl/tk, C++
2 years designing and testing antennas, from LF to microwave; NEC numerical modeling; numerous ham radio antennas.
EOS Technologies, Tucson, AZ; March 2009 - present
Senior Member of Technical Staff. Responsible for systems overview, testing and detailed software design and implementation for 2m-class telescopes and high performance defensive weapon gimbals.
New Mexico Institute of Mining and Technology, Socorro NM; January 2004 – November 2008
Project Engineer and Chief Software architect for Magdalena Ridge Observatory. Completely responsible for shepherding a new astronomical observatory from initial funding start to full operation.
As Project Engineer:
Wrote Statement of Work for telescope. Served as technical lead on contract evaluation committee. Served as Contracting Officer/Technical Representative for $4.7M telescope contract. Directed technical design reviews, factory acceptance testing and installation.
Wrote Statement of Work for main observatory building and pier. Worked closely with architects during design phase. Evaluated candidate construction contractors. Oversaw and participated in all technical aspects of construction which was completed successfully on time and in budget.
Wrote Statement of Work for 12m dome. Evaluated proposals and served as technical lead on evaluation committee. Directed all technical aspects during design reviews, acceptance testing, construction and installation which was completed successfully on time and in budget.
Responsible for all electrical and mechanical systems including emergency generator and UPS; power budgeting; lightning protection strategy; snow removal techniques; security systems; mirror cleaning strategy.
As Chief Software Architect:
Designed and lead implementation of complete observatory control hardware and software system to achieve convenient real-time operation and automated remote operation of entire facility within a secure multiuser scenario. System provides for real-time remote GUI control, scripted operation andqueued observing.
All device control is using the INDI XML protocol. Remote controllable equipment includes telescope (gimbal, focus/tip/tilt, Nasmyth flip mirror, mirror cover, pneumatic mirror support); dome (rotation, shutter, exhaust vents and fans); weather station; humidity sensors and heaters for dewing control; custom dual filter wheel; two precision tilt meters at the top and bottom of the pier; several webcams; and two CCD cameras. Automatic safety features include closing when weather conditions are out of range; dewing control; and sun avoidance.
Also responsible for networking design, installation and administration; system and user documentation; website design and content.
National Radio Astronomy Observatory, Socorro NM; September 2003 - December 2003
Software engineer for Extended Very Large Array, EVLA. Lead redesign of software framework within the Module Interface Board (MIB), a common platform used by NRAO for connecting all RF and control apparatus onto the VLA fiber LAN. System used Nucleus RTOS. Result was a standardized architecture for adding devices and assigning control and monitor points making it much easier for the MIB to support many different kinds of analog and digital devices. Also changed to a flexible XML-based wire protocol allowing MIB to be configured remotely, communicate to browser clients and report all alarm conditions in a uniform manner.
McDonald Observatory, University of Texas, Austin, TX, Dec 2002 - May 2003, then transferred to Fort Davis TX May 2003 - August 2003
Research Engineer IV. Responsible for software development and maintenance for the 9.2m Hobby-Eberly Telescope consisting of 91 mirror segments. Primary task was to design and implement a new automated mirror support control and GUI system. Computing environment was Linux, C++ and Qt. Hardware includes 273 Diamond Motion linear actuators and several PMAC motion controllers. The result greatly improved usability, overall reliability and achieved an 8x reduction in elapsed time to affect a new alignment solution for all 91 mirrors.
Clear Sky Institute, Cedar Rapids, IA; August 1993 - present
This is my consulting company begun in 1993 and incorporated in 1997. Some dates overlap (such is the life of a consultant). Also working on XEphem, a rich, scientific-grade, interactive astronomy program for UNIX platforms in use world-wide at thousands of sites, including leading observatories. Also designed and promoting INDI, an open XML-based Instrument-Neutral Distributed Interface protocol for remote instrument control.
University of Barcelona, Barcelona Spain. May 2007 - present
Writing control and operations software for upgrade to Baker-Nunn camera on new alt-az mount. Real-time control in C/linux for telescope drive motors and encoders; focus motor; CCD camera; CCD chiller; roof motors; weather station; UPS; temperature probes; and mirror cover. Consistent compact network protocol (INDI) allows thin Java GUIs and scripts to control all subsystems by multiple users from local and remote connections. Second phase will include fully automatic scheduled operations.
Ajile Systems, Cedar Rapids, IA; May - Jul 2001, Apr 2002
Wrote Java J2ME "Micro Edition" ethernet performance benchmarks for Ajile's aJ100, a microprocessor which directly executes JVM byte codes. Wrote substitute network layer so boards could be transparently debugged remotely. Remote Procedure Call mechanism marshaled to/from a small, simple and fast XML format.
Mt. Stromlo and Siding Spring Observatory, Australia, June 2000 - June 2001
Worked remotely in support of a drift-scan imaging technique. This application leaves the CCD camera shutter open for an indefinite period of time (hours) while the telescope is left stationary. The CCD image is clocked out one row at time at sidereal rate, resulting in one long image of uninterrupted sky coverage.
Torus Precision Optics, Iowa City, IA. June 1996 - Mar 2001
Torus, now Optical Mechanics, manufactures optical components and astronomical telescopes. I provided in-depth software consulting services for their telescope control system (and see below for U of Iowa). Also designed and produced a fully programmable motion controller board with encoder input, step&direction output, 8 A/D input and 16 general purpose I/O lines. At the heart is a Motorola HC12 running an interpretor that allows the host to download C-like scripts defining an arbitrary encoder path and any desired logic functions for real-time motion and control. Motion algorithm uses cubic spline interpolation to update motor/encoder path tracking at 30 Hz. Up to 32 such boards can be networked for synchronized multiple axis applications or to a host for TCP/IP and UNIX pseudo-tty interoperability. A photo of the board is featured at telescopecontrol.com.
National Institute of Standards and Technology, Gaithersburg, MD; Jul 1998 - April 2000
Adapted astronomy image display and analysis program for testing new Computed Tomography X-Ray scanner techniques.
The Old Farmer's Almanac, online edition, 1999
Provided code that forms the basis of the sun and moon times on their home page.
University of Iowa, Department of Physics and Astronomy, Iowa City IA; Aug 1993 – Dec 1997
In charge of design and implementation of the software for the research-quality Robotic Telescope Facility available for remote operation via the Internet. Automated features include remote scheduling, image correction and calibration, astrometry, photometry and image comparison. Uses UNIX, X Window System, Motif, several custom hardware interfaces and device drivers, TCP/IP. The Web site is built using Perl scripts and HTML. A second generation larger telescope, Iowa Robotic Observatory, went on-line in September 1997 in southeastern Arizona. I was again in charge of all software. This telescope is Alt-Az and incorporates adaptive tracking and image rotation. A fiber-fed spectrometer is planned.
In 1997 my consulting company, Clear Sky Institute, refined this research effort into a full-featured well-documented field-proven commercial product which I named the Observatory Control and Astronomical Analysis System, OCAAS. Operating licenses were sold to several organizations until Nov 1999 when total ownership was sold to Optical Mechanics (formerly Torus Technologies) who renamed it Talon. Another article appears here.
University of Michigan, Ann Arbor MI. 1997
In support of ROTSE, the Gamma-Ray Burst detection program, I provided fully functional Linux drivers for the full line of Apogee CCD cameras.
Rockwell Collins Avionics and Communications Division, Cedar Rapids, IA; summer 1997
Developed and delivered proprietary military astronomy navigation software.
European Southern Observatory, Garching, Germany. January - March 1997
Created a FITS image display program in Java. It can work as an applet or as a stand-alone application. Features include image pan and zoom, flipping, linear and histogram equalization gray scale, FITS header review and full support for several varieties of World Coordinate System. All work was performed remotely via the Internet.
Technology Exchange Company, Reading MA; August 1993 - November 1999.
Now defunct, TEC offered in-depth hands-on classroom instruction on advanced computing topics. I was one of their national instructors for advanced UNIX, C, X Window System, Motif and Java programming classes. After teaching more than 1,000 students, evaluation ratings averaged 3.6 out of 4 for Instructor Qualifications and Communication Skills.
Rockwell International, Cedar Rapids, IA; October 1991 - August 1993:
Collins Commercial Avionics, Technical Staff Member 5. Served as UNIX, X Window System and Motif expert and lead systems architect for the Boeing 777 Maintenance Access Terminal and Side Display (see, for example, a report in the January 1996 issue of Byte Magazine). This was the first attempt to build an avionics product under DO-178A for the flight deck using these off-the-shelf technologies. Received rating of "outstanding" at first year performance review, including a special bonus. Work included a technique to add hardware-based anti-aliasing to X transparent to clients and server.
Dimensional Medicine, Inc., Minnetonka, MN; September 1983 - May 1991
Chief architect and lead programmer for a medical imaging workstation. Took a one-page business plan as the first employee of a start-up and led twelve programmers to 500,000 lines of C in a resilient, successful, full-featured system listing for $300,000; over 50 installed sites, world-wide, as of early 1991.
Major features included:
Interactive 2D and 3D (voxel) image processing on custom and X/Motif displays;
Inverse-tape-drive and memory-mapped interfaces to 24 brands of CT and MR scanners;
Lossless compression archival and retrieval to 9-track tape;
Automatic, user-programmable formatted filming on 3M and Kodak imagers;
Server role for remote Macintosh via RS232/modems and TCP/IP connections;
Custom gateways to other workstation brands and hospital databases.
Kitt Peak National Observatory, Tucson, AZ; May 1979 - August 1983
Two years creating and maintaining real-time mountain-top telescope and instrument control software using IEEE 488, C, Forth, UNIX on PDP11s. Over two years on team researching and implementing a portable interactive image processing language and related data reduction algorithms. Wrote the CL which is part of the Image Reduction and Analysis Facility, IRAF, all in C for UNIX and VMS. IRAF is now in use by over 1000 astronomical users, including the Space Telescope Science Institute.
Photometrics, Inc., Tucson, AZ; consultant, winter 1981/82
Designed and implemented all the software for a stand-alone CCD-based image capture, analysis and display system. Major components included Motorola 68000 UNIX, custom camera and display, image processing algorithms and a user interface. Work culminated in a one-week all-expense-paid trip to customer site for installation and training at Stockholm Observatory, Stockholm, Sweden.
Electrospace Systems, Richardson, TX; 1977-1979.
Contributed to design, implementation and test of several unique antenna projects, including LF curtain, HF phased vertical array, UHF cone spiral, stealth 2 GHz LPA with strip line matching and 10 GHz asymmetric horn.
BSEE 1977, Purdue University, GPA: 5.83/6.00.
Completed honors curriculum in EE with highest distinction in three years. Emphases were on analog and digital electronics design, programming, vector calculus and electromagnetic field theory.
One semester of Master of Comp Sci at Purdue, spring 1979, GPA: 5.5/6.0.
Classes in structured software design, algorithm analysis, computer graphics, numerical analysis; left early to pursue unique Kitt Peak opportunity.
Life-long learning through short-courses and thorough reading, including:
UNIX internals, texts by Bach, Stevens and U of AZ graduate course
Prolog for Artificial Intelligence, text and classroom
X Window System and Motif programming, texts from O'Reilly and ICS class
Embedded Design Issues, text by Labrosse and HP tutorial course
Object-Oriented Design, text by Booch
Parallel Programming and C-Linda, telecourse
MFC Visual C++ 6.0 for Windows, Microsoft
Perl texts by Schwartz, Wall
HTML text by Lemay
Java texts by Arnold, Flanagan, Lemay and Chan, van der Linden, Giguère
Linux texts by Welsh, Kirch, Rubini
GOOFEE software diagramming technique, Kauler
FreeBSD text by Lehey
Data visualization, texts and lecture by Tufte
MySQL, text by Yarger et al
/rdb text by Manis, Schaffer and JØrgensen and NoSQL by Strozzi
XML texts by Laurent and Arciniegas
Programming with Qt, Trolltech docs and text by Dalheimer
PMAC motion controller class, Delta-Tau headquarters, Chatsworth CA
Antenna modeling with NEC-2, ARRL online continuing education course
Small Antenna Design, by Miron
RF Circuit Design, by Bowick
Learning Python, by Lutz and Ascher
Designed and built a complete home observatory with 3 m rotating roof.
Designed and built a 45 cm Dobsonian telescope.
Father of XEphem, a premier interactive ephemerides tool for UNIX systems
Extra class, WB0OEW, licensed since 1974
interests include antennas, CW, QRP, home brew, SDR.
References available upon request.