We are currently (2016) working mostly in embedded system design incorporating Microchip PIC24 and dsPIC33 devices. Also some embedded Linux on Raspberry Pi, and Qt GUI programming.

A small sampling of past work:
School Bus Ultrasonic Sensor System using CAN Communications
{C, Analog, Digital, CAN, Firmware, Linux}
Various components of an Ultrasonic obstacle avoidance system for use in school busses. Transportation Accessories Group LLC.
IoT Wireless Router Based Water Metering System
{IoT, C, Embedded, Analog, Digital, Web}
Low powered Particle.io based system that records water meter switch closures and uploads accumulated count to web server for use by lawn maintenance company. Included server side coding to write data to database. Mizu Meter / Beautify Las Vegas.
RS-485 Connected Temperature Monitoring System
{C, Embedded System / Firmware, Digital, Analog}
Down hole temperature monitoring system used to measure earth temperatures in earth heated home experiment. Faraday Enterprises.
Leak Detection System
{C, C++, Linux, GUI, Embedded, Digital, Analog, Network Sockets Programming}
Design of industrial leak detector control system. Users control leak detector remotely over Ethernet from stand alone terminal and via web browser. Included development of PC/104 based embedded control system for leak detector. Laco Technologies.
Leak Detector Pendant
{C, Embedded, Analog, Digital, LCD}
Microchip PIC18 based handheld device for controlling Alcatel 180 Leak Detector. Laco Technologies.
Windows Drag and Drop GUI Interface
{C++, MFC, Drag & Drop, Active X}
ActiveX Drag and Drop application including implementation of ActiveX Container. Container provides graphical workspace into which objects (representing network services) could be dropped and manipulated. EmergeCore Networks.
FE-1600 Sound - I/O Processor Chip
{'C', PIC Assembly Language, Analog, Embedded System / Firmware}
Designed for high-end Vending Sound Boards to facilitate rapid development of customized control products.
Universal Vending Machine Control
{'C', PIC Assembly Language, Analog, Embedded System / Firmware}
General purpose Vending Control for bulk vending machines. Utilized FE-1600 Sound - I/O Processor Chip.
Electrophoresis Medical Device
{'C', PIC Assembly Language, Analog, Embedded System / Firmware, Medical, FDA Documentation}
Miniature medical device for injection of medication through skin via electro-phoresis. Work included electronic design as well as preparation of hardware design plan, firmware design plan (with accompanying flow diagrams), test plans and associated documents for FDA submission. Device utilized embedded PIC microcontroller, programmed in 'C' and assembler using state machine. Innovative analog techinques were employed to maximize battery life during sleep, and to ensure maximum efficiency while operating. 1000's of these successfully went into production. KWM Electronics / IOMED Salt Lake City, Utah.
Gumball Machine Controller
{'C', PIC Assembly Language, Analog, Sound Generation, Embedded System / Firmware}
Designed sophisticated Gumball Machine Controller using Microchip PIC16C64A to control motor and lamp drive circuitry and to directly drive DAC for high quality sound generation. Everett James Company, Salt Lake City, Utah.
Iontophoretic Controller (Medical)
{'C', PIC Assembly Language, Analog, Embedded System / Firmware, Medical, FDA Documentation}
Designed shirt pocket sized iontophoretic dose controller for the medical market. Utilized Microchip microcontroller. Firmware was written in state machine fasion using a mixture of 'C' and PIC Assembler. This design capitilized on the PIC16C715's combination of analog and digital I/O to produce a very compact design at minimal manufactured cost. Followed FDA requirements for design documentation. KWM Electronics, Salt Lake City, Utah.
Vending Machine Controller
{PIC Assembly Language, Analog, Embedded System / Firmware}
Controller for vending machine. Used Microchip PIC16C621 to control motor and lamp drive circuitry. OK Manufacturing, Salt Lake City, Utah.
Rock Climbing Machine Windows Interface
{'C++', Windows}
Project involved writing Windows users interface for Ascent rock climbing machine. Hall Electronics, Sandy, Utah.
Multimedia Windows Application for Security Industry
{'C++', Windows}
This contract entailed generating a prototype application of a multi-camera security system. Windows VFW development kit functions were used as core functions. Special functions were written to enable screen grabs with conversion to .DIB format. AVI file read and write functions were utilized. DRSI, Salt Lake City, Utah.
SKIPPER Joint American / Russian Upper Atmospheric Research Satellite
{'C', 'C++', DOS Graphics, MS-Windows, Digital, Embedded System / Firmware}
Responsible for development of Command Compiler software, Command and Control Software, and the synchronous packet serializer. The Command Compiler was written in Microsoft Visual C++. This enabled quick development of an elegant tool which mission scientists use to directly enter experiment sequences, build functional objectives, and then combine functional objectives into mission scripts. This software handled all interleaving of overlapping experiments and objectives.

