Post Job Free

Resume

Sign in

Engineer Software

Location:
Escondido, CA
Posted:
January 04, 2021

Contact this candidate

Resume:

Eldon Perkins

Embedded Firmware Programmer

Escondido, CA Phone: 408-***-****

adi4zs@r.postjobfree.com linkedin.com/in/bruceeperkins

Professional Summary

Embedded Firmware Programmer with 30 cumulative years of experience in low level firmware development to implement software requirements, as well as digital hardware development. A problem solver who gets big issues resolved in weeks that have stumped other engineers and stalled projects for more than six months.

Qualifications and Accomplishments

Implemented a s/w UART for Military Walkie Talkies that worked first time after being there 3 weeks (project had been stalled for 6 months, due to creativity gap in implementing RS-232 protocols using available I/O to send/receive target signals over the air waves).

Designed digital h/w circuits via a RISC (AMD 29000) processor with 2 banks of low cost, slower performing EPROMs interleaved so zero wait states always happen after the initial (one wait state) fetch (occurs after a non-contiguous, un-cached instruction fetch). This design worked perfectly on the first PC board, except the TTL crystal needed to be replaced (same day!) with CMOS, because of the rail-to-rail clock voltage requirement.

Solved issue with thermal print-heads for color ID badges: The image got darker as the number of cards printed in a row increased, due to increasing print-head temperature. Researched color theory to see how to control hue for each of the 4 ribbons by regulating energy (ON-time) as a function of print-head temperature (and print-head temperature response graphs in data sheet).

Problem: Company had an unresolvable issue regarding getting 4 VTRs to go from stop to play in time-code frame sync together without aborting.

Solution: Created a new sequencing approach that had not been attempted previously. This was one of my many accomplishments in my first job as a junior programmer.

Related Skills

Scripting/Programming: Jovial, Linux, BASH, SED, AWK, Perl, Excel Macro VBA, Python,Visual/gnu C++, C, SDK, MACHXL, AHDL (Altera Max+plus II), TeraTerm.

High Level Synthesis: CTOS (Cadence), CatapultC (Calypto)

Assembly Languages: 1750A, 2nd Gen IA64, TMS320F243 (DSP), MPC860, ARM6, i960, 8051, 80386, AMD29000, 680xx, 68xx, 6502, Z80, Hexagon DSP & QC ARM

Operating Systems: Peerless Page, XINU (Internals), Kofax O/S, VxWorks, Threadx

Equipment: Logic Analyzers, In-Circuit Emulators, Storage Scope, Current Probe, Spectrum Analyzer, Signal Generator, T32 J-Tag Debugger

Technologies: Keil 8051 C Compiler and IDE8051, Subversion (SVN) Software version control, Matlab. GIT, Perforce, Jira Bug Tracker

Experience

U-Blox, Del Mar, CA, Permanent – Senior Firmware Engineer 4/16 – Present

Develop Firmware to Implement AT Commands using C, Linux BASH and TeraTerm Scripts, Excel

AT Commands for Factory Test Mode 9205 and 9206 device verification of IoT Rx and Tx RF signal strength, and verification of digital signals on two 42-pin connectors on an Evaluation Board. The digital tests return the set of 96 signals on the U-Blox Module that are testable digitally. User selects a subset of these to test; which are to be outputs; and which HIGH/LOW level to assign to outputs. Results are displayed at the terminal issuing the AT Command. RF tests required research of 3GPP specifications and use of Spectral Analyzer and Signal Generator to verify signal strengths for Tx and Rx respectively. On new projects there were Qualcomm Cases filed and ongoing communication with engineers to resolve issues involving calls to Qualcomm diagnostic utilities. Unit testing automated with scripts generated for BASH and the TeraTerm terminal emulator.

Landis+Gyr, Alpharetta, GA, Contractor – Firmware Engineer QA 4/15 – 9/15

Quality Assurance Testing of Smart Meter Firmware using Linux, Awk, Bash, C, Excel VBA, Microsoft Test Manager, Oracle SQL Developer.

