James Hinnant

www.jameshinnant.com

hinnantj@aol.com

 

California, South Bay Area

 

Summary Design, code, optimization, and unit and integration test of real-time embedded software and firmware, including satellite flight software development and testing (unit, integration, validation/acceptance), on-orbit patch development, training simulator and ground segment software, and consumer electronics sensor and serial bus processing, with firmware running or residing on over 80 satellites on-orbit.
Education: M.S./B.S. Electrical Engineering with C.S. minor, Texas A&M-Kingsville.
 
Skills
Software: Software: C and C++ (gcc, Visual), assembly (8051 microcontroller, 1750A, RH-32), Unix tools (sed, awk, bash, GRUB2, U-Boot, gparted, sfdisk, gdisk, etc.), debuggers (gdb, Visual, Keil), Java, Netty / ActiveMQ / STOMP, Python, Ada, Matlab, gnuplot, SCM (git, Perforce, Swarm, Confluence, Jira, Subversion), test languages, IDEs (Visual, Rational Apex, Keil, NetBeans), Wireshark network analyzer, Ubuntu Server, Redmine Bitnami stack, FreeRTOS, FreeRTOS+Trace real-time diagnostics (Percepio's Tracealyzer runtime and GUI), etc.
Hardware: Lab equipment (logic analyzers, oscilloscopes, serial bus analyzers), serial buses (MIL-STD-1553B, RS-485, RS-232C, I2C, SPI), dev boards (ARM, Raspberry Pi, etc.), flight computers (Federal Systems ASPS & CCP, Honeywell RH-32, UTMC 8051), Perle IOLan DS1 TCP/IP-to-RS232C terminal server, MYK-14 Centurion encryption unit RS-232C driver, GSC OPTO32D Optoisolator PCI board, Acromag PMC482 Counter/Timer PCI board, Total Phase's SPI / I2C bus analyzers, emulators, JTAG H/W debuggers, UARTs, SN76477 sound chip, SP0256 voice synthesis chip, CTS256A text-to-speech chip, etc.
 
Experience Software Contractor (consultant to Spaces Systems/Loral subsidiary of Maxar), agent Kleen Koncepts Software Group LLC, San Jose and Palo Alto, CA, 2019-present.
  • NASA's Lunar Gateway, Power and Propulsion Element (PPE):
    Flight software development for the PPE's Mission Processor (MP), a computer serving as a watchdog and as a multi-protocol network gateway between the PPE and the Gateway's crew module.
    The PPE will be based on Maxar' FS-1300 geostationary satellite designs, and will provide Earth/Gateway and Moon/Gateway communications, solar and battery power, maneuvering thrust, and attitude control for the manned Lunar Gateway station in orbit around the Moon.
    • Early integration and driver development of flight software for RS-485 remote terminal serial bus interfaces on newly-adopted single-board computer for the MP, involving U-Boot, VxWorks 7, and gdb.
    • Porting of some of the flight software applications on the Mission Processor to 64-bit VxWorks 7 RTOS.
    • Previous task: Integrated VectorCAST unit test framework with PPE MP flight code in VxWorks 7 compilation environment, for flight code unit testing.
  • NASA's Psyche and Restore-L missions:
    Previous tasks: Code and unit test of Linux PCI device drivers and thruster timing application code on headless development boards, interfacing to optoisolator instrumentation boards used for thruster pulse timing verification, to be used for satellite flight software integration testing on lab hardware. Used gcc for coding, and oscilloscope, signal generator, and gdb (GNU Debugger) for debug and test.
     
    (The Space Systems/Loral division of Maxar is the world's leading provider of geostationary commercial satellites.)
Senior Firmware Engineer at Knowles Intelligent Audio (formerly Audience), Inc., Mountain View, CA, 2015-2016.
  • Audio project (Audience IP cores for audio processing on cellphones and tablets): Completed integration of Percepio Tracealyzer real-time diagnostics as a patch to FreeRTOS instances running on three Audience + Tensilica Xtensa IP cores on Xilinx vc709 FPGA, with C (gcc) and Perforce SCM. Debugged crashes in existing integration that were preventing release, and made stack analysis and other debugging tools for this effort. Made extensive in-house wiki in Confluence for installation and use of the Tracealyzer runtime and GUI; presented Tracealyzer and the wiki to the Mountain View and India firmware teams.
  • Motion / Sensor Hub project (Audience IP core for Android sensor hub core on cellphones and tablets): Code and test of sensor hub config commands with Android sensor batching host protocol over I2C bus, running on Audience + Xtensa core on vc709 FPGA. Updates to code and test of external I2C test host running on STM M4 ARM dev board (STM32L152RCT6 / ARM Cortex-M4), with Keil IDE and git SCM. Code and test of SPI driver for NXP ARM Cortex-M4F sensor hub on NXP LPCXpresso dev board. Debugged using Total Phase SPI serial bus analyzers.
Software Engineer, consultant to Spaces Systems/Loral (then a division of MDA, now of Maxar), agent Space Software Systems, Palo Alto, CA, 2010-2013.
Ground software design, code, and test at SSL/MDA (now the Space Systems/Loral division of Maxar).
  • Telemetry, Command, and Ranging Suitcase (TCRS): Upgrades to the TCRS in Visual Studio C++ to support SSL's latest generation of satellites. The TCRS is a semi-portable satellite simulator shipped by SSL's Ground Segment Test team to remote customer sites, for the development of customers' ground stations. Work included new data handling and GUI code for CCSDS packet telemetry, for commanding, and for RS-232C serial bus driver for command encryption/decryption in hardware, for Eutelsat and Optus 10.
  • TCRS port to Java: Completed initial port of TCRS to Java in a few weeks for NBNCo, with CCSDS telemetry piped to remote GUIs via ActiveMQ.
  • In-Orbit Test (IOT) software (Primate): Initial prototype in Python of software for new IOT satellite performance measurement platform, to be used to characterize on-orbit transponder and antenna performance during satellite checkout period. Prototype included SCPI handshaking to remote instrumentation racks and local GUI display of spectrum plots of rack data. Administration of Ubuntu server installs and Linux Mint desktop installs for the team, and, for project management and bug tracking, of a Redmine stack with Apache, SQL, Subversion, and Redmine server apps running on Ubuntu server, shared by the IOT and TCRS Java projects.
Senior Software Engineer, Flight Software Integration Group (Payload and Bus), Albin Engineering Services, Inc., on contract to Lockheed-Martin, Sunnyvale, CA, 2005-2009.
  • Responsible for design, code, and test of satellite payload and bus flight software integration tests, on lab hardware, for common utilities, EEPROM uploads, boot, initialization, vehicle configuration, anomaly detection/resolution, and off-nominal shutdown. Duties included analysis, debugging, and fix verification for problems determined during testing, and burning and verification of releases in EEPROM for functional verification by integration and test groups. Developed disassembly / logic analyzer log merge tool for worst case timing of flight processor boot process.
  • Analyzed and debugged Ada code, including use of target debuggers. Debugged real-time ethernet issues with Wireshark.
  • Developed many Unix shell tools (in sh/gawk/sed) to speed workflow, including various code generators and data filters. Coded and tested the great majority of common and batch scripts and Unix tools for the three areas I worked on at Lockheed (Bus Test, and Payload and Bus Integration).
Senior Software Engineer, Flight Software Test Group (Bus), Albin Engineering Services, Inc., on contract to Lockheed-Martin, Sunnyvale, CA, 2003-2005.
  • Responsible for design, code, and test of satellite flight software functional requirement tests on lab hardware, for boot, initialization, vehicle configuration, flight image loading, patching, memory management, and scrubbing.
  • Analyzed Ada code during debugging, and coded and debugged some test builds. Discovered and analyzed and reported to Rational a fatal bug in Rational's patching linker by patching between two test builds. Rational later fixed this in their product.
  • Helped integrators debug problems, mentored new engineers, and provided generic solutions to other engineers.
  • Coded, tested Unix utilities for the testers and integrators to speed the workflow, resulting in much time saved. Coded and tested flight software upload utilities.
Senior Software Engineer and Intelsat-IX ACS Tech Lead, subcontracted to Space Systems/Loral (now a division of Maxar), agent Aerospace Consulting Group, Inc., Palo Alto, CA, 1995-2002.
Responsible for design, code, real-time optimization, unit test, troubleshooting, documentation, and patching of satellite flight software for various applications on Loral's FS-1300 series of satellites, in Ada, 8051 assembly, C, and 1750A assembly. Sole telemetry flight firmware engineer for most of Loral's GEO programs during this time.
Projects included:
  • Major upgrades to Intelsat-IX telemetry and solar array drive software, including telemetry changes to accommodate splitting of flight computers. Tested on simulators and h/w targets; advised/troubleshot integration test at satellite manufacturing level. Advised engineers and testers on telemetry, software environment, test equipment. Supported later programs based on I-IX design (1996-2002).
  • 8051 microcontroller firmware on 1553-to-RS-485 command/telemetry hub for Satmex-6 and ipStar (sole 8051 firmware engineer on this project). Coded, hand-optimized for time and PROM, unit/integration tested, verified worst-case timing with oscilloscope. 8K lines of flight code and 14K lines of test code, most of it in 8051 assembly and the rest in C, all flying in 32K of PROM and 256 bytes of RAM on a radiation-hardened 8051. Produced full doc set (SRS, SDD, VDD) (2000-2002).
  • Major upgrades to MTSAT attitude control software (1996-1998). Updates to attitude control software for Chinasat-8, MCI-2, Telstar-7, Eurostar, Intelsat-IX (1996-2002). Updates to command software for Tempo, Panamsat-6, Intelsat-IX, Mabuhay (Agila)/Telstar/Apstar (1995-1996).
  • Development of code generators, code patch tools, and various other utilities, using shell, awk, and sed scripts under Unix. Coded and used a coverage analyzer that merged 8051 simulator output with disassembled 8051 flight build. Coded and used a bus instruction trace tool that merged logic analyzer output with disassembled 1750A flight build to help pinpoint root cause of random flight processor reboots to a wait state error in vendor's documentation, after a 9-month flight software team effort did not find the cause by code and coverage analysis.
Consultant, Booz • Allen & Hamilton, Inc. , at NASA Johnson Space Center, Houston, TX, 1992-1993, 1994-1995.
Software development on various astronaut training simulators for NASA.
NASA Space Station Training Facility (SSTF), subcontracted to Hughes-Link
  • In the Onboard Computer Systems group (OBCS), designed, coded, and tested several class objects for the firmware controller 1553 interface, part of the simulation of the Station's 1553 network; integration-tested on SGI Challenge targets (including 1553 bus logging and analysis, with serial bus analyzers).
Satellite Ground Station Training System, contractor for Booz • Allen & Hamilton internal project
  • Ported satellite operations manual to real-time C, for training model of customer's satellite, including sensor, controller, and actuator models.
NASA Shuttle Mission Training Facility (SMTF) , subcontracted to CAE-Link
  • PDR design for training model of the entire Space Station Data Management System, to be run on the Shuttle Mission Simulator, including all on-orbit computers and networks. Also coded and ran filters for comparing and plotting flight Shuttle Canadarm Robotic Arm data vs. simulator-modeled arm data, in C.
Contract programmer, Bridgeway Software, Inc., Houston, TX, 1992; C, Win SDK, Paradox DB Engine.
 
Education Texas A&I University / Texas A&M University, Kingsville, TX.
M.S. in Electrical Engineering, C.S. Minor.
B.S. in Electrical Engineering, C.S. Emphasis.
Neural network flight control simulation in C++ (M.S. thesis): Designed, coded, and tested 12K-line OOP NN/MRAC controller model, with NASA F-8 aircraft math models, and associated control system and matrix math block libraries.
    The Application of Neural Networks to Flight Control:   • at Proquest.   • at Google Scholar.

8051-based home security system (senior project for B.S. Electrical Engineering): Designed, coded, and tested all firmware for the project, including sensor and actuator processing and RS-232C driver for voice synthesis coprocessor handling. Analyzed board's functionality for the group.
Lab instructor for undergraduate digital systems and control systems labs.
High school summer project: Coded Conway's Life cellular automata algorithm in 6809 assembly, on a TRS-80 Color Computer with 4KB RAM and an audiocassette storage drive.
 
Training IEEE-Boston, EL805: Embedded Linux Board Support Packages (BSPs) and Device Drivers, 2019.
IEEE-Boston, EL201: Introduction to Embedded Linux, 2017.
Coursera, Development of Real-Time Systems, August 2016, cert. AK2DMQNP5E49.
STMicroelectronics STM32L4 low-power ARM Cortex M4 dev board seminar, Santa Clara, October 21, 2015.
First PocketQube Workshop, for the CubeSat-derived PocketQube tinysat, by Kentucky Space at NASA Ames, April 17, 2014; attendee.
Export Control / ITAR briefings at Space Systems Loral, 2011 and 2012.
 
Memberships The Institute of Electrical and Electronics Engineers (IEEE), and the IEEE Robotics and Automation, Aerospace and Electronic Systems, and Controls Systems Societies.
 
Volunteering Eagle Scout. Past merit badge counselor and webmaster (CA), Senior Patrol Leader and Assistant Scoutmaster (TX). First Lego League coach (2006, 2013-2015).