Output script files from the Command Compiler were sent via T1 link to Anazuka AFB where the Command and Control computer processed them. The Command and Control computer disassembled the binary script files and built 88 bit packets to be sent to the packet serializer and then up to the satellite. The satellite then echoed the command back through the downlink and this returned command and housekeeping information was processed by the Command and Control computer. The Command and Control Software was written to run under DOS for maximum speed.

The Synchronous Packet Serializer plugged into a parallel port of the Command and Control computer. Communicating serially through the parallel port with the host it appended a 16 bit sync word then inserted the packet into the continuous 16,000 bit/second data stream. This was implemented using a PIC processor running at 20 MHz with firmware written in assembler. Space Dynamics Laboratory, Logan, Utah.

Ion Chamber Gamma Radiation Rate Meter
{Digital, Analog, Sensor Design}
Included design of ion chamber sensor, charge pump high voltage generator, pico-amp input integrator, A-D and LCD display circuitry.
Medical IV Drip Controller Simulation Software
{'C', DOS Graphics}
Software mockup of a new IV drip controller. Written to run under DOS using MetaGraphics subroutines. Mecca Electronics, Hyrum Utah.
Wiring Harness Documentation Software
{'C', DOS Graphics}
Satellite and rocket payloads typically use large cable harnesses containing hundreds of wires. As the harnesses grew more complex documentation became a problem and a software solution became necessary. This program featured a spreadsheet format with field verification, connectivity testing from cable to cable, specialized editing features and print control. Space Dynamics Laboratory, Logan, Utah.
Charge II B Upper Atmospheric Research Rocket
Signal Conditioning subsystem consisting of synchronous demodulator / peak-hold circuit, log amplifiers, etc. Space Dynamics Laboratory, Logan, Utah.
Spear III Upper Atmospheric Research Rocket
Power is always a problem in spacecraft because of limited battery size and weight and limited power from solar panels. A payload will typically have many different types of instruments and they are turned on and off according to the flight timeline. This software package took proposed flight timelines written in a 'C' like script, broke the timeline down into on-off times for the various instruments (and different configurations of each instrument) and calculated the ongoing power requirements as well as overall power budget. Data was output in tabular form as well as in graphical form using Postscript format. Space Dynamics Laboratory, Logan, Utah.
Spear II Upper Atmospheric Research Rocket
Ground Support Software for SPEAR II upper atmospheric research rocket. Included 'C' interpreter. Space Dynamics Laboratory, Logan, Utah.
Data Acquisition System for Space Shuttle Solid Rocket Motor Redesign Effort
{Digital, Analog, 'C', DOS Graphics}
This contract resulted from 'O' ring problem in Challenger disaster. Thiokol was redesigning the solid rocket motors (SRM's) to use 3 rather than 2 'O' rings as a seal. Also, the SRM's are shipped to Florida laying down on railroad cars and the propellant and casing become out of round shape during transit. Thiokol was investigating methods of bringing the segments back into round before coupling to minimize 'O' ring damage. This system was designed to allow Thiokol the means of visually monitoring the shape of the segments during coupling operations. System consisted of hardware design, dedicated control PC software, and display PC software.

Hardware design included an external Data Acquisition front end and an internal IBM PC bus compatible card set. The front end consisted of a 64 channel input multiplexer, instrumentation amplifier, and high speed 16 bit ADC each of which was controlled by a serial stream from the control PC based card set. Data was read out serially. All front end control and data signals were optically isolated from PC. The control PC card set utilized an AT&T floating point DSP for control and signal processing. Code for DSP was downloaded from control PC on startup. Data from front end to control PC was combined with timestamp and housekeeping data then made available to PC via polled access through 32K x 16 fifo.

Software included code for embedded DSP as well as communication code between DSP and control PC. Control PC could be manually operated or, more typically, run through a serial link from Display PC. The Display PC software handled data conversion using 5 step calibration data, storage to hard disk and floppy, and graphic display. Most data was from strain guage measurements of deformation of rocket casings. Data from both SRM segment and lower SRM segment were displayed on screen as concentric ovals along with numeric values. Alarm conditions could be input as 'C' type strings and were processed by internal 'C' interpreter. Morton Thiokol, Brigham City, Utah.
Frame Grabber and False Color Imaging Software
{'C', DOS Graphics, Digital, Analog}
Hardware design included state of the art frame grabber utilizing Hitachi controller with a 64 bit wide DRAM memory system, RS-170 analog signal conditioning, flash converter, IBM PC bus interface logic. Software package included menu driven false color image processing and display. Space Systems Engineering, Logan, Utah.
Laser Beam Profile 3D Graphics and Control Software
{'C', DOS Graphics}
Complete software package for control of Spiricon BeamLink laser beam profile analyzer. Displayed beam profile as wireframe image, false color image, and as intensity contour plot. Image rotation, tilt, etc. Spiricon, Logan, Utah.
Remote Control for Picosecond Delay Generator
{Digital (ECL, TTL), Embedded System / Firmware}
Modified existing ECL based Picosecond Delay Generator by adding Z-80 based GPIB interface. Firmware written in 'C' and assembly. Cordin, Salt Lake City, Utah.
Data Logger
{Digital, Analog}
A battery operated low cost CMOS logic design. Consists of a UART and various registers used to set gains, select channel, etc. Buffered AC/DC sensor excitation provided. Darkhorse Inc., Logan, Utah.
High Speed Drum Camera Control System
{Digital, Analog, Embedded System / Firmware}
Drum Camera consisted of a large (.5 m dia.) drum on the inside surface of which was affixed a long strip of film. Image was flashed onto film surface as drum rotated at high speed. Camera was typically used for photographing both conventional as well as nuclear explosions. The control system was used to gradually bring the drum up to speed, take the photo sequence, and then brake the drum. Hardware, firmware, and packaging design were performed. Z-80 based with firmware written in 'C' and assembler. Cordin, Salt Lake City, Utah.
Automobile Engine Efficiency / Vehicle Drag Monitor
{Digital, Analog, Embedded System / Firmware}
System utilized a wheel dragged behind vehicle as well as fuel flow sensor to determine engine efficiency as well as mechanical and air drag coefficients at various speeds. Z-80 based. Both hardware and firmware ('C' & assembler) design were performed. Utah State University, Logan, Utah.
Energy Management System
{Digital, Analog, Embedded System / Firmware}
Base unit including Z-80 based controller, signal conditioning, A-D, and switchmode power supply. Remote unit included Z-80 controller, keypad & LCD interface. Firmware written in 'C' and assembler. Control Technology Corp., Logan, Utah.
Digital Tape Deck Controller
{Digital, Embedded System / Firmware}
This design was the companies first microprocessor based product. The tape deck was used to store stage lighting command sequences for companies logic based control panel. Utilized Z-80 microprocessor. Electro Controls, Salt Lake City, Utah.
True RMS (linear power) SCR Phase Controller
This phase controlled dimmer was designed such that the output current and voltage were sensed as RMS values and the resulting power was adjusted to match the input DC control level. This proceedure allowed for a very linear control function of light intensity versus control voltage. The dimmer control circuit was used to trigger very large (200 Amp) SCR's. Electro Controls, Salt Lake City, Utah.
Automatic Light Dimmer Control
{Digital, analog}
For commercial light dimming applications. Used digital counters and R2R ladder DAC to memorize and output preset light settings. Provided slow up and down ramp to desired intensity. Electro Controls, Salt Lake City, Utah.


Web design by www.faradayco.com