Wrote scripts to acquire hex dumps and decode proprietary GridStream Protocol messages to verify Smart Meter firmware code. Wrote Excel Visual BASIC code to automate and display scatter charts of 30-minute interval power consumption data gathered from SQL queries. Used Oracle SQL Developer to send queries to gather this information. Exercised GUI application to issue commands and gather response data for verification of firmware behavior.

Maxim, San Jose, CA, Contractor – Firmware Engineer 6/14 – 9/14

Mixed Signal ASIC Voltage, Current, Temperature Controller with On-Chip 8051 C, 8051 Assembly Language, Excel VBA, Keil Toolset

Implemented OTP write using data sheet timing diagram. Implemented PLM-Compliant Bus Commands to Program Voltage, Temperature and Current Monitoring Thresholds. Maintained Excel VBA Code Generator.

Qualcomm, San Diego, CA, Contractor – Software Engineer III 4/12 – 11/13

Use System C (C++ Library for rendering hardware), TLM (Transaction Level Modeling) to generate H.265 video compression. Team meetings use Agile guidelines for daily reports and best practice procedures for product lifecycle management.

Used HLS (High Level Synthesis) tools to render C++ (including System C library) to a digital hardware description language [Register Transfer Level, (RTL) – VHDL/Verilog intermediate language]. The generated hardware implements the time domain horizontal filter for h.265 video compression. Used Matlab to assist with table generation. Wrote Perl script to generate millions of lines of C++ code including System C and Doxygen. The density of generated code is due to the high register count of SoC targeted for verification. Proprietary Qualcomm Perl libraries were used to access these registers.

CPU Tech, Pleasanton, CA, Contractor – OFP F-15 Jet, 11 – 2/12

Jovial, 1750A Assembly Language, Logic Analyzer, Agilent Oscilloscope. SourceSafe Software version control, Scripts: Perl, Excel Visual Basic, Linux BASH

Support new FPGA-based 1750A CPU implementation for Boeing F-15 Fighter Jets.

Worked on Navigation Pod with FLIR diagnostics firmware to verify behavior consistency of FPGA CPU with respect to original (1750A) CPU. Wrote many scripts in Perl, BASH and Excel Visual Basic to organize millions of lines of logic analyzer trace data into spreadsheets where errors could be pinpointed and diagnosed or proper operation verified.

HEWLETT PACKARD, Cupertino, CA, Permanent – QA 4/04 – 3/10

IA64 McKinley & EFI SCSI, Non-Stop Servers with Double and Triple Redundancy (Parallel Processing for Reliability), ClearCase, Intel IA64 Itanium (McKinley)

Worked as a member of QA team to develop test plans to verify Middleware and Halted State Services firmware including software and hardware rendezvous point and early fail mechanisms function according to spec.

(Intel) C Compiler, IA64 Assembly Language, Agilent Oscilloscope, ClearCase Software version control

HEWLETT PACKARD, Cupertino, CA, F/w Contractor 1/01 - 8/02

IA64 McKinley & EFI SCSI, IDE, USB, Drivers, Legacy-Free EFI (Ext. F/W Interface) 1.10, Boot Manager, IPMI, DIG64, ClearCase Intel IA64 Itanium (McKinley)

SCSI Driver: Acted as Liaison to 3rd party developer; Verify compliance to HP design requirements IDE Driver: Wrote Requirements Specification. Acted as Liaison to 3rd party developer; verified compliance to HP design requirements. This involves a detailed understanding of the USB specification, and the EFI specification

USB Driver: Wrote Requirements Specification. Acted as Liaison to 3rd party developer; verified compliance to HP design requirements. This involves a detailed understanding of the USB specification, and the EFI specification

Boot Manager: This is the text-based user interface that displays the choices for EFI operations, and dispatches the information selected by the user to the appropriate function. Similar to what one sees in BIOS when selecting new system parameters.

(Intel) C Compiler IA64 Assembly Language

Agilent JTAG Monitor / Debugger w/IA64 Breakpoint and disassembler

Agilent Oscilloscope ClearCase Software version control

Numerous highly detailed specifications, such as DIG64, ATAPI, etc

