Solo Photos

I soloed an airplane on the first day legally possible, my 16th birthday. So let’s step back to a bright summer day in Weatherford OK in 1994.

CFI Jack Sauer, Airplane C-152 N64849, and Student  Pilot Charles O’Neill in 1994

The first stop is not the airport. No, the first step to flying an airplane is sitting in a doctor’s office for a physical exam. When the weight of the paperwork equals the weight of the airplane, the airplane is said to be airworthy. With the medical certificate in hand, I’m off to the airport.

The airplane is a Cessna 152 with registration N64849. Looking at the FAA registration, she is a 1981 model and lives in LA nowadays. My flight instructor was Jack Sauer. I have no idea where he is now. He was initially quite skeptical of training a kid until a pre-preflight walk-around where I started naming aircraft parts and functions. Lesson learned: Know your stuff and doors open.


Afterwords, the traditional shirt-tail-cutting was performed.

Thanks to my parents for finding these long-lost photos.

Fortran Array Reordering Utility (Freo)

Fortran and C order their arrays differently. Fortran is column major; C is row major. There are performance implications to using the wrong order.
What do you do when you inherit a 10k+ line Fortran code written in C order? Regular expressions are not reliable. By-hand conversion takes too long and is fraught with human errors. So, I wrote the freo program in Scheme to flip the indicies of a specified function. Freo transposes Fortran indicies. It correctly converted the entire 12k line code in 54 files without human help in a few seconds.
Freo Converting Fortran Arrays in 4 files

Download exe file at: freo.exe and .scm code at: freo.scm. The code is not pretty and not optimal, but it does exist and does work. The code is compiled to a windows exe with Chicken Scheme.

Project: C Functions and Programs on the PIC 16F876

C Functions and Programs on the PIC 16F876
Charles O’Neill
September 2004

This project’s purpose is to become familiar with C programming on the PIC 16F876 micro-controller. Each of the four programs demonstrates a particular aspect of micro-controller C programming: mathematical operations, functions, simple data input, and pointers.

The micro-controller is a 28 pin DIP PIC16F876 manufactured by Microchip. The PIC voltage input is +5 volts DC via a µA7805 dc/dc voltage regulator. The compiler is the CCS C compiler (v. 3.207) for 14 bit PIC chips. C compilation occurs on a x86 based PC. Data transfer between the PIC and the PC is through a 9 pin serial cable.

The full project is available here.

Presentation: Aircraft Flight Dynamics with a Non-Inertial CFD Code

Aircraft Flight Dynamics with a Non-Inertial CFD Code
AIAA 2005-0230
Charles O’Neill
Jan 2005
Reno, NV

This project was presented as AIAA 2005-0230 and concerns coupling a non-inertial CFD code with a 6 DOF (degree of freedom) rigid body dynamics simulator. Quaternions are used for attitude orientation. The result is a computational aircraft flight dynamics simulation. The paper shows flight maneuvers such as rolls, loops, and thin-strip Magnus lift production.
Navion Roll with Rudder Deflection

The full presentation is available here.

Note: Step Response of Second Order Systems

Step Responses of Second Order Systems
Charles O’Neill
ca. 1998

Second order systems are fundamental to the analysis of systems with mass, stiffness and damping. This one-page note starts with the 2nd order characteristic equation and discusses three possible responses: over damped, critically damped, and under damped. The responses are given in the time domain.

The one-page summary is available here

Report: Low Reynolds Number Airfoils

Low Reynolds Number Airfoils

Charles O’Neill
November 30, 2001

Low Reynolds number flows concern flows with a small ratio of inertial to viscous forces. Laminar flow dominates this flow region. Low Reynolds number flight is the most common (birds, insects…) yet it proves difficult and inefficient in human controlled flight. This paper discusses and shows some characteristics of low Reynolds number flows.

Laminar Separation Bubble: From Reference 5

The short paper is available here.

Simpson Integration Rules Fast Derivation with B-Splines

Simpson Integration Rules
Fast Derivation with B-Splines
(including partial integrals)
Charles O’Neill
29 October 2010

The 3 and 4 point Simpson rules numerically integrate equally-spaced discrete data values. The 4 point rule is typically named Simpson’s 3/8 rule. This short note describes an interesting and fast derivation of Simpson’s  rules including the associated partial integrals. Non-multiple data point integration is discussed in a surprising finale to Simpson’s 3/8ths rule.

The full derivation is available here.

Project: Stepping Motor Control

Stepping Motor Control
Charles O’Neill
19 November 2004

This project’s objective is to describe and control a DC stepping motor. Qualitative stepper motor theory is presented. An example driver with schematic using the PIC16F876 programmed in C is included.

The mini-project is available here.

Project: Helicopter Rotor Unsteady Aerodynamics

Helicopter Rotor Unsteady Aerodynamics

Charles O’Neill
April 26, 2002

Helicopters can’t fly; they’re just so ugly the earth repels them.  
— Anonymous

This paper will discuss four areas of unsteady helicopter rotor aerodynamics. First, this paper discusses the classical harmonic solutions to rotational aerodynamics and their relationship to the fundamental Theodorsen  solution. Second, modern solution techniques are discussed. Finally, the paper describes wake interactions and their noise production implications.

From: A. R. S. Bramwell, Helicopter Dynamics. New York: John Wiley & Sons, 1976 

Unsteady helicopter aerodynamics are complicated. An understanding of the governing physics is possible by isolating simplified systems. Early contributions were based on harmonic analysis. These methods predicted the basic governing fluid physics and warned about blade-wake interactions. Most modern solutions are based on discrete flow representations and computational solutions. These solutions allowed high resolution studies of fluid flow at the expense of physical insight. These discrete flow methods confirmed the blade-wake interaction sensitivities. Blade-wake interactions are shown to create intense and directional disturbances.

The helicopter rotor is a fundamentally unsteady aerodynamic process. Rotor analysis goes from simple 1D shed vorticity models to fully 3D transient turbulent experiments. While the fundamentals of unsteady rotor ?ow are known, an overall theory with a closed form solution is clearly impossible. Further developments in unsteady helicopter aerodynamics will continue as long as the helicopter is a viable transportation vehicle.

The full paper is available here.