The Cheron Group, Inc.

Ron Gross

Updated: 19 Oct 2022
SUMMARY: Thirty nine years work experience in software/firmware design and development for embedded/open systems and applications development, including seven years of software engineering management. Focus is on embedded systems, communications, robotics, and engineering management.
SOFTWARE: OS: DOS, Windows (XP, Vista, 7, 8, CE, Mobile 6), VxWorks, UNIX, VRTX, Nucleus, C-Exec, Windows CE, Salvo, PharLap TNT, Micrium uC/OS-II, Linux, uTasker, Keil MDK-ARM, QNX Neutrino, Spark OS
Code: C, C++, C#, VB.NET, Perl, PHP, MySQL, HTML, Java, CORBA, Assembly, Basic, Ladder Logic, Visual Basic, HART Device Description Language (DDL), XML, Qt
Compilers: Microsoft Visual C++, Visual Studio .NET/2003/2005/2008/2010, Microsoft Embedded C++, Borland C++, GNU 68k/gcc/g++, Franklin, Keil uVision, Avocet, Hi-Tech, Archimedes, Byte Craft, Introl, MetaWare High C, BSO/Tasking, IAR. Microsoft Visual Basic, MicroChip MPLab, Atmel AVR Studio, WinAVR GCC, Rabbit Semiconductor Dynamic C, Wind River Tornado, Arm-Linux-g++, Avr-gcc, Si-Labs, TI Code Composer, Tasking, QNX Momentics/GNU, Qt Creator
Assemblers: Microsoft MASM, Motorola, BSO/Tasking, IAR, MicroChip MPLab, Keil
Tools: Codewright Premia, Paradigm, Araxis Merge, Sparx Enterprise Architect, PEAK CAN Explorer, Jira/Agile
Source Control: IBM/Rational ClearTools/ClearCase/ClearQuest (Unix/NT), Intersolv PVCS, Microsoft SourceSafe, CVS/WinCVS, Perforce, AccuRev, SVN, TortoiseSVN, MKS Integrity, Git/Stash, TortoiseGit, SourceTree, GitHub
Web: PHP, MySQL, VBScript, ASP, JavaScript, JQuery Mobile
Protocols: Modbus RTU/ASCII, Modbus/TCP, TCP/IP, UDP/IP, Fieldbus, SECS/GEM, BACnet, LonWorks/LonTalk, Profibus, CORBA, proprietary (slotted-aloha, peer-to-peer, master/slave, patents), HART, HART Device Description Language (DDL), CAN, Apple iAP1/iAP2, Zigbee, BLE/Bluetooth
HARDWARE: CPUs: 8088/8086/80188EC/80186EC/80386EX, 8051, 68HC05/68HC08/68HC11, V8 RISC, ARClite, M16C, 68000/68010/68020/68060/68332, Z80/Z180, COP888, PIC16x/PIC18x/PIC32, HP80/HP200/HP300, TI MSP430, Atmel MegaAVR, Atmega128/Atmega169, Philips LPC2112 (ARM7), Z-World Rabbit Semiconductor RCM3400, Atmel ARM7, ARM9, PowerPC/PPC, TI TMS320 (c2808/c2812/c2835 DSP), Freescale ColdFire 5234, Infineon XC2000 (C166), ST STM32F4 (Cortex-M4), Freescale i.MX1/i.MX6 (ARM Cortex A9), BCM2386 (quad ARM Cortex A7), nRF52x, nRF53x
Emulators/ICE: Beacon, Nohau, Motorola, Microtek, Metaware, MicroChip RealIce, P&E Microsystems, TI JTAG, Atmel ISP, IAR J-Link (EWARM, EW MSP430), Keil, GDB, Eclipse, NetBurner, Spectrum XDS510/XDS560, iSystems iC5000, CodeWarrior, uLink PRO, ARM MultiIce
Analyzers: American Arium, HP, Tektronix, Acute Logic, CommView, Wireshark
Other: Galil/Delta-Tau PMAC motion controllers, RadiSys VME, VME MicroSystems, AB/Modicon/Square-D/Schneider PLCs, Keithley-Metrabyte DAS, Z-World STD boards, OPTO-22, MCC iPort/AFM, Rockwell Flex I/O, TotalPhase Aardvark I2C, AccesIO DIO-32
Physical Layers: 232, 485, I2C, SPI, Ethernet, Power Line, microWire, Radio, FSK, HART, CAN, CAN/Fibre, Bluetooth/BLE
Firmware Architect
2017 to Present

