Bruce Madigan
1107 Lewisohn Street
Butte MT, 59701
madigan@weldworks.com
Phone 406-782-5157



Software and Hardware Development Projects



Manual Weld Training Monitor
WeldWare, Inc.
TYPE: Embedded System
PLATFORM: DOS/Palm OS




The Manual Weld Training Monitor is a client project consisting of a small single board computer (SBC) in an enclosure that is mounted to the wall of a welder training booth.  The SBC collects and processes data from the welding process and  provides feedback to the welder via an  LED display mounted within the welder's helmet.  A custom PC-104 board was developed to interface to the welding process (A/D), in-helmet display, IRDA infrared communications link as well as a local keypad and LCD for setup.  The SBC was programmed in C++ under DOS.  A companion application was developed on the Palm platform in C to allow remote SBC programming and data collection via the IRDA link.


TIG-pc Weld Penetration Controller
WeldWare, Inc.
TYPE: Embedded System
PLATFORM: Windows NT 4.0 Embedded




The TIG-pc Weld Penetration controller is used to measure and control the amount of penetration in a GTA weld .  Weld penetration is inferred by measuring the natural frequency of the weld pool oscillation.  A single board computer (SBC) fitted with a commercial A/D board is programmed to collect analog information from the welding process, determine the degree of weld penetration and actuate changes in the welding power source output to maintain the desired penetration.  Custom analog and digital signal conditioning circuits were designed and built to isolate and protect the SBC from the welding process.  Device drivers were designed and coded to operate hardware connections to the welding process and sensors.  A headless version of Windows Embedded NT is used and the TIG-pc application was developed in C++ using Windows MFC.  


Weld Quality Manager
WeldWare, Inc.
TYPE: Desktop/Portable PC
PLATFORM: Windows 98/2K/XP




Weld Quality Manager (WQM) is a primarily an SQL database application used to capture and analyze weld quality data to reduce scrap and  rework and therefore improve welding process throughput.  WQM consists of three companion modules accessing an SQL database via TCP/IP network connections.  The Data Entry module runs on a tablet PC connected to the SQL server via wireless ethernet and is used on the factory floor to collect weld quality data via a GUI.  The Setup module is used to configure the information (defect types, part pictures, inspector permissions...) that is available on the Data Entry module.  The Analysis module is used to analyze the weld quality data.  All of the modules' user and database interfaces were written in C++ using Windows MFC.  


Automatic Welding Monitor
WeldWare, Inc.
TYPE: Embedded System
PLATFORM: Windows CE 3.0




The Automatic Welding Monitor is based on a single board computer (SBC) mounted in an enclosure on the wall of an automatic welding cell with connections to the welding process, weld cell controller (PLC) and factory floor LAN.  A companion desktop/laptop application was designed and coded to configure and collect data from the remote Monitors via a TCP/IP connection.  Custom analog and digital signal conditioning circuits were designed and built to isolate and protect the SBC from the welding process.  A headless version of Windows CE was modified and built for the Monitor to drive a commercially available A/D and digital I/O board.  Both the Monitor and Companion applications where written in C++ using Windows MFC.


Coaxial Vision Torch
WeldWare, Inc.
TYPE: Embedded System
PLATFORM: Linux/RTLinux




The WeldVision Coaxial Vision Torch (CVT) consists of a hollow GTAW torch fitted with a video camera mounted coaxially with the welding electrode.  The design of the CVT allows a unique view of the welding process in real-time.  Video image processing is used to extract information from the weld scene to provide feedback for weld seam tracking and pool size control.  A commercially available video capture card and a standard Linux distribution patched with the RTLinux real-time extension provides the image processing and control platform.  The device driver for the video capture card was written in C directly from the capture card I/O bus register layout.  The image processing and control application and user interface were written in a mixture of C and C++ using the gcc and g++ GNU compilers.


Welding Power Source Remote Control Interface
Arc Logic Company
TYPE: Desktop/Portable PC
PLATFORM: Windows 95/98/NT/2K




