Charles Lohr

Objective: A software engineering position to develop PC and embedded applications.

Software Engineer, 2005 – 2007, Visteon (contract via EnGenius Inc., Livonia, MI)
Automotive Electronic Functional Test System for PCMs (Powertrain Control Modules) – Functional test system to test PCMs with up to 250 pins.  The test system consists of up to 52 “pincards” and load boards on a CAN network.  The pincard consists of an ST10 microprocessor and eight source and measurement instruments.  The pincard can sample up to 19200 14-bit ADC samples per second.  The pincard ST10 firmware implements an object model supporting 512 instruments objects.  Instruments can measure voltage, source voltage, source current and switch buses.

  • Wrote the embedded firmware (60 “C” modules) for a test instrument board “pincard” on a CAN network containing the hardware for 8 test instruments and 512 test objects.
  • Developed an object oriented protocol for a CAN network that can address the properties and methods of thousands of test instrument objects.

Software Engineer, 1996 – 2005, Visteon and Ford Motor Co. (contract via EnGenius Inc., Livonia, MI)
Automotive PCM Embedded Durability Test – The system consists of a test program that runs in a PCM while the module runs through a 1000 hour durability test.  The program is a multi-tasking non-preemptive operating system and application.  An external test system can send SCP, CAN and ISO-9141 message commands to the PCM to query for fault information and control 70 I/O lines.

  • Designed/Implemented embedded durability test programs for PCMs based on 83C196 and ST10 microprocessors.  Wrote drivers, I/O servers, and state machines.
  • Designed/implemented protocol drivers for CAN, SCP and ISO-9141
  • Wrote Visual Basic applications to test the PCM test programs
  • Designed a test system CAN command communications protocol

Software Engineer, 1995 – 1995, Ford Motor Co. (contract via Computer Methods Corp., Livonia, MI)
Automotive Networked Body Modules, Embedded Systems - System consists of networked body modules in a “segment demonstration vehicle”.  Each module controls a group of electrical devices in an area of the vehicle.  Electrical devices include:  windows, mirrors, alarms, climate control air and water valves and lighting.

  • Designed and implemented software drivers for body modules
  • Data flow diagram for a body module
  • System testing of a body module consisting of 160 “C” files

Project Leader, 1990 – 1994, Ford Motor Co. (contract via Computer Methods Corp., Livonia, MI)
Automotive Factory Powertrain Diagnostic System - A networked automotive factory “End of Line” system (installed at Ford Wixom Assembly Plant) consisting of an OS/2 server and eight PC subsystems. 

Test Cell Subsystem - the driver runs the vehicle through a powertrain test and the application delivers the results to a database (log file) on the server.
Repair Bay Subsystem - the repair bay technician uses the application access and update the database.
Final Inspection Subsystem - is used to access the database and report the pass/fail status of the vehicle to the database.

  • Managed a software project to develop a Windows 2nd generation (EOL2) flat-file database
  • Supervised a group of four software engineers maintaining the subsystem applications
  • Btrieve database design and implementation (12 modules, 34 functions, 211K C source code)
  • Information manager (MTD) design and implementation, Team of three people.  (17 modules, 80 functions, 427K C source code)

Education 1969 - 1973, Eastern Michigan University, Ypsilanti, MI, B.S. in Industrial Technology

Continuing Education - Courses

  • ST7 Microprocessor Training, ST, Livonia, MI 2004
  • MDC555 Black Oak Processor Training, Motorola, Livonia, MI 1999
  • “Advanced Microsoft Windows”, Microsoft University, Redmond, WA, 1988
  • “Diagnostic Software: Planning and Design”, Institute for Advanced Professional Studies, Newton, Massachusetts, 1981

Comm. Protocols

Target Hardware
Intel X86 16/32 bit
Low side drivers
High side drivers
Dithering drivers
Custom ASICs
SPI devices
OP Amps
14-bit DACs
14-Bit ADCs
82527 (CAN)
Bar-code Scanners
Touch screen displays

Target Operating Systems
Windows XP/98/95
Custom embedded non-preemptive multitasking

Development Languages and Methodologies
Visual Basic
File formats: INI HEX S19
Assembly X80 X86 X186 C166
Object oriented programming
Embedded programming
Real time programming
Non-preemptive multitasking
ISR (interrupt service routines)
Data flow diagrams

Development Hardware
PC Intel
UNIX 8086
UNIX 68000

Development Operating Systems
Windows XP/98/95

Development Software Tools
Tasking EDE
Tasking CrossView Pro
Visual Source Safe
Visual Studio
CodeWright editor
Microsoft Office
ABC Flowcharter
Micrografx Designer
Greenleaf Comm Library
Nohau SDU debugger
Bounds Checker

Test Equipment
Engenius MultiCom Protocol Adapter
Network Analysis Tool (NAT)
TI microprocessor emulator
Waveform Generators
Nohau SDU debugger
Flash Programming
RS232 Breakout
Arbitrary waveform generators
Patch panels

Legacy Experience
Machine vision, Fortran, Pascal, Windows 3.1, MSDOS, CPM, Zenix, Chromix, Btrieve, Broadband PC LAN, Wordperfect, 8085, 8X300