Developed drivers, ftp client, and application layer code for IoT environmental sensor device, using Nordic nRF52832 (ARM Cortex-M4). System incorporates BLE, WiFi, pressure/temperature/volatile compounds/light/sound sensors and communicates to host/cloud system via multiple mechanisms (I2C and WiFi). Used nRF5 SDK for bare-bones OS

Developed nRF52-based personal air purifier that attached to a user’s nostrils. Measured breathing rates, particulates, temperatures, and pressures via onboard sensors and communicated with BLE host/central devices.

Developed BLE interface for a multi-sided gaming cube, including touch/movement sensor interfaces. Based on nRF52 processor.

Developed ear bud communications system using NFMI communications, controlled by an STM32 processor running FreeRTOS. Includes an audio codec and the NFMI driver chips.

The Cheron Group, Inc.
President/Owner/Software Engineering Consultant
1995 to Present (Contract Positions under my corporation)
Doble Engineering
July 2017 – August 2017

Developed BSP and build scripts (using Yocto project) to get Ubuntu 16.04 running on a Xilinx Zynq UltraScale+ MPSoC (quad ARM Cortex-A53 and dual ARM Cortex-R5) development system for proof of concept.

Abierto Networks
May 2017 - July 2017

Developed Ubuntu Linux daemon (using systemd) and application to support kiosk system. Applications are developed in Qt, using QT Creator.

April 2017 - May 2017

Developed Zigbee drivers, running on BusyBox linux, to interface to MMBNetworks module to provide Home Automation (HA) Profile for thermostats. Firmware is c-based, developed using Eclipse and a gcc cross-compiler.

TempControl Logic
2015-2017 (ongoing side work)

Developing distributed temperature monitoring and control system for home thermostats. Temperature sensors (indoor and outdoor) are based on Spark IO Core modules (ARM Cortex M3 running Spark OS) which communicate via WiFi TCP/IP with a main controller based on a Raspberry PI 2 (Ubuntu Linux running on a Broadcom BCM2836 / quad ARM Cortex A7). Main controller includes a local Spark Cloud and C++ application that controls multiple thermostat zones and communicates to remote LCD touch screen user interfaces. User interfaces are based on Raspberry-PI 2 and a capacitive touch screen, running a C++ application and Qt. Spark IO Core is an InternetOfThings device (IoT) and the development environment is Spark Dev. Investing usage of DecaWave DWM1000 devices (tags and anchors) to control temperature based on persons present - system uses ultra-wide band (UWM) for real time location services (RTLS) and communicates to Spark I/O and Raspberry devices using SPI.

September 2016 - December 2016

Developed Linux (Ubuntu) drivers for communicating with and controlling photovoltaic and electric vehicle system using Modbus/TCP, Modbus over TCP and Modbus/RTU to monitor and control power availability and usage. Firmware is developed using gcc C++, multiple threads, and is fully object-oriented.

June 2015 - August 2016

Developed Class II medical device (with Class B software) using STM32F4 device (ARM Cortex M4) hardware. Firmware includes Bluetooth (low energy, BLE), wireless (WiFi server and client), analog measurement process, LCD display, over-the-air (OTA) firmware updates, data logging, and manufacturing processes and services. Product is ‘C’ based, using gcc and IAR, and interfaces to a Broadcom radio chip using the WICED SDK (Broadcom provided). Development includes full IEC 62304 process, including requirements analysis, architecture and design documents, unit tests (via CppUTest), TDD (test driven development), and integration testing. Used Jira/Agile development process.