The Welding Power Source Remote Control Interface project resulted from the need of a client to connect multiple welding power sources, each containing only a single RS-232 interface, to a master control station.   The welding power source was designed to communicate over the serial line to an old DOS program for which the source code was not available.  A serial port "sniffer" was used to determine the communications protocol over the serial line and a Windows program written to mimic the DOS program protocol. An industrially packaged PC running Windows NT 4.0 was fitted with a multiport serial card and connected locally to each welding power source.   On the local PC, the mimicked protocol application was run as an COM/OPC server.  A COM/OPC client application ran on the master control station allowing access to individual welding power sources  through a single user interface.  The COM/OPC server, client and user interface were written in a mixture of C and C++. 


Linux-based Machine Controller
Arc Logic Company
TYPE: Embedded System PC
PLATFORM: Linux/RTLinux




Machine controller systems were developed using a modified  Enhanced Machine Controller (EMC) to control a 3 axis rectilinear robot and a 6 axis articulated arm robot.  A standard Linux distribution patched with the RTLinux real-time extension provides the platform for the EMC.  The EMC motion control kinematics, user interface and machine I/O functions where changed to work with the target robots.  A custom ISA card was  designed and built for encoder inputs and a device driver written to obtain position data for the EMC.  A mixture of C and C++ using the gcc and g++ GNU compilers were used for the project.


High-speed Video Control System
Arc Logic Company
TYPE: Desktop/Portable PC
PLATFORM: Windows 95/98/NT/2K




A remote user interface to the Kodak Motion Corder line of cameras was designed and coded.  An RS-232 connection was used to control the operation of the camera and a custom SCSI device driver interface was used to download images from the camera.  An A/D card allowed external sensors to be sampled synchronously with each image.  An IRIG/GPS time card provided an UTC time stamp to be associated with each image and data set. A video capture card provides the user with a real-time display of the camera image.  A separate image conversion and video production tool allowed the images downloaded from the camera to be complied to a video file complete with time stamp and sensor data overlay.  The system was written in a mixture of C and MFC C++.


Real-time Robotic Seam Tracker
Arc Logic Company
TYPE: Embedded System
PLATFORM: Lynx RTOS




A seam tracking subsystem was developed and integrated into a arc welding robot controller.  The seam tracker commanded the robot to oscillate the welding torch across the weld seam, perpendicular to the direction of torch travel.  Signals from the welding process were sampled to extract features of the weld seam exposed by torch oscillation.  The trajectory of the welding seam was updated based on feedback information from the seam tracker.  The seam  tracker was written in a mixture of C and C++ using a Lynx-modified version of the GNU compilers. 


Varestraint Weldability Test System
Arc Logic Company
TYPE: Embedded System
PLATFORM: Windows NT 4.0




The Varestraint Weldability Test System (VWTS) produces precision GTA welds for determining the ability of a metal to be successfully welded.  At the end of a weld, the sample being welded is bent to produce a prescribed amount of strain within the sample.  A motion control card controls stepper motors for welding torch movement and a hydraulic cylinder for the sample bending ram.  An A/D card collects information during the test and a digital I/O card controls the overall system operation.  The VWTS user interface allows test parameters to be defined, saved and loaded.  The system is programmed in a mixture of C and MFC C++.


Arc Sensor Module
NIST
TYPE: Embedded System
PLATFORM: DOS




The Arc Sensor Module (ASM) was originally developed as a component of the Programmable Arc Welding System (PAWS) developed for the United States Navy.  wow.   The ASM started as a DOS application , and was migrated to Windows 3.11 and then to Windows 9X.  The ASM is a subsystem of a comprehensive welding process controller and communicates with the supervisor controller via RS-485 serial and/or TCP/IP ethernet connections.  The ASM uses a commercially available A/D board to collect sensory data from the welding process.  The data is analyzed to extract information about the stability of the welding process and the results are sent to the supervisor controller in real-time.  The ASM was originally written in C and during the migration to new operating systems the original C functions where wrapped with C++ classes or rewritten in C++.   


