Summary
Overview
Work History
Education
Skills
Languages
Software
Interests
Timeline
Patent
Generic

Robert Bennett

Scottsdale,AZ

Summary

Robert is an Electronics Engineer skilled in developing software, firmware and hardware. Examples include both Industrial and Consumer products: Smart Lamps, IoT enabled devices, vehicle control systems, server storage systems, solid state hard drives, printers, telephony equipment, and cross platform GUI application development.

Overview

30
30
years of professional experience

Work History

Firmware Engineer

Tomar Electronics
01.2022 - 04.2025
  • Developed firmware for ARM-based SoCs creating various lamp control and smart lamp capabilities for use in vehicles and for static displays (e.g., emergency vehicle lighting, race track signaling, beach condition displays, and road construction signaling).
  • Implemented firmware for four Firmware R&D initiatives
  • Implemented firmware for 8+ separate lamp control projects completing each project in 3 months (24 months total)
  • Writing bare metal startup
  • Performing hardware bring-up
  • Writing feature functionality
  • Writing manufacturing tests
  • Completing Firmware functionality on customer ready hardware.
  • Ensured compliance with coding standards and best practices during development.
  • Provided technical support by troubleshooting issues in deployed firmware applications.

Senior Consulting Firmware Engineer

Sensata Technologies
03.2021 - 12.2021
  • Developed the firmware recovery task for a thermal control head test-fixture (typically used for validating the operating temperature range of AMD and Intel processors), using embedded Linux running on the Raspberry Pi Compute Module. The recovery task for the project monitored the states of all embedded tasks and the network connection in order to keep the unit from entering a destructive state of operation (e.g., preventing damage to the unit under test that the equipment was attached to by detecting when the thermal head was operating too hot or too cold, restarting tasks as necessary.
  • Vendor Digital Prospectors

Senior Consulting Software Engineer

Spectranetix
06.2020 - 02.2021
  • Developed firmware for an aviation communication system by bringing up Yocto Linux and writing drivers (initially for a TI AM5728/9 development board and then for a Xilinx ZYNQ UltraSCALE+ MPSoC firmware development system).
  • Vendor PROTINGENT INC

Senior Consulting Software Engineer

Microsoft
05.2019 - 04.2020
  • Developed the keyboard firmware for the “Surface Neo” computer project (see the 13 minute point in the YouTube video here). The keyboard uses a Nordic nRF51/52 ARM Cortex M series SOC. I used FreeRTOS, writing tasks for GPIO keyboard scanning, PWM LED intensity control, drivers and additional tasks to manage battery charging and battery status - using various libraries (e.g., the Nordic SDK for internal SOC device primatives, the Nordic Soft Device BLE protocol stack for wireless BLE RF communications, and the NXP WLC interface library for wireless NFC communications), and I used FreeRTOS functions (enabling dispatched tasks to signal each other, send and receive event messages, perform task delays, etc. as well as enabling interrupt handlers to send signals and event messages to tasks).
  • Vendor Zensa LLC

Senior Software Engineer

Benchmark Electronics
07.2018 - 03.2019
  • Responsible for creating a variety of embedded demo firmware applications and device drivers using Nordic ARM Cortex M series SOCs and Microchip PIC SOCs by using various RTOS (FreeRTOS, ThreadX, Zephyr, Nuttx, etc.) and simple bare metal task dispatchers to demonstrate Benchmark’s capabilities at trade shows and to prospective clients. Firmware projects included demos in C and C++ for wireless medical heart rate and temperature sensors. Projects exhibiting secure wireless voice communication. Wireless tag projects exhibiting extreme battery power management techniques. Projects showing physical location within a predefined mesh network. And projects demonstrating LTE-M cellular IoT connectivity. Created device drivers for various RTOS (ThreadX, FreeRTOS, Zephyr, etc.).

Senior Software Engineer

AgJunction
09.2017 - 06.2018
  • Helping create auto-steering and machine control functions for farm equipment including tractors, combines, etc. For one project I modified the existing CAN device driver (itself written in C), to capture certain CAN messages emanating from a specific manufacturers’ farm equipment and converting the CAN messages into Qt signals that were then sent to specific Qt slots. Upon receiving the Qt signals the video control task then prioritized active video sources and established the appropriate video feed for the equipment operator view on the monitor. I fixed various Yocto build errors for several projects - mostly related to bad URLs for remote packages and/or for Bitbake issues that cropped up after updating packages.
  • Subsequently acquired by Kubota in 2021

Senior Consulting Software Engineer

Intel Corporation
04.2017 - 09.2017
  • With Intel’s IOTG’s (Internet of Things Group), creating embedded systems software and firmware to support the Intel Retail SDK. I worked on 3 aspects of the SDK:
  • PIC-32 vending machine firmware (implemented in C), designed as the interface to all physical aspects for vending machines, performing product selection by keypad or LCD touch screen, prompting for and receiving payment via MDB/ICP com port bill acceptors, coin acceptors/change makers and credit card readers, and for dispensing product by use of PWM driven motors while monitoring delivery progress at various sensors).
  • Intel NUC mini-PC Linux/Windows entry level vending machine applications, interfacing to the above PIC-32 vending machine firmware. Written to manage the vending machine inventory (via SQL database) and to be the secure WiFi/Ethernet interface through which the owner/manager configures, monitors and controls vending operations.
  • Intel NUC mini-PC Linux/Windows kiosk controller application, capable of interacting with the public via camera and LCD display to provide information and advertising (based on constructing the user’s profile (e.g., male/female, young/old, etc.) from the camera image of the person) geared toward making the interaction with the vending machine more captivating and to provide product advertising based on their profile – and adding profile information to the database – helping the owner understand what products sell best to particular customer profiles in their markets.

