Lynn R. Erickson
P.O. Box 95, Logan, UT 84332
(435) 757-3830
LRE@xmission.com
www.xmission.com/~lre
Business History
April 1999 - Present
Lynn R. Erickson, Inc.
P.O. Box 95
Providence, UT 84332
Self employed on/off site contract consultant.
For General Electric Health Care, OEC, Salt Lake City, UT (through Kelly Services):
Ported drivers for a proprietary CANopen stack and the IXX-AT CANopen stack from the Intel 82527 CANbus controller to the CAST, Inc. CANbus controller FPGA core. The drivers were written for an SC520 (Am5x86) CPU embedded in the FPGA.
Modified existing and wrote new CANopen routines for two-axis control of the motors on a C-arm X-ray machine. Precise position control and data is necessary for 3-D reconstruction of the images acquired as the X-ray camera rotates around the field of interest. The routines are organized into an OOD/OOP oriented task running under the ThreadX operating system.
Wrote routines for de-interlacing, gain correction, and bad pixel correction of the acquired raw X-ray images. The routines were written as a C++ Class.
For Northrop-Grumman, Melbourne, FL (through Engineering Services Group, Parsippany, NJ):
Developed robust, fault tolerant, non-blocking TCP/IP and UDP/IP IO library routines for the J-STARS Multi-Platform Radar Technology Insertion Program (MP/RTIP) Radar Operating System (ROS).
Wrote radar data interface to handle queuing, buffering, and distribution of communications through the multiple network interfaces of the MP/RTIP computer. The programming runs on multi-computer clusters under Linux using the LAM/MPI parallel computing message passing interface, or on the Mercury Computer Systems RACEway platform using the Mercury Computer Operating Environment (MCOE).
Developed and wrote software test plans, procedures, and reports for the ROS special data services (SDS) programming.
Wrote and debugged the programming for automated testing of the ROS special data services programming. Using compiler directives, the programming runs on multi-computer clusters under Linux using LAM/MPI multi-processor communications, or on the Mercury Computer Systems RACEway platform using the Mercury Computer Operating Environment (MCOE). The programming sends test data to the system under test using the ROS interface, then requests data, again using the ROS interface, and compares the returned data to the expected result. Special attention is paid to boundary and error conditions. LAM/MPI, POSIX, and SVR4 Inter Process Communication (IPC) routines are used to synchronize the test programming.
Wrote and debugged the programs to provide independent test vectors to confirm the correct functioning of the programming under test. Independent Digital Terrain Elevation Data (DTED) and geo-location routines were developed for the test vectors.
Completed manufacturer's and in-house training on Mercury Computer Operating Environment and PowerPC (PPC) programming, and ClearCase usage.
For Space Dynamics Laboratory (SDL), Utah State University:
Wrote white papers for implementation of automated software testing, Defense Information Infrastructure Common Operating Environment (DIICOE) software compliance, and design and cost for a 66 MHz, 64-bit PCI interface card to connect with the military Common Data Link (CDL).
Performed as tech rep, trainer, and operator for the Navy Input Station (NAVIS) aboard the aircraft carriers Kennedy and Truman, and at Naval Air Station Fallon. The NAVIS provides real-time imagery receiving, screening, and manipulation capabilities for the TARPS-CD (Tactical Airborne Reconnaissance Pod System - Completely Digital) manned reconnaissance system.
Performed as manufacturer's representative for the Screener Processor Element (SPE) of the Navy Tactical Input Segment (TIS) for system hardware and software testing in Gaithersburg, MD and Washington, DC.
Wrote the hardware Acceptance Test Procedure (ATP) for the SPE, and supervised the SPE hardware acceptance tests.
Wrote the SPE hardware Operating and Maintenance (O&M) manual.
Wrote the SPE hardware Interface Control Document (ICD).
Performed VME card debug and troubleshooting using FORTH language routines downloaded to the SPARC CPU OpenBoot monitor PROM.
For Visionary
Products Inc. of Draper, UT:
Developed firmware for the ZapCode 3-D barcode reader. Wrote the high speed real time routines to read a TV CCD image into memory, where the image was then interpreted by proprietary software. Programming done in C and Hitachi SH-3 assembly, with critical sections locked into processor cache. Developed the routines to load and lock code into cache.
Designed and built test bench setup for reader.
Developed keyboard passthrough and intercept programming.
Provided CRC-16 programming routines.
For VeriFone, Inc. of Santa Clara, CA (work site Rocklin, CA):
Developed firmware for the NEC V-850 based VeriFone SC 5000 programmable smart card PINpad. From the VeriFone website, "The SC 5000 packs support for EMV smart card transactions, debit, electronic benefits transfer (EBT), and stored value transactions, into a sleek, stylish device that fits comfortably in the palm of your hand."
Wrote the firmware for the three-track magnetic card stripe reader.
Wrote EuroCard-MasterCard-Visa (EMV) Dynamic Data Authorization (DDA) and Static Data Authorization (SDA) routines.
Wrote public key RSA encryption routine testing software to test the SC 5000 EMV programming.
Wrote battery charger control firmware.
· Rewrote existing Secure Hashing Algorithm (SHA-1) software to increase speed 30%.
Rewrote existing assembly RSA and DES encryption assembly language software to make it fully reentrant.
Wrote test routines, and tested the PINpad random number generator. Changes were made in the generator as a result of this testing.
Assisted in testing of application software developed in Bangalore, India.
For Sorenson Media of Salt Lake City, UT:
Ported the Sorenson MPEG-2 video encoder to a Sorenson customer's proprietary digital signal processor (DSP) for real time video encoding. Critical sections of code were optimized in the DSP assembly language for a ten times increase in speed over compiled C code.
Ported and optimized the Sorenson MPEG-4 video decoder to WinCE. The ported code runs Quarter Standard Interchange Frame (QSIF) video in full color on Casio Cassiopeia, Compaq IPAQ, and HP Jornada Pocket PCs.
December 1998 - April 1999
Stellar Software Limited
300 Valley Street, Suite 301
Sausalito, CA 94965
Senior Firmware Engineer (Contract)
Production test programming for ShareWave, Inc. located in El Dorado
Hills, CA. Programmed video display, memory, and communication tests
using ThreadX RTOS for the ShareWave digital wireless multimedia
home networking reference design. The design uses an ARM processor
embedded in an ASIC. Used Green Hills Tools with the HP JTAG Probe
for development and test.
September 1998 - November 1998
Stellcom Inc.
10525 Vista Sorrento Parkway, Suite 100
San Diego, CA 92121-2712
Senior Hardware Engineer (Contract)
Designed a WinCE industrial temperature rated
computer for an
automotive GPS application. This computer uses the Hitachi
SH3 7709 32 bit RISC microprocessor and the Hitachi HD64461
companion chip. Features include 8 MB Flash memory, 16 MB
DRAM, Boot EPROM, 2-slot PCMCIA, Smart Card, 8 Serial Ports,
VGA Display Output, IRDA, Stereo Audio Output, Microphone
Input, Analog Inputs, Digital (12V automotive) I/O, 16X2
LCD Display, Printer Port, and a Keyboard Interface.
June 1990 - June 1998
Space Dynamics Laboratory (SDL)
Utah State University
1695 North Research Park Way
North Logan, UT 84341-1942
Senior Engineer
Hardware design and construction of the sub-orbital Exo-atmospheric
Discrimination Experiment (EDX) flight
electronics. Hardware
design and construction of data acquisition interface for the
MSTI-III
satellite calibration. Software for MSTI-III calibration data
acquisition. Hardware design for calibration and ground support
for the Spirit-III satellite.
Data transfer and archiving shell
scripting for Spirit-III calibration data. Maintaining, modifying,
and extending the Calibration Monitoring System (CMS) calibrator
control software. Software for
Recon Optical
/SDL Mercury RACEway
video decompression system. Firmware for small satellite
subsystem. Subcontractor tracking and coordination of joint
experiments between Russian and U.S. surveillance assets for the
RAMOS program. Orbital mechanics for RAMOS mission planning.
For the EDX program designed and built hardware to transfer 23 MB/sec I-R video and operational data to off-telescope electronics through three fiber optic links. This involved interfacing to the parallel RS-422 data from the I-R sensors, packing and formatting the video and housekeeping data, and down-linking via space qualified TAXI FDDI transmitter IC's. The logic functions were accomplished with Actel FPGA's using ViewLogic schematic capture and simulation tools. A 5 MB/sec command uplink was incorporated with accompanying logic and IO to control the telescope operations. Built a command uplink simulator and downlink receiver to test this hardware.
Also for EDX designed the off-telescope hardware to receive and unpack the data from the telescope. This hardware also provided the launch vehicle interface, and the command uplink to the on telescope electronics. Logic functions using FPGA's included pixel correction using calibration data and time delay integration of the of the down-linked data. The data was then passed to the compression section (done by others), and after compression sent to the launch vehicle RF downlink. Unfortunately, funding for the program was withdrawn before this hardware was built.
Designed and built data acquisition hardware for the calibration of the MSTI-III sensor, an optical phenomenology satellite instrument built by SAIC of San Diego, CA, for the Ballistic Missile Defense Organization (BMDO). This involved tapping off the RS-422 sensor data lines, formatting the data using an FPGA and sending it to a receiver via a fiber optic link. The reciever provided formatting of the data and interface hardware and logic to send the information to the calibration system SUN Sparc computer using a commercially acquired DR-11 S-Bus interface card.
Designed and programmed the Sparc software to input the data and save it to disk in real time. This software used the Solaris real time extensions and UNIX Inter-Process Communication (IPC) system calls for communications with the Open Windows user interface programming by others. Provided scripts and documentation for other programmers to use to interface with this low level programming. Wrote scripts for writing the collected data to a multi-cartridge DAT drive for transfer and archiving.
Designed and programmed software for testing a SUN VME/Mercury Computer Systems RACEway bus video decompression system. Wrote multi processor (Mercury MPC) software, configuration and descriptor files, command shell scripts, simulation, control, and data display programs for the system.
Maintained, rewrote, customized, and extended an existing calibration monitoring system control program written in BASIC (approximately 15,000 lines of code). The system used an IBM PC compatible computer with eight serial data lines, an IEEE-488 (GPIB) interface card, network interface, and a digital IO interface card. Extensions include monochrometer control routines, BioRad step scan routines, Lake Shore instruments control and data acquisition, temperature monitoring and alarm with local and network alarm enunciation, a macro language interpreter with ASCII file input for user automation of control sequences, IO error handling, network message handshaking with the data collection computers, and other routines. This programming also included the user interface.
Designed and prototyped a SUN VME data acquisition board for SPIRIT-III sensor calibration and ground support. The board provided a high speed disk array control and data interface as well as the sensor data acquisition interface. It also provided buffering and memory transfer for local computer data display and manipulation.
Wrote scripts and set up procedures for calibration data dissemination and archiving for SPIRIT-III. 5 to 10 Giga Bytes per day for 90 days had to be transferred from the high speed array to the local computer where it could be NFS transferred to another SUN computer. This computer was then used to index the data, write the data to WORM disks, and make the data available for NFS access the next day. Supervised and was on call to the student interns that tended the transfer and archiving after hours when the daily data collection effort was complete. Data had to be off of the data collection system by the start of business the next day.
Programmed program download and EEPROM programming modules for the Finite Analysis Inc. small communications satellite currently under development. Also provided CRC check routines for this i960 RISC microprocessor based system.
Worked on the RAMOS program, a joint US and Russian program for earth observation using Russian and US satellites and sensors simultaneously for near real time 3-D imaging of atmospheric and surface conditions, such as hurricanes, forest fires, oil spills, sand storms, and other phenomena of interest. Tracked the near term experiment effort led by a subcontractor using a USAF RB-57 reconnaissance airplane and the MIR space station. Traveled to Moscow, Russia for meetings between SDL and our Russian counterparts. Performed extensive orbital mechanics studies for RAMOS design and mission planning.
August 1989 - April 1990
SynPet Personal Electronic Technologies
7225 Franklin Rd.
Boise, ID 83709
Firmware Guru
Program design, documentation, and programming for National
Semiconductor HPC16003 High-Performance Microcontroller to control
real time multi-tasking functions of the "Newton" personal robot.
The microcontroller is part of a PC bus board that interfaces to
the motors and sensors used in the robot. Program development and
debugging was accomplished using the National ASMHPC assembler with
linker and librarian, and the MOLE Brain Board with HPC Personality
Board In Circuit Emulator (ICE).
Microcontroller tasks (modules) developed, debugged, and tested
included:
Communications Non-Maskable Interrupt PC bus peer-to-peer message handling between the HPC controller and the 8088/8886/80286/80386 host computer. Dispatch of command messages from the host to the appropriate task, and dispatch of messages from tasks to the host. Sending of task-to-task messages internal to the controller without host message interference. Message queuing and priority. Low level message integrity handling.
Move Robot Rotate robot about its center the commanded number of degrees, and then move in straight line the commanded distance. Move robot in an arc of the commanded radius for the distance or degrees commanded. Host commands can be queued or can cancel preceding commands as specified in the command message.
Self Test Check wheel and head movement, cable continuity, sensor viability, etc..
Lights Turn on or off a specific light for the time commanded, turn all lights on or off for the time commanded, turn eyes on or off. Time options include on/off forever or for a period in seconds.
Control Functions Stop a movement until a continue command is sent or the task is canceled. Stop the currently executing command in the specified task, and remove any remaining queued jobs in the task command queue. Task itself is not killed. Set distance for sonar collision/drop-off movement abort. Enable/disable sonar movement abort. Turn sonar ping on/off (for people with hearing aids which pick up sonar ultra sound). Send sonar reading. Global and individual control for four separate sonar sensors. Turn I-R remote control receiver on/off, set remote control address, duplicate character filter on/off, etc.. Enable/disable remote controller for robot movement.
Read Internal Send to host changes in battery charge, temperature, tilt sensor, and smoke detector.
Read External Send head sonar reading at commanded head orientation, read head I-R sensor, set head I-R sensor gain, send head position, read light intensity.
Move Head Position head to commanded degrees.
Light Shows Turn light show on/off for the commanded time, turn on/off all light shows, set light show order.
Host PC low level modules programmed included:
Modified host PC BIOS to allow cold boot without keyboard attached.
Developed programming to turn host computer hard disk on or off. Turn off may be on command or at a specified time interval since last disk access. Turn on is at disk access if disk is currently off, or by turn on command. Disk control may be implemented as a terminate and stay resident (TSR) program, or it may be linked to a robot application program.
September 1985 - August 1989
Westinghouse Idaho Nuclear Co., Inc.
P.O. Box 4000
Idaho Falls, ID 83403
Senior Engineer
Lead engineer/programmer/hardware designer on Nuclear Safety System
reprogramming and upgrade team. The system as delivered was
inadequate for successful plant operation. Redesigned software and
supervised four other programmers in reprogramming the system.
System consisted of seven separate computers communicating via
serial data links in a dual two out of two voting redundancy
configuration. Programmed firmware for smart (8085) communications
boards for inter-computer and terminal communications. Used PLM86
running under the iRMX86 real time multi-tasking operating system
for programming this multibus based system. The team won the
Bronze "George Westinghouse Signature Award Of Excellence" for this
effort. The system has had no software or design related hardware
failures to date.
Other accomplishments included:
Handled justification, scheduling, and interfacing with consultant firm for the above project.
Completed manufacturers' classes for the iRMX operating system and two distributed control systems (DCS's).
Disassembled and maintained MC6802 firmware for which no source code was available.
Disassembled and maintained 8085 firmware for which no source code was available.
Designed radio control system for a crane to interface with existing control systems.
Programmed 8088 STD bus 160 channel dual redundant radiation monitoring system including annunciation and communication "hooks" to other systems. Programming done in C and Assembler.
Reprogrammed for maintainability and upgradability a stack gas monitoring system. 8088 STD bus in C and Assembler.
Recreated and documented Programmable Logic Controller (PLC) programming for a de-ionized water purification system.
Wrote and presented two papers at technical conferences.
Twice nominated for "Quality Achievement Award."
July 1981 - May 1985
Specialty Electrics, Inc./Power Engineers, Inc.
P.O. Box 220
Hailey, ID 83333
Chief Engineer (Specialty Electrics)
Principal Engineer (Power Engineers)
In charge of projects as follows. Directed and supervised other
engineers, designer/draftspersons, and shop personnel as required
to bring the projects to full completion:
Design, programming, and construction of micro-controller based 3-D electronic cams for the turbine generators at John Day Dam on the Columbia River. The controls are installed and operating.
Design, programming, construction, and installation of Z- 80 STD bus based gate position indicator systems for three dams on the Snake River in Washington State. The systems are installed and operating.
Design, programming, construction, and installation of a computerized data acquisition system that operates over ordinary telephone lines.
Design and construction of specialized input/output for the systems to protect against destructive transients per ANSI Standard 37.90a.
Writing of operation and maintenance manuals for the systems described above.
Conducted customer training for the systems described above.
Research and writing of a power system study for Mobil Oil Company's offshore production platforms in the North Sea off the coast of Norway. The study involved the optimization of electrical vs. mechanical drive for major loads, voltage levels, and other considerations. Optimization was arrived at through computer manipulation of the research data.
Research and writing of a second offshore power system study for Mobil Oil. The study included drilling electrical load requirements, electrical power delivery via submarine cable, material fire safety, corrosion control guidelines, and grounding and bonding recommendations.
Energy conservation and peak shaving study for Cyprus Mines (Thompson Creek Project).
October 1980 - July 1981
Lynn R. Erickson, P.E.
1432 Rockhaven Place
Manteca, CA 95336
Consulting Engineer (Self Employed)
Consultant to a greenhouse manufacturer in developing a microcomputer based energy management and control system.
Retained consultant to WESCO, Inc., of Woodland, California, a manufacturer of heavy duty truck trailers.
Developed system to monitor pistachio processing.
Freelance writer of magazine articles.
Feb. 1980 - Oct. 1980
Ripon Manufacturing Co., Inc.
Ripon, CA 95366
Operations Manager
As operations manager, successfully coordinated and oversaw a doubling in business to $15 million per year with no late completions or deliveries.
Jan. 1979 - Feb. 1980
Lockheed Missiles and Space Co., Inc.
Sunnyvale, CA
Senior Systems Test Engineer
Estimated cost of and wrote the environmental test portion of Lockheed Missile and Space Company's successful proposal for the full scale development and test of the Aquila remotely piloted vehicle project. The proposal cost of 1.3 million dollars resulted in a $120 million dollar plus contract.
June 1976 - Jan. 1979
Lynn R. Erickson, P.E.
738 Penitencia St.
Milpitas, Ca 95035
Consulting Engineer (Self Employed)
Acted as Chief Engineer for Van Pelt Fire Trucks, Inc., Oakdale, CA on a retainer basis.
Designed and programmed a micro-controller based eight channel digital flowmeter for fire trucks.
Designed and oversaw the installation of two solar heating systems that are still successfully operating.
Acted as a solar energy consultant on a retainer basis to Admiral Pools and Spas, Sunnyvale, CA.
August 1974 - June 1976
Lockheed Missiles and Space Co, Inc.
Sunnyvale, CA
Senior Systems Test Engineer/Design Engineer
Responsible for planning, coordination, and conducting engineering/performance tests, and durability tests for the Lockheed Dragon Wagon on-off road heavy truck. Studied and defined all state and federal statutory requirements for vehicles so that the testing done would be in accordance with standards. Designed, and served as contract coordinator and training officer on the Dragon Wagon fire truck built for the Bureau of Land Management.
April 1972 - August 1974
Van Pelt Fire Trucks
Oakdale, CA
Head Engineer
Responsible for the design of approximately 100 custom built fire trucks per year. Also wrote specifications and prepared bid packages. Handled all necessary plant engineering.
May 1971 - March 1972
E&J Gallo Winery
Modesto, CA
Maintenance Supervisor/Coatings Engineer
In charge of engineering and supervision on a large tank coating project. The project was completed ahead of schedule. Conducted a refrigeration utilization study. The study recommendations saved the company an estimated $25,000 per year in 1972 dollars.
June 1970 - May 1971
Texaco, Inc.
Wilmington, CA
Engineer
Handled all tankage repairs for a large oil refinery. The job included determining the need for repairs, obtaining monetary approval, writing contracts, dealing with contractors, and planning and scheduling of the work.
Professional:
"Fluorinel Dissolution Process Plant Protection System", 1988 Plutonium/Uranium Recovery Operations Conference, Idaho Falls, ID. (Co-Author with R. J. Clayton.)
"Successful Team Programming of a Multiprocessor Real Time Plant Protection System", 1987 Westinghouse Engineering Computer Applications Symposium, Monroeville, PA.
Freelance:
"Build A Beeper For Your TRS-80", Radio-Electronics Special Projects, Fall 1980.
"Dough Gods", Mother Earth News, JAN/FEB 1982. (Co-Author with my wife.)
B.S.(M.E.) - University of Idaho, Moscow, ID, June 1970
Registered Professional Engineer - California
References available upon request.