May 2015 - June 2015

Developed MSP430 (F5) boot loader for downloading new applications over serial interface of Class III medical device

PerkinElmer, Inc

Developed MSP430-based air-quality measurement equipment which collects data using multiple MSP430 devices and transmits the data to cloud storage via Wifi or cell modem. Rewrote low-level I2C drivers for multi-processor communications. Developed GPS and RTC data collection for positioning/time information. Added FatFs (fat files system using micro SD card) into TI-RTOS-based software. Code is C-code developed in TI's Code Composer Studio.

TransMedics, Inc.

Developed C++ USB and Bluetooth (shell) drivers (dev/resource manager) for communicating with Apple devices using Apple iAP1/iAP2 protocol to i.MX6-based (dual ARM Cortex-A9) system running QNX Neutrino 6.5 (POSIX RTOS). Developed C++ drivers for serial-based blood oxygen saturation/hematocrit sensors (SaO2 and SvO2) and blood flow sensors. Made modifications to BSP to support new features. Development environment consisted of QNX Momentics IDE (Eclipse-based), IP-based development boards, gnu tools, and bash scripts.

Recording Studio (Private)

Developed C++ test application running on PIC32 to control and collect data from a studio sound mixing board. Data is synchronized with SMPTE signals and transmitted to a PC/Mac application via USB.


Developed redundant CAN-based communications device to monitor switches and control display indicators. Protocol uses FEC (forward error correction) for additional protection. Code written in C/C++ using Keil uVision 5 and MDK-ARM RTOS. Runs on STMicrolectronics STM32F407 Cortex-M4 device. Developed CAN test suite using PEAK CAN Explorer system.


Developed CAN-based communications specification and rewrote code for dual-processor vehicle radar system, which contains inter-processor communications and external device communications. Code written in C and uses TMS320 (C28x core, Code Composer 5 with XDS emulator) and Infineon XC23xx (C166 core, Tasking compiler with iSystems iC5000 emulator). Developed C#/.NET (Visual Studio 2010) GUI application to communicate with device to collect data and control operations using XML database. Rewrote TMS320 boot loader application and upgraded C#/.NET GUI application used for programming device. Developed C#/.NET DLL for generic access to features within device.

Nuvera Fuel Cells

Developed a finite-state machine to control hydrogen fuel system. Incorporated Modbus/RTU and CAN interfaces to communicate to peripheral devices. Product is based on NetBurner MOD5234 (Freescale ColdFire 5234) boards, written in C and C++ and uses Eclipse development system with gcc tools.


Helped debug CAN communications between multiple PIC 18 devices and ethernet TCP/IP-based communications for infant security systems and wandering resident solutions. Products developed using MPLab C and CCS c compilers for PIC18 devices.


Developed communications, diagnostics, logging and touch screen code for Class III medical device. System is based on Atmel AT91SAM (ARM9) processor, running Micrium uC/OS-II. Developed C++ code using IAR EWARM and OOA/OOD methods, including using Enterprise Architect UML development tool. Developed communications simulator using Visual Studio 2010 C++. Wrote System Requirement Specs (SRS) and System Design Documents (SDD).

Beacon Power

Upgraded CAN communications system between embedded Linux-based host controller and TI TMS320-based slave devices. Multiple slave devices communicate synchronously to the host controller over 500k network. Upgraded CAN (can-bus) comms between slave devices and TMS320-based (c2812) power controller devices. Developed Linux-based multi-threaded tcp-based client/server system to provide supervisory control over multiple host controllers. Used RTP/RTCP, with proprietary codec, to transfer large streams of data over TCP. Developed VB.NET gui to interface to supervisor system. Developed logging, configuration and XML objects for controller software. Developed test software (user interface, simulations, and low-level) to validate communications and supervisory systems. Developed proposal for wireless mesh-network replacement of CAN-bus communications. Helped establish AccuRev as source control system. Software developed using C++/OO, XML, Visual Studio 2008 VB.NET, and Code Composer.