POWERWARE, San Diego, CA, F/w Contractor - UPS F/W & FPGA 9/99 - 1/01

UPS (Uninterruptable Power Supply) Firmware, using TI Tms320f243 DSP for Serial Flash Loader and Mixed Fixed Point DSP Arithmetic. Added code to integrate a download command from the Serial Port into the user interface that verifies and overwrites the firmware with the new downloaded code.

New features and maintenance for Altera 7128-S PLD using MAX+plus II. Modified glue logic to work properly. Added logic to generate a time domain filtered signal to protect the UPS high voltage hardware while the DSP is transitioning from Reset to Initialized and Operating mode, and the gate logic which selects the origin of this signal (FPGA or DSP).

Matlab, Texas Instruments Tms320f243 DSP, (TI) C Compiler / Code Composer Development Environment, JTAG Monitor / Debugger w/TMS320f243 Breakpoint and disassembler, TI TMS320f243 DSP Assembly language, Altera MAX+Plus II for schematic capture and sum-of-products logic implementation and simulation

RAYTHEON, Fullerton, CA, F/w Contractor - Radar Console Subsystem 2/99 - 9/99

AMD 29000 Simulator, Acquired the EPI (Embedded Performance, Inc.) 29K ICE, AMD 29000 RISC Assembly Language, PCI Bus, PLX 9080 PCI Controller.

Specification of RADAR Console Subsystem I/O Preprocessor communicating across a PCI bus (PLX 9080 PCI Ctlr).

Using excellent English Language skills, wrote the specification for replacing a minicomputer black box with a ‘RISC microprocessor’-based black box via dual PCI bus. Review the 3rd party hardware design for the PCI bus, which is implemented on the PLX chip.

Although I did code this, it was not part of my charter. I was hired solely to write the design. The permanent employee assigned to the coding task became unavailable, due to illness. The design was completed early, allowing me to step in and do the coding.

Datron World Comm., Escondido, CA, F/w Contractor - UHF Radio 12/98 - 2/99

Wind Rivers Tornado Development Environment (Green River C Compiler), VRTX operating system, MPC860 Assembly Language, JTAG Debugger, Techtronics Oscilloscope, Logic Analyzer

Transparent Mode Serial Communications Over Frequency Hopped UHF Military Bands. Motorola MPC860 PowerPC

Wrote code to transfer serial data from PCs or other sources connected to one wireless radio to another wireless radio (which may be connected to a PC or other serial device). Transmission could be with or without encryption, and with or without frequency hopping.

Mykotronx, Inc, Torrance, CA, F/w Contractor - Encryption / Comm. 7/98 - 9/98

C, ARM6 Assembly Language & on chip Digital Logic, Intel 8051 Assembly Language, PC-resident ARM6 simulator

Encryption Engine Firmware Maintenance for Secure SCSI Disk Drive and Secure Modem. ARM 6, Intel 8051. Studied this code, and passed the knowledge on to a permanent employee. This was mostly a reverse-engineering effort, necessary to keep a project afloat after an employee resigned without giving notice.

Kofax Inc, Irvine, CA, F/w Contractor - Commercial Scanners 2/98 - 7/98

C, 29000 Assembly Language, Oscilloscope, Kofax OS proprietary operating system, EPI 29K ICE, JTAG Debugger

Device Driver for PC-Based Accelerator Board Targeting High Speed Commercial Scanners. AMD 29000 Kofax manufactures a PCI board product that has an AMD 29000 processor. This product has a serial and parallel connector intended to connect to a commercial high speed scanner. The card will rapidly acquire images from the scanner, and write them to disk. Write code to interface new scanners. Work on bugs from a problem list.

Magtek Inc, Carson, CA, F/w Contractor - Color Credit Card Printer 2/97 - 2/98

Green Hills C Compiler, Intel i960 Assembly Language, JTAG Debugger, Oscilloscope, VOM, Altera MAX+Plus II for AHDL, schematic capture and sum-of-products logic implementation and simulation

Color Conversion, Rasterizing and Hue Adjustment Firmware. Thermal Printhead Resistance and Temperature Compensation Firmware. Co-Architected and Debugged i960JF / Altera FPGA based Color Printer board. High-Speed Serial and Parallel Communications Firmware including ECP/EPP; PCI Bus Built-in Test Software.