High-Speed Video Analysis System
NIST
TYPE: Scientific Lab System
PLATFORM: DOS/Windows




A High-Speed Video Analysis System (HSVAS) was developed to investigate the GMA welding process .  The HSVAS consisted of a HeNe laser, optical filters and focusing lenses, a high-speed video camera.  A supervisory computer with a GUI was developed for system control and image acquisition and processing.  Previously saved images of the welding process could be replayed in slow motion and processed to extract numerical data about the welding process. Using the data gathered via the HSVAS, numerical and analytical models of the welding process where developed.  The HSVAS, data analysis tools and process models where developed in C.


Contact Tube Wear Sensor
NIST
TYPE: Embedded System
PLATFORM: DOS/Windows




The Contact Tube Wear Sensor (CTWS) was developed to automatically determine the condition of contact tube in the GMA welding process in real-time.  The contact tube guides the consumable electrode (which becomes part of the weld metal)  as the electrode exits the welding torch and transfers welding power to the electrode for the welding arc.  The sliding contact between and the contact tube and welding electrode eventually wears the contact tube to the point that it no longer transfers welding power to the electrode properly and the welding process becomes unstable.  The CTWS uses an A/D board to collect information from the welding process to determine the extent of contact tube wear and alerts the welding operator to replace a worn contact tube before the welding process becomes unstable and produces bad welds.   A custom analog signal conditioning board was designed and built for the CTWS.  The CTWS was written in C. 


Arc Length Controller for GMAW
NIST
TYPE: Scientific Lab System
PLATFORM: DOS/Windows/UNIX




A real-time arc length controller was developed for the GMA welding process .  To develop the controller, data was collected using a  high-speed video system and optical spectrum analyzer to measure arc light intensity.  Numerical models of the welding arc were developed to determine the affect of arc current and arc length on arc light intensity. Simplified versions of the models where then executed on the controller (fitted with A/D, D/A and digital I/O cards) to measure and adjust welding parameters to maintain arc length.  The controller was run under DOS then ported to Windows 3.11.  The models where developed and run under Unix.  Both the controller and models were developed in C. 


Arc Welding Seam Tracker
EWI
TYPE: Embedded System
PLATFORM: DOS/UNIX




A seam tracking system for the  GTA welding process was developed around the Coaxial Vision Torch (CVT).  The system consisted of a weld cell controller which controlled the welding and torch manipulation equipment, provided the user interface and communicated with the CVT image processor via an RS-232 link.  The CVT image processor housed a video capture card, analyzed images of the welding process and sent control information to the weld cell controller in real-time.  The weld cell controller was developed under the DOS platform.  The CVT image processor was developed under a real-time Unix variant.  The majority of the entire system was written in C with time-critical sections of code written in assembler.   


Ultrasonic Welder Control
EWI
TYPE: Embedded System
PLATFORM: Apple Macintosh




The Ultrasonic Metal Welder (UMW) consists of a high-power ultrasonic transducer and power source and  and a hydraulic ram press.  The  ultrasonic and hydraulic power sources are under the control of the supervisory computer via an A/D, D/A and digital I/O card. A GUI allows welding parameters to be defined, saved and loaded and data collected during a weld to be analyzed and viewed.  The system is programmed in the LabView environment  calling custom VIs written in C.


Weld Penetration Control
OSUWE
TYPE: Embedded Lab System
PLATFORM: Rockwell AIM65




A weld penetration controller system was designed and built for the  GTA welding process .   The controller was based on a Rockwell AIM65 computer with A/D, D/A and digital I/O cards.  Custom-built analog signal conditioning boards allowed the system to sample welding process sensors.  The system  analyzed sensor data and provided real-time control of the welding power source output and torch motion (via stepper motors).   The weld penetration controller system was coded in 6502 assembly language. 


Bruce Madigan's Resume Bruce Madigan's Skills