Seacoast Charter School

Developed Joomla-based website, including Fireboard forums, for small Charter School. Upgraded network communications to include wireless access points for Mac/WinPC machines. Installed file server, with user access control, for system storage/access.


Developed mult-threaded Modbus/TCP server for Debian Linux-based ARM7 embedded system. Code developed in C++/OO, with g++.


Developed 8051-based firmware (Keil uVision3) to monitor grease interceptors (tanks) and transmit data, via radio and phone line, to server. Developed PC application, including proprietary protocol, to communicate with field devices to retrieve raw data and alarms for database. Developed Windows Mobile 6 PDA application (Visual Studio 2008, VB.NET, Compact Framework 3.5) for field configuration/test of devices. Developed XML configuration editor for system configuration (C#, .NET).


Developed FTP server interface to RADIUS and TACACS+ verification systems. Developed hard-disk reset management algorithms. Enhanced/added-to Command Line Interface (CLI). Debugged MIB interface. PowerPC-based system, running VxWorks, monitors/controls flow of IP traffic.


Developed Modbus Master (RTU/ASCII) driver for ARM7 and AVR ATmega128 system. ARM7 runs Debian Linux, with code developed in C++. Used arm-linux-g++ and avr-gcc tools. Developed TCP/IP protocol to communicate between embedded controllers and Linux translator system (Ubuntu), which translates the protocol to HTML formatted requests for storage into a database.

Bel Fuse, Inc.

Developed software for a manufacturing test system for TI TPS2384-based Power-over-Ethernet (POE) modules. Used TotalPhase I2C and AccesIO DIO USB products and developed code using Visual Studio 2005 (VB.NET).

Axcelis Technologies, Inc.

Developed CORBA-based interfaces for communicating between GUIs and the control system (Windows and VxWorks). Developed drivers for new ION/TC gauges and updated the Rockwell Flex I/O interface to support new configurations. Provided support for the control system, in the way of bug fixes and enhancements. Control system is OO-based and developed using VC++ and Tornado.

Texas Instruments

Developed new version of a I2C/RS232-based bootstrap loader and runtime interface for new TI MSP430 flash-based parts using IAR C tools and Visual Basic. Bootstrap loader is used for downloading new code to Power-over-Ethernet (PoE) system for communicating with TI TPS2384 chips. Runtime interface code is for communicating between MSP430 and host system, with GUI-based test system modified to support I2C PC interface card (uses Visual Basic). Developed RS-232 and I2C protocol for communicating with next generation of TPS2384 firmware, with drivers to support both hardware interfaces in same VB and firmware applications.

TimeLab Corp

Developed a WinXP/2000 windows service to monitor system usage to control a new motherboard clock chip (TLC2900) via SMBus. Windows service and configuration application are C++ code developed with Visual Studio .NET.

Greenland, NH Town Website

Developed PHP/MySql-based town website that is completely database driven, using forms to update and add information.

AXTiming Systems

Developing high-speed automobile race timing system using multiple TI MSP430 processors, and a proprietary high-speed wireless network. Developing using IAR C compiler. Investigating using Zigbee or BlueTooth for communications system.

Masoneilan, Dresser, Inc.

Developed test firmware for validation of new hardware designs/production of valve controller running on Philips LPC2112 (ARM7). Developed Visual C++/MFC-based scripting interface for testing of HART interface. Developed BIOS test firmware to validate BIOS performance, running on Micrum uCos-II. Developed HART Device Description using HCF Device Description Language (DDL) using DD-IDE toolkit.


Developed doppler radar and gyroscope interface using Z-World Rabbit Semiconductor RCM3400 (enhanced Z180), using Dynamic C. Performed semi real-time sampling of doppler radar (digital inputs) and gyrcoscopic (serial interface) data. Developed software as a TCP-UDP/IP server, for transfer of data/information to a client. Used DHCP and socket communications methods. Developed Visual Basic client to test the serial and TCP/IP communications and allow configuration via the UDP/IP communications.

Texas Instruments

Developed I2C/RS232-based bootstrap loader and runtime interface for new TI MSP430 flash-based parts using IAR C tools and Visual Basic and Visual C++. Bootstrap loader used for downloading new code to Power-over-Ethernet (PoE) system for communicating with TI TPS2383 chips. Runtime interface code is for communicating between MSP430 and host system, with GUI-based test system modified to support I2C PC interface card (uses Visual Basic). Developed RS-232 and I2C protocol for communicating with next generation of TPS2383 firmware, with drivers to support both hardware interfaces in same VB and firmware applications. Uses Micro Computer Control PC-to-I2C bridge product (MCC iPort/AFM). Visual C++ used to develop PC-based downloader and test systems.

TempControl Logic

Developed Atmel MegaAVR ATmega169-based temperature controller for in-home multi-zone remote furnace control. Uses Atmel 'butterfly' system for LCD interface and proprietary RS-485 multi-master protocol for communicating amongst multiple remote displays and controllers. Any display/controller can show and/or control any other zones within the system. Developed using Atmel AVR Studio C compiler and ISP tools. Working on porting the proprietary protocol to BACnet.


Developed Modbus/TCP server (TCP/IP based) for current WebMaster product. Uses PharLap TNT OS running on 80386EX hardware. Developed using C++, BSD-type sockets and is multi-threaded, allowing a maximum number of clients to connect without requiring significant processing power.


Enhanced Slotted-Aloha master-slave power-line communications network for communicating with electric power meters. System incorporates software-based AGC using peak-detection. Developed using Hi-Tech C, on proprietary 8-bit RISC microcontroller (based on ARClite processor), using Salvo OS.

MKS Instruments

Managed software development team for recently introduced PICO leak detector, including supporting new product introduction and new features, maintenance of current systems, documentation control establishment of current procedures and sources, and developing fixes and/or new features. Product is multi-processor based, using a Motorola 68332 (in C) and 68HC08 (in C) for control and Windows CE (in C++) platform for the user-interface.

MTL Inc.

Ported a real-time distributed industrial I/O product (8051/8086 based) to a 8051/80186-based PCI single board computer with different memory sharing architectures.

Schneider Automation

Developed embedded Modbus, ASCII, and proprietary communications (patent applied for) networks for next generation programmable logic controller (PLC), based on Mitsubishi M16C processor.

Axcelis Technologies, Inc.

Developed preliminary prototype JAVA and CORBA based user interface for Ion Implanter for next generation control system.

BinTel Systems

Developed remote inventory control measurement system using strain-gauges, MicroChip PIC 16C773, and RF (radio) local area network.

EATON Corporation

Developed simulator for Kensington linear robot of high-energy implanter robot end-station. Involved in developing next-generation C++ based control architecture. Provided upgrade/maintenance support for in-house designed flat panel display handling system (robot). Upgraded communications interface software (using SECS/GEM) and installed on-site at Japanese customer. Product developed on UNIX platforms with 'C' code running on VxWorks.

dbi Corporation/Senea

Developed Slotted-Aloha and master-slave power-line communications network for communicating with electronic power meters. System incorporates software-based AGC using peak-detection. Developed, using Hi-Tech C, on proprietary 8-bit RISC microcontroller (based on ARClite processor).. Developed Perl scripts to modify code for embedding code into ASIC and FPGA. Debugged and maintained previous master-slave communications system.

IRIS Graphics, Inc.

Upgraded 80386SX-based control software to support new CPU and print head hardware. Ported pump control software using state-machine task-implemented methods. Involved in design of next generation software architecture. Added diagnostics tools for new print head.

H&L Instruments

Upgraded Z180-based serial-to-fiber SDLC repeater network and enhanced/debugged Visual C++ MFC-based configuration system.

ASTeX - Applied Science & Technology, Inc.

Developed control system software base for atomic fluorine generator. Provided I/O drivers for analog and digital I/O, LCD display and serial interface of 68HC11-based hardware. Developed downloadable system for upgrading FLASH-based product in the field. Provided embedded development training to in-house software engineer.

EATON Corporation

Developed robot control sequencing system for in-house designed flat panel display handling system for laptop displays. Interfaced to Delta-Tau PMAC controller using dual port ram and serial interfaces. Developed multi-tasking, message-based state-machine control tasks on UNIX workstations for multi-board 68020/68010 based control system, running VxWorks. Re-worked state-machine and serial drivers for interface to external Rorze robot.

dbi Corporation

Developed Slotted Aloha communications system, with master-slave and peer-to-peer functionality, for large scale power-line communications system based on National COP888 microprocessor. Debugged and maintained previous master-slave communications system.

H&L Instruments

Provided development support and performed design reviews for Z180-based serial-to-fiber repeater network.

Measurement Technology Ltd.

Developed prototype product based on 80C188 and 68HC05 multi-processor system, with a high-speed Modbus communications interface. Developed specifications for embedded diagnostics, boot-up and downloading functions. Consulted on systems development concepts. Specified development tools, including analyzers, emulators, networking tools, and Nucleus RTOS.

Borst Automation (Limburg, Germany)

Co-developed communications converter for Modbus to Profibus communications protocols.

MTL Inc.

Upgraded Windows hardware driver for interface card. Consulted on new product development. Managed company-wide Novell network. Established version control system using Intersolv PVCS.

  Transition Technology Inc./Measurement Technology Ltd.
Manager, Systems Development
1988 to 1994

Developed real-time distributed industrial I/O product (8051 and 80x86 based) and a patented communications protocol. Responsible for software system level design of full product line. Developed custom interfaces to third party hardware/software including Allen-Bradley, Modicon, RadiSys, and VME Micro. Responsible for technical development and applications support with worldwide OEM customers, including IBM and Fischer-Porter. Responsible for porting 80x86 based system to 68020, using OEM customer-developed real-time UNIX. Responsible for meeting with customers for applications support and/or to develop new products based upon customer needs. Worked on developing next generation product using worldwide communications standards such as Fieldbus, ISP, LonTalk, and WorldFIP and large count multi-processor system using 80C188, 68HC11 and 68HC05 based hardware. Developed STD-based software interface to I/O product. Developed driver for interface to OPTO-22 products.

Senior Software Engineer
1987 to 1988

Developed real-time control software for robotic control system running on IBM PCs, using Galil motion controllers, for ion implanters. Developed a real-time communications system for use on a communications controller board (80186 based) for PC to PC and PC to DAS (Z80 based) hardware using fiber optic links. Met with current and future customers to provide applications/installation support and to incorporate customer requirements into product. Developed early prototype for maintenance and diagnostics on VME 68020/VRTX based sub-system. Upgraded current product to touch-screen user interface.

  Caterpillar Inc.
Test/Software Engineer
1984 to 1987

Developed data acquisition systems based on IBM PCs (using Keithly-Metrabyte) and HP80, HP200, HP300 systems for in-house and customer tests. Developed prototype 68HC11 based system for next generation control systems, developing extensions for BSO/Tasking compiler on VAX. Designed new security and access control systems for facilities management. Added enhancements to 68000 and 6805 based engine/transmission control systems.

  ALCOA Corp., REA Magnet Wire
Control Systems Engineer
1983 to 1984

Developed plant process control systems, using Square-D and Allen-Bradley PLC's and embedded CPU boards, for the nation-wide REA wire plants. Added enhancements to current wire processing systems to triple throughputs.

TECHNICAL: U.S. Patent #5,021,777
     Mode-Selectable Communications System
EDUCATION: Indiana Institute of Technology, Fort Wayne, IN
     Bachelor of Science in Electrical Engineering