Magtek is a leader in the magnetic card strip reader industry. They make a color credit card printer, with the magnetic strip on the back. The product is a 2nd generation color credit card printer, to be brought up and tested for the first time. This involves diagnostic code for all the I/O ports, and new rendering algorithms. During the board bring up cycle, I identified opportunities for better performance, and worked with the board designer to get them implemented. Integrated the new rendering algorithms to the 1st generation software baseline. There was an issue with images becoming successively darker as more cards printed, and the head heated up. Energy commands (resistor/current) issued in rendering, based on temperature sensors, were used to correct the image degradation problem by applying color theory with precision contrast measurement data.

MegaDrive Systems, Chatsworth, CA, Software Engineer 1994 - 1997

6800 Assembly Language, JTAG Debugger, Oscilloscope, VOM, SCSI Bus Analyzer, AMD MACH Compiler and Simulator Software

Image Archival System Automatic Board Tester based on AMD MACH 465 FPGA for testing 140 signals; Built-in Test Software High-Speed Serial and Parallel Communications Firmware including SCSI; Motorola 6800.

Wrote code to monitor and report fan speeds, disk errors, etc. Wrote code to integrate multiple RAID station monitors using SPI master / slave protocol. Wrote diagnostics firmware and designed an FPGA for production test of all the signals visible to the CPU. Familiarity with SCSI protocol was essential to project.

Peerless Systems, El Segundo, CA, Software Engineer 1992 - 1994

C, Intel i960 Assembly, AMD 29000 Assembly, Peerless Page Operating System, Intel i960 ICE / JTAG Debugger & Logic Analyzer with disassembly, EPI (Embedded Performance, Inc.) 29000 ICE, Oscilloscope, VOM

Printer Drivers for Several Printer Engine Platforms, to Effect Rendering for HP PCL and Adobe Postscript.

The area of expertise within the Peerless team is Print Engine Driver, or PED. The function of this body of code is to relay front panel commands to the printer, report errors to the front panel, and accept images from the PCL and Adobe language interpreters, which are to be rendered according to the specifications of the printer for which the PED is designed.

Analog Technology Corp, Duarte, CA, Project Engineer 1988 - 1992

C, AMD 29000 Assembly, EPI (Embedded Performance, Inc.) 29000 ICE, AMD PALASM Logic Design and Simulation Tool, Oscilloscope, Logic Analyzer, VOM

Laser & Color Printers AMD 29000 RISC based controllers for LASER and color thermal printers. Serial and Parallel Communications Firmware.

My charter: To replace too slow Z80 printer technology with a very high performance printing technology. The solution was to convert the forth-like code to C, and use an AMD 29000 RISC processor. Since the company was small, I had an opportunity to design the hardware as well. Also, specified the EPI ICE for purchase. Wrote code to initialize the 29000, and all I/O, as well as write the interrupt routines. Used the ICE to verify the hardware and firmware, and to debug the code I would write to implement new features.

Interface Technology, Glendora, CA, Senior Engineer - ATE System 1984 - 1988

C (Green Hills), Motorola 6800x Assembly Language, Applied Microdevices 6800x ICE, D/A, A/D Converters Oscilloscope, VOM

Process Control Firmware controlling and monitoring D/A and A/D converters. GPIB/HPIB/IEEE 488 RS-232. Rehost of XINU, a UNIX-like kernel. Windows SDK-based Waveform Editor Application Software. ROM-Monitor.

Used GPIB and HPIB in a programmable black box that translates digital TTL levels to and from the Interface Technology 4004 Digital Word Generator and Pattern Analyzer to a Unit Under Test (UUT). To achieve this, the user could specify VIH/VIL voltages and VOH/VOL voltages, so that non-TTL digital signals could be acquired and generated by the 4004. This code uses D/A and A/D converters, with a precision 10.0 Volt reference to achieve the commanded voltages. Also worked on firmware in the 4004 to resolve bugs, and add new features.



Contact this candidate