Senior Consulting Software Engineer

Knox Company
01.2016 - 12.2016
  • Working with hardware and software developers, reviewing schematics and documentation, etc. I created an IoT enabled vault, (intended to retain medical drug and implements for emergency vehicles), I created the embedded device firmware (based on TI ARM Cortex SOCs and using the TI RTOS, the firmware’s prime task was to implement a secure TLS/SSL/AES link to an SQL database on a secure server running a Knox command API written in Jason responding to inbound vault database read/write commands to track e-tagged items put into and taken out of the vault in real time as the emergency crew performed emergency trips, from initially loading the med-kit into the vault and retrieving medications from the vault on an as-needed basis. One task brought up the secure link while another task monitored and logged med-kit NFC tag changes. While other tasks used the BSP I wrote and the device drivers I wrote for interfacing SPI, I2C and GPIO devices that ran battery charging operations, maintained the RTC for time-of-day event logging, kept the Watch-Dog running properly, managed keypad and button scanning and ran the lock’s stepper motor and/or solenoid locking and unlocking operations.

Firmware Engineer

Esselte/XYRON
09.2014 - 01.2016
  • For the “Leitz Icon” award winning label printer. Click on this link to see the printer in action.
  • Firmware projects:
  • The IOT WIFI/USB printer, using 2 SOCs (a PIC32 and an Atmel with embedded ARM cortex M core and 1 WiFi module).
  • The cost-reduced USB only printer (using 1 SOC an Atmel with embedded ARM cortex M core).
  • The IOT Bluetooth printer, using 2 SOCs and 1 BLE module ((a PIC32 and an Atmel with embedded ARM cortex M core and 1 WiFi module).
  • Additionally, Robert created the initial GUI test programs in C++ using the Embarcadero cross-platform tool-chain, demonstrating printer operation on Windows 7, macOS & OSx, iOS and android platforms. This test program became the basis for manufacturing test programs and for the Leitz Icon label printing main application).

Senior Consulting Software Engineer

HGST
02.2012 - 09.2014
  • Worked with ASIC designers to develop the embedded ARM Firmware that managed the PCIe/NVME/PQI endpoint.
  • He also created a QEMU hardware interface emulation environment for emulating NVME/PQI hardware (before the ASIC hardware became available) This enabled early development and debug of both the host side OS device drivers and the drive side NVMe SSD drive Firmware (created by others).
  • Then Robert prototyped the “HDM” (HGST Drive Manager), a cross-platform enterprise class hard-drive management utility using Visual Studio and C++. After the prototype showed promise, he helped convert the Visual Studio GUI Microsoft Windows Server application project into a cross-platform Java project, enabling “HDM” to run on Windows Server, Solaris, CentOS and other server platforms.
  • HDM is used to this day. The user guide for HGST Device Manager page can be viewed at this link.
  • Vendor Oxford International

Senior Software Engineer

Intel Corporation
09.2000 - 02.2012
  • Leading the VxWorks RTOS team, porting the WindRiver RTOS for the Intel XScale ARM SOCs. These VxWorks ports were used on several Intel RAID hard-drive controllers and Intel NAS reference designs. I helped create the VxWorks BSPs (board start-up packages) for several ARM XSCALE targets and created device drivers for XScale ARM SoC peripherals such as the SATA & SAS hard-drive interfaces, DMA engines, and for communications interfaces (UART, I2C & SPI).
  • I also created a series of BIOS for server reference board designs showcasing Intel processors from the Atom to Xeon class server platforms (implementing both UEFI BIOS and Legacy BIOS).
  • I also created several software applications. I wrote a FLASH recovery utility in Python (used to update Firmware on Intel SCSI PCI/PCIe hard drive controllers). I wrote a PCIe interface diagnostic to evaluate and test new versions of XScale ARM silicon. And I wrote a BIOS EFI application (requested by a customer) to sequentially stagger hard-drive spin-up at power-on, enabling their servers to use a much less expensive power supply.
  • I also participated in silicon validation and silicon tiger team efforts:
  • Developing Windows hardware drivers using Jungo WinDriver and Visual Studio C++ projects to validate hardware interface functionality.
  • Developing test code using Python and Visual C++; helping to bottom out on silicon design & fab issues.

Senior Software Engineer

Hypercom
09.1998 - 09.2000
  • Working on Hypercom networked telephony products. Developing firmware for telephone call control for line and trunk interface cards. I also assisted in developing both the ISDN and VoIP digital telecom protocol stacks.
  • Subsequently acquired by VeriFone Systems in 2011

Senior Software Engineer

Vodavi
01.1985 - 01.1998
  • Supervising other engineers to create PBX and key-telephone systems.
  • Call processing control firmware - Using C and assembly language I created firmware for main system boards, implementing Station features, Trunk features, SMDR logging, etc. where the communications backbone ran (HDLC) High-Level Data Link Control as the communication protocol used for transmitting data between boards, where the “data” contained voice connection event messages, and other call control information and event messaging.
  • Line card firmware - Using C and assembly language I created a proprietary RTOS, many RTOS drivers, RTOS tasks to control telephone and keyset interface boards and trunk interface boards (for the T1 digital trunk board, the ISDN digital-trunk board) and for analog trunk boards (loop-start, ground-start and E&M). For the 256 port PBX system, I created a DSP conference board, using C and assembly language (with Q16 data types for simple signal processing tasks) – Robert also created a non-DSP conference board design (utilizing a Mitel Conference chip) which was less expensive to manufacture, and ported the board Firmware to this design..
  • Hardware - Using CAD and various HDL and visual vendor tools I synthesized logic and performed simulations to create an ASIC, FPGAs, GAL/PALs etc., and assisted in component selection, and PCB board layouts and reviews.
  • I created an ASIC for the 1st implementation of my patent, which networked digital voice data between all end-points in Vodavi PBX systems. I designed various analog circuits (e.g., amplifiers, filters, power supplies), and I worked on tiger teams to acquire UL/CSA/CE and FCC certifications.
  • Windows software applications - Using Delphi and C++ Builder I helped create these GUI applications.
  • The PBX System configuration application.
  • The remote monitor application.
  • The SMDR billing application.
  • The Front-Desk Attendant application.
  • Subsequently acquired by Vertical Communications in 2006

Education

BSEET - Electronics Engineering Technology

DeVry Institute of Technology
Phoenix, AZ
09-1977

Skills

  • Software Languages: C, C, Delphi, Python, assembly language, Windows & DOS Batch, PowerShell, Bash, C Shell, etc
  • IDEs: Visual Studio, RAD Studio/C Builder, Qt Creator, K-Develop, Eclipse, Code Composer, Infineon’s PSoC Creator, Microchip`s MPLAB X, Segger IDE, Debugger & tools, Atmel Studio, IAR, TI CCS, ARM uVision, etc
  • Software Tool Chains: Microsoft Visual Studio (C, C, NET, C#) Embarcadero RAD Studio (C, C Builder, Delphi) GNU, MinGW, Cygwin (GCC, GDB, Binutils, etc) WolfSSL, Qt/QML, SQL, C-Tree database engine
  • OS: Windows, DOS, FreeBSD, Linux (Ubuntu, Debian CentOs, etc), Embedded Linux (MonteVista, WindRiver, uClinux)
  • RTOS: FreeRTOS, VxWorks, Nucleus, TI-RTOS, Zephyr, Nuttx, ThreadX
  • Version Control: GIT, GItUIB, SVN, CVS, PVCS, ClearCase, bitbucket, Jira, etc
  • DevOps: Azure, make, CMAKE, Jenkins, Gerrit, Yocto, Docker, SDLC, etc
  • Debug: GDB, JTAG, SWD, ITP, ICE, ROM EMULATOR, QEMU
  • Algorithms: ECC, CRC, LRC
  • CAD: OrCAD, P-Cad, ProCad, Eagle, Altium Designer
  • Logic: PAL, GAL, CPLD, FPGA, ASIC (HDL, RTL, Verilog, PALASM, ABEL, etc)
  • Memory: NAND-FLASH, SPI FLASH, EPROM, EEPROM, DRAM, SRAM, DDR/2/3, DIMM, DMA controllers
  • Peripherals: USB, SPI, I2C, I2S, CAN, RS232/485, ADC, DAC, CODEC, Timers, PWM, DMA, GPIO, 10/100/1000 Gigabit Ethernet, TCP/IP, UDP, WIFI, Bluetooth, SAS, SCSI, BMS/Battery-Charger/Management, etc
  • Protocols: SNA, SDLC, HDLC, Async RS232/485, CAN, TCP/IP, UDP
  • Hardware: PCI/PCIX/PCIe, Lithium-Ion batteries, DC motors, stepper motors, solenoids, LCDs, key-pads, key-boards, touchscreens
  • Telephony: ISDN, VoIP, T1, E&M, DID, LS, GS, SLT (pots) & advanced key-telephone interfaces, Automated Attendant, ACD, IVR
  • Wireless: WiFi, Bluetooth BLE, LTE-M & FM RF modules
  • Processors and Microcontrollers: ARM: Cortex A8, A53, R4, R5, M0, M3, M4, Intel StrongARM and XScale (IOP series 303, 310, 315, 321, 331,& IOP332) and Marvell XP series Atmel, Broadcom, ST, TI, Infineon, and Xilinx) Intel: Core i3/i5/i7, ATOM to XEON & old school 8051, 8080/8085 80188, 80186 & 80386EX Microchip: PIC 8, PIC 16, PIC 32 NXP/Motorola: 68000, 68302, 68360, PowerPC, 6805, 6809 Nordic: nRF51822, nRF52832, nRF52840 TI: TM4C series ARM, Sitara AM5729 & TMS320 series Xilinx: ZYNQ UltraSCALE MPSoC EV devices (ARM/DSP/FPGA) Zilog: Z8, Z80 & Z180
  • Office Tools: Microsoft Office (Word, Excel, Project, Power-Point, Visio, Outlook), Microsoft Teams, Apache Open Office, Zoom, etc

Languages

English
Native or Bilingual

Software

C language

C

ARM Assembly Language

X86 Assembly Language

8080/Z80 Assembly language

Python

Interests

Bicycling and Walking

DIY Electric skateboards (eg, battery management systems and motor control

DIY Automobile security (eg, wifi kill switch)

DIY Home wireless control (hot water wireless control, lamp control)

DIY zero point power generation

Android application development for DIY projects

Home DIY projects (flower garden, sprinkler control system, etc)


Timeline

Firmware Engineer

Tomar Electronics
01.2022 - 04.2025

Senior Consulting Firmware Engineer

Sensata Technologies
03.2021 - 12.2021

Senior Consulting Software Engineer

Spectranetix
06.2020 - 02.2021

Senior Consulting Software Engineer

Microsoft
05.2019 - 04.2020

Senior Software Engineer

Benchmark Electronics
07.2018 - 03.2019

Senior Software Engineer

AgJunction
09.2017 - 06.2018

Senior Consulting Software Engineer

Intel Corporation
04.2017 - 09.2017

Senior Consulting Software Engineer

Knox Company
01.2016 - 12.2016

Firmware Engineer

Esselte/XYRON
09.2014 - 01.2016

Senior Consulting Software Engineer

HGST
02.2012 - 09.2014

Senior Software Engineer

Intel Corporation
09.2000 - 02.2012

Senior Software Engineer

Hypercom
09.1998 - 09.2000

Senior Software Engineer

Vodavi
01.1985 - 01.1998

BSEET - Electronics Engineering Technology

DeVry Institute of Technology

Patent

  • US Patent number: US-4998249-A
  • Created a hardware method for networking voice & data packets from one end-point to another in Vodavi PBX systems - greatly reducing the amount of discrete logic in Vodavi’s PBX systems.