Search NASA⌕ Search

SEARCH · Search NASA

Results for “PROGRAMMER”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 577 records · Page 32

Transformations of software design and code may lead to reduced errors

The capability of programmers and non-programmers to specify problem solutions by developing example-solutions and also for the programmers by writing computer programs was investigated; each method of specification was accomplished at various levels of problem complexity. The level of difficulty of each problem was reflected by the number of steps needed by the user to develop a solution. Machine processing of the user inputs permitted inferences to be developed about the algorithms required to solve a particular problem. The interactive feedback of processing results led users to a more precise definition of the desired solution. Two participant groups (programmers and bookkeepers/accountants) working with three levels of problem complexity and three levels of processor complexity were used. The experimental task employed required specification of a logic for solution of a Navy task force problem.

Connelly, E. M.↗

Program For A Pushbutton Display

Programmable Display Pushbutton (PDP) is pushbutton device available from Micro Switch having programmable 16X35 matrix of light-emitting diodes on pushbutton surface. Any desired legends display on PDP's, producing user-friendly applications reducing need for dedicated manual controls. Interacts with operator, calls for correct response before transmitting next message. Both simple manual control and sophisticated programmable link between operator and host system. Programmable Display Pushbutton Legend Editor (PDPE) computer program used to create light-emitting-diode (LED) displays for pushbuttons. Written in FORTRAN.

Busquets, Anthony M.↗

Software packager user's guide

Software integration is a growing area of concern for many programmers and software managers because the need to build new programs quickly from existing components is greater than ever. This includes building versions of software products for multiple hardware platforms and operating systems, building programs from components written in different languages, and building systems from components that must execute on different machines in a distributed network. The goal of software integration is to make building new programs from existing components more seamless -- programmers should pay minimal attention to the underlying configuration issues involved. Libraries of reusable components and classes are important tools but only partial solutions to software development problems. Even though software components may have compatible interfaces, there may be other reasons, such as differences between execution environments, why they cannot be integrated. Often, components must be adapted or reimplemented to fit into another application because of implementation differences -- they are implemented in different programming languages, dependent on different operating system resources, or must execute on different physical machines. The software packager is a tool that allows programmers to deal with interfaces between software components and ignore complex integration details. The packager takes modular descriptions of the structure of a software system written in the package specification language and produces an integration program in the form of a makefile. If complex integration tools are needed to integrate a set of components, such as remote procedure call stubs, their use is implied by the packager automatically and stub generation tools are invoked in the corresponding makefile. The programmer deals only with the components themselves and not the details of how to build the system on any given platform.

Callahan, John R.↗

Incremental Parallelization of Non-Data-Parallel Programs Using the Charon Message-Passing Library

Message passing is among the most popular techniques for parallelizing scientific programs on distributed-memory architectures. The reasons for its success are wide availability (MPI), efficiency, and full tuning control provided to the programmer. A major drawback, however, is that incremental parallelization, as offered by compiler directives, is not generally possible, because all data structures have to be changed throughout the program simultaneously. Charon remedies this situation through mappings between distributed and non-distributed data. It allows breaking up the parallelization into small steps, guaranteeing correctness at every stage. Several tools are available to help convert legacy codes into high-performance message-passing programs. They usually target data-parallel applications, whose loops carrying most of the work can be distributed among all processors without much dependency analysis. Others do a full dependency analysis and then convert the code virtually automatically. Even more toolkits are available that aid construction from scratch of message passing programs. None, however, allows piecemeal translation of codes with complex data dependencies (i.e. non-data-parallel programs) into message passing codes. The Charon library (available in both C and Fortran) provides incremental parallelization capabilities by linking legacy code arrays with distributed arrays. During the conversion process, non-distributed and distributed arrays exist side by side, and simple mapping functions allow the programmer to switch between the two in any location in the program. Charon also provides wrapper functions that leave the structure of the legacy code intact, but that allow execution on truly distributed data. Finally, the library provides a rich set of communication functions that support virtually all patterns of remote data demands in realistic structured grid scientific programs, including transposition, nearest-neighbor communication, pipelining, gather/scatter, and redistribution. At the end of the conversion process most intermediate Charon function calls will have been removed, the non-distributed arrays will have been deleted, and virtually the only remaining Charon functions calls are the high-level, highly optimized communications. Distribution of the data is under complete control of the programmer, although a wide range of useful distributions is easily available through predefined functions. A crucial aspect of the library is that it does not allocate space for distributed arrays, but accepts programmer-specified memory. This has two major consequences. First, codes parallelized using Charon do not suffer from encapsulation; user data is always directly accessible. This provides high efficiency, and also retains the possibility of using message passing directly for highly irregular communications. Second, non-distributed arrays can be interpreted as (trivial) distributions in the Charon sense, which allows them to be mapped to truly distributed arrays, and vice versa. This is the mechanism that enables incremental parallelization. In this paper we provide a brief introduction of the library and then focus on the actual steps in the parallelization process, using some representative examples from, among others, the NAS Parallel Benchmarks. We show how a complicated two-dimensional pipeline-the prototypical non-data-parallel algorithm- can be constructed with ease. To demonstrate the flexibility of the library, we give examples of the stepwise, efficient parallel implementation of nonlocal boundary conditions common in aircraft simulations, as well as the construction of the sequence of grids required for multigrid.

VanderWijngaart, Rob F.↗

G(sup 4)FET Implementations of Some Logic Circuits

Some logic circuits have been built and demonstrated to work substantially as intended, all as part of a continuing effort to exploit the high degrees of design flexibility and functionality of the electronic devices known as G(sup 4)FETs and described below. These logic circuits are intended to serve as prototypes of more complex advanced programmable-logicdevice-type integrated circuits, including field-programmable gate arrays (FPGAs). In comparison with prior FPGAs, these advanced FPGAs could be much more efficient because the functionality of G(sup 4)FETs is such that fewer discrete components are needed to perform a given logic function in G(sup 4)FET circuitry than are needed perform the same logic function in conventional transistor-based circuitry. The underlying concept of using G(sup 4)FETs as building blocks of programmable logic circuitry was also described, from a different perspective, in G(sup 4)FETs as Universal and Programmable Logic Gates (NPO-41698), NASA Tech Briefs, Vol. 31, No. 7 (July 2007), page 44. A G(sup 4)FET can be characterized as an accumulation-mode silicon-on-insulator (SOI) metal oxide/semiconductor field-effect transistor (MOSFET) featuring two junction field-effect transistor (JFET) gates. The structure of a G(sup 4)FET (see Figure 1) is the same as that of a p-channel inversion-mode SOI MOSFET with two body contacts on each side of the channel. The top gate (G1), the substrate emulating a back gate (G2), and the junction gates (JG1 and JG2) can be biased independently of each other and, hence, each can be used to independently control some aspects of the conduction characteristics of the transistor. The independence of the actions of the four gates is what affords the enhanced functionality and design flexibility of G(sup 4)FETs. The present G(sup 4)FET logic circuits include an adjustable-threshold inverter, a real-time-reconfigurable logic gate, and a dynamic random-access memory (DRAM) cell (see Figure 2). The configuration of the adjustable-threshold inverter is similar to that of an ordinary complementary metal oxide semiconductor (CMOS) inverter except that an NMOSFET (a MOSFET having an n-doped channel and a p-doped Si substrate) is replaced by an n-channel G(sup 4)FET

Mojarradi, Mohammad↗

Miniature Intelligent Sensor Module

An electronic unit denoted the Miniature Intelligent Sensor Module performs sensor-signal-conditioning functions and local processing of sensor data. The unit includes four channels of analog input/output circuitry, a processor, volatile and nonvolatile memory, and two Ethernet communication ports, all housed in a weathertight enclosure. The unit accepts AC or DC power. The analog inputs provide programmable gain, offset, and filtering as well as shunt calibration and auto-zeroing. Analog outputs include sine, square, and triangular waves having programmable frequencies and amplitudes, as well as programmable amplitude DC. One innovative aspect of the design of this unit is the integration of a relatively powerful processor and large amount of memory along with the sensor-signalconditioning circuitry so that sophisticated computer programs can be used to acquire and analyze sensor data and estimate and track the health of the overall sensor-data-acquisition system of which the unit is a part. The unit includes calibration, zeroing, and signalfeedback circuitry to facilitate health monitoring. The processor is also integrated with programmable logic circuitry in such a manner as to simplify and enhance acquisition of data and generation of analog outputs. A notable unique feature of the unit is a cold-junction compensation circuit in the back shell of a sensor connector. This circuit makes it possible to use Ktype thermocouples without compromising a housing seal. Replicas of this unit may prove useful in industrial and manufacturing settings - especially in such large outdoor facilities as refineries. Two features can be expected to simplify installation: the weathertight housings should make it possible to mount the units near sensors, and the Ethernet communication capability of the units should facilitate establishment of communication connections for the units.

Beech, Russell S.↗

The Princess Elisabeth Station

Aware of the increasing impact of human activities on the Earth system, Belgian Science Policy Office (Belspo) launched in 1997 a research programme in support of a sustainable development policy. This umbrella programme included the Belgian Scientific Programme on Antarctic Research. The International Polar Foundation, an organization led by the civil engineer and explorer Alain Hubert, was commissioned by the Belgian Federal government in 2004 to design, construct and operate a new Belgian Antarctic Research Station as an element under this umbrella programme. The station was to be designed as a central location for investigating the characteristic sequence of Antarctic geographical regions (polynia, coast, ice shelf, ice sheet, marginal mountain area and dry valleys, inland plateau) within a radius of 200 kilometers (approx.124 miles) of a selected site. The station was also to be designed as "state of the art" with respect to sustainable development, energy consumption, and waste disposal, with a minimum lifetime of 25 years. The goal of the project was to build a station and enable science. So first we needed some basic requirements, which I have listed here; plus we had to finance the station ourselves. Our most important requirement was that we decided to make it a zero emissions station. This was both a philosophical choice as we thought it more consistent with Antarctic Treaty obligations and it was also a logistical advantage. If you are using renewable energy sources, you do not have to bring in all the fuel.

Berte, Johan↗

Investigating the Simulink Auto-Coding Process

Model based program design is the most clear and direct way to develop algorithms and programs for interfacing with hardware. While coding "by hand" results in a more tailored product, the ever-growing size and complexity of modern-day applications can cause the project work load to quickly become unreasonable for one programmer. This has generally been addressed by splitting the product into separate modules to allow multiple developers to work in parallel on the same project, however this introduces new potentials for errors in the process. The fluidity, reliability and robustness of the code relies on the abilities of the programmers to communicate their methods to one another; furthermore, multiple programmers invites multiple potentially differing coding styles into the same product, which can cause a loss of readability or even module incompatibility. Fortunately, Mathworks has implemented an auto-coding feature that allows programmers to design their algorithms through the use of models and diagrams in the graphical programming environment Simulink, allowing the designer to visually determine what the hardware is to do. From here, the auto-coding feature handles converting the project into another programming language. This type of approach allows the designer to clearly see how the software will be directing the hardware without the need to try and interpret large amounts of code. In addition, it speeds up the programming process, minimizing the amount of man-hours spent on a single project, thus reducing the chance of human error as well as project turnover time. One such project that has benefited from the auto-coding procedure is Ramses, a portion of the GNC flight software on-board Orion that has been implemented primarily in Simulink. Currently, however, auto-coding Ramses into C++ requires 5 hours of code generation time. This causes issues if the tool ever needs to be debugged, as this code generation will need to occur with each edit to any part of the program; additionally, this is lost time that could be spent testing and analyzing the code. This is one of the more prominent issues with the auto-coding process, and while much information is available with regard to optimizing Simulink designs to produce efficient and reliable C++ code, not much research has been made public on how to reduce the code generation time. It is of interest to develop some insight as to what causes code generation times to be so significant, and determine if there are architecture guidelines or a desirable auto-coding configuration set to assist in streamlining this step of the design process for particular applications. To address the issue at hand, the Simulink coder was studied at a foundational level. For each different component type made available by the software, the features, auto-code generation time, and the format of the generated code were analyzed and documented. Tools were developed and documented to expedite these studies, particularly in the area of automating sequential builds to ensure accurate data was obtained. Next, the Ramses model was examined in an attempt to determine the composition and the types of technologies used in the model. This enabled the development of a model that uses similar technologies, but takes a fraction of the time to auto-code to reduce the turnaround time for experimentation. Lastly, the model was used to run a wide array of experiments and collect data to obtain knowledge about where to search for bottlenecks in the Ramses model. The resulting contributions of the overall effort consist of an experimental model for further investigation into the subject, as well as several automation tools to assist in analyzing the model, and a reference document offering insight to the auto-coding process, including documentation of the tools used in the model analysis, data illustrating some potential problem areas in the auto-coding process, and recommendations on areas or practices in the current Ramses model that should be further investigated. Several skills were required to be built up over the course of the internship project. First and foremost, my Simulink skills have improved drastically, as much of my experience had been modeling electronic circuits as opposed to software models. Furthermore, I am now comfortable working with the Simulink Auto-coder, a tool I had never used until this summer; this tool also tested my critical thinking and C++ knowledge as I had to interpret the C++ code it was generating and attempt to understand how the Simulink model affected the generated code. I had come into the internship with a solid understanding of Matlab code, but had done very little in using it to automate tasks, particularly Simulink tasks; along the same lines, I had rarely used shell script to automate and interface with programs, which I gained a fair amount of experience with this summer, including how to use regular expression. Lastly, soft-skills are an area everyone can continuously improve on; having never worked with NASA engineers, which to me seem to be a completely different breed than what I am used to (commercial electronic engineers), I learned to utilize the wealth of knowledge present at JSC. I wish I had come into the internship knowing exactly how helpful everyone in my branch would be, as I would have picked up on this sooner. I hope that having gained such a strong foundation in Simulink over this summer will open the opportunity to return to work on this project, or potentially other opportunities within the division. The idea of leaving a project I devoted ten weeks to is a hard one to cope with, so having the chance to pick up where I left off sounds appealing; alternatively, I am interested to see if there are any opening in the future that would allow me to work on a project that is more in-line with my research in estimation algorithms. Regardless, this summer has been a milestone in my professional career, and I hope this has started a long-term relationship between JSC and myself. I really enjoy the thought of building on my experience here over future summers while I work to complete my PhD at Missouri University of Science and Technology.

Gualdoni, Matthew J.↗

Volumetric Shaping of Nanoparticle-DNA Crystals by Light-Induced Milling

DNA-programmable self-assembly enables the formation of nanoparticle crystals with controlled lattice symmetry. While this approach offers the formation of complexly ordered nanostructures for optical, mechanical, and biological applications, a mesoscale control over such nanomaterials is limited. Directing the material formation process through the assembly pathway or external fields allows for modulating crystal morphology, but achieving arbitrary morphology remains challenging. Here, we present a photothermal method for shaping 3D DNA-programmable crystals of gold nanoparticles. Through local heating of nanoparticles due to plasmonic light absorption, we induce targeted volumetric dissolution of specifically defined crystal areas with micron-scale accuracy. This technique effectively prescribes crystal shaping and creates arbitrarily shaped voids within crystals. We further investigate both computationally and experimentally the key factors governing volumetric material subtraction. The developed automated light-milling platform enables the fabrication of nanomaterials exhibiting both DNA-programmable nanoscale order and custom-designed mesoscale architecture.

36 MATERIALS SCIENCE↗

Ultra-Light, Strong, and Self-Reprogrammable Mechanical Metamaterials

Versatile programmable materials have long been envisioned that can reconfigure themselves to adapt to changing use cases in adaptive infrastructure, space exploration, disaster response, and more. We introduce a robotic structural system as an implementation of programmable matter, with mechanical performance and scale on par with conventional high-performance materials and truss systems. Fiber reinforced composite truss-like building-blocks form strong, stiff, and lightweight lattice structures as mechanical metamaterials. Two types of mobile robots operate over the exterior surface and through the interior of the system, performing transport, placement, and reversible fastening using the intrinsic lattice periodicity for indexing and metrology. Leveraging programmable matter algorithms to achieve scalability in size and complexity, this system design enables robust collective automated assembly and reconfiguration of large structures with simple robots. We describe the system design and experimental results from a 256-unit cell assembly demonstration and lattice mechanical testing, as well as demonstration of disassembly and reconfiguration. The assembled structural lattice material exhibits ultra-light mass density (0.0103 g/cc) with high strength and stiffness for its weight (0.01117 MPa and 1.1129 MPa, respectively), a material performance realm appropriate for applications like space structures. With simple robots and structure, high mass-specific structural performance, and competitive throughput, this system demonstrates potential for self-reconfiguring autonomous metamaterials for diverse applications.

Robotics↗

Programmed synthesis of mesoporous protein crystals in cellular reactors

Protein crystals are naturally derived mesoporous materials with versatile structures and physicochemical properties. Here we introduce an intracellular synthesis platform that enables controllable and programmable protein crystallization. In live cells, we show that, after initial nucleation, steady protein expression governs crystal growth, yielding predictable, tunable dynamics in live cells. Exploiting this feature, we combined HaloTag and click chemistries to achieve modular, programmable immobilization of diverse guest materials with spatial patterning down to ~100 nm resolution. We further demonstrated the sequential release of immobilized materials in physiologically relevant fluids. As a proof of concept, we programmed particles to carry human fibroblast growth factors in distinct layers, which elicited designed oscillatory Akt signalling patterns in cell culture. Finally, this work outlines a programmable method for producing mesoporous materials, with possible applications in catalysis and biomedicine.

Yang, Hongru [Johns Hopkins Univ., Baltimore, MD (↗

Radiation Effects on Network on Chips (NoC) Laboratory Directed Research and Development (LDRD) project

This project was motivated by State-of-the-Art (SOTA) technology that incorporates Network on Chips (NOC) for efficient data communication across the various computer kernels. For example, on the AMD Versal Field Programmable Gate Arrays (FPGA), an NoC has been incorporated for fast data communication from the programmable logic and other computer kernels (processing system, adaptable intelligence engines, etc.). The radiation effects on the legacy technology of this FPGA, such as the programmable logic, are well understood, and established methods exist to measure cross-sections when new families/generations are released; however, newly incorporated technologies, such as the NoC, are not fully understood and could introduce new failure points into the mission space.

36 MATERIALS SCIENCE↗

New principles of self‐organization created through the interplay of DNA condensates, microtubules, and motors

Bioinspired design—which holds great promise for a new generation of materials that are robust to defects, scalable under green manufacture, environmentally responsive, and programmably reconfigurable—requires mastery over molecular self-organization. Yet, from its specific mechanisms to most general architectures, the principles governing self-organization remain poorly understood and not even fully enumerated. For living systems, one obvious architectural principle is the modular reuse of a few simple molecular components in myriad combinations to achieve more complex phenomena. For example, the mechanical tasks of a cell are driven by the nonequilibrium dynamics of cytoskeletal filaments and molecular motors—the same filaments and motors, reprogrammed by a variety of modulators, perform tasks ranging from cell movement to division. Similarly, many compartmentalization tasks are performed by liquid-like condensates of simple components, which act as membraneless organelles to localize particular molecules in space and time (e.g. for gene regulation or RNA processing). In a few cases, condensates combine and interact with the cytoskeleton to create still more complex phenomena, e.g. the nucleation of microtubule asters from the centrosome (a protein condensate) to form the mitotic spindle during cell division. Very little is known about the fundamental mechanisms of such filament-plus-condensate phenomena. Despite few examples, the landscape of behaviors that can be achieved through the combination of condensates, filaments, and motors appears vast. However, exploration has been hindered by a lack of systems that have sufficiently programmable and dynamically tunable interactions between component condensates, filaments, and motors. We proposed to combine programmable DNA condensates, filamentous microtubules, and light-controlled motors into self-organizing systems whose principles go beyond those that have been observed in nature. In one limit, our systems will use microtubules and motors to create the molecular analog of a network of roads, which will organize droplets of DNA condensates capable of carrying molecular cargo. DNA condensates coupled to motors will flow from one microtubule aster hub to another, with their direction and timing controlled by DNA circuits. In another limit, microtubules will swim through bulk DNA condensates and exhibit strong interactions with boundaries between different types of condensates. Microtubule swimmers will reflect, get trapped, or refract at boundaries, under a mechanical analog of the classical optical index of refraction. DNA condensates having different mechanical indexes of refraction will be used to construct the analog of optical lenses, so that microtubule swimmers can be manipulated like light—collimated, diffracted, focused, and sorted based on properties analogous to wavelength. These two limits define two new architectures, within which multiple new mechanistic principles for self-organization will be discovered and explored. To explore these architectures, the motor-based coupling between DNA condensates and filaments will be controlled in time and space through the use of opto-proteins that create reversible links between DNA condensates and motors upon illumination. For each principle of interest, patterns of light will create virtual experiments by defining patterns of activity where DNA condensates walk along filaments, or filaments swim through condensates, and patterns of inactivity which will serve either as controls, or as boundary conditions vital to create the desired phenomena. This research serves the goals of Basic Energy Sciences Biomolecular Material Program by elucidating the principles by which the emergent, nonequilibrium behavior of collections of DNA condensates, motors, and microtubules can be programmed by environmental light patterns to create complex motion and materials transport. Because DNA condensates can be readily coupled to virtually any high performance nanomaterial, from carbon nanotubes, to metal nanoparticles, to light harvesting systems, this work provides a path to the construction, self-maintenance and reconfiguration of materials relevant to the Department of Energy.

60 APPLIED LIFE SCIENCES↗

A comparison of time-shared vs. batch development of space software

In connection with a study regarding the ground support software development for the Space Shuttle, an investigation was conducted concerning the most suitable software development techniques to be employed. A time-sharing 'trial period' was used to determine whether or not time-sharing would be a cost-effective software development technique for the Ground Based Shuttle system. It was found that time-sharing substantially improved job turnaround and programmer access to the computer for the representative group of ground support programmers. Moreover, this improvement resulted in an estimated saving of over fifty programmer days during the trial period.

Forthofer, M.↗

The Multimission Image Processing Laboratory's virtual frame buffer interface

Large image processing systems use multiple frame buffers with differing architectures and vendor supplied interfaces. This variety of architectures and interfaces creates software development, maintenance and portability problems for application programs. Several machine-dependent graphics standards such as ANSI Core and GKS are available, but none of them are adequate for image processing. Therefore, the Multimission Image Processing laboratory project has implemented a programmer level virtual frame buffer interface. This interface makes all frame buffers appear as a generic frame buffer with a specified set of characteristics. This document defines the virtual frame uffer interface and provides information such as FORTRAN subroutine definitions, frame buffer characteristics, sample programs, etc. It is intended to be used by application programmers and system programmers who are adding new frame buffers to a system.

Wolfe, T.↗

IPLIB (Image processing library) user's manual

IPLIB is a collection of HP FORTRAN 77 subroutines and functions that facilitate the use of a COMTAL image processing system driven by an HP-1000 computer. It is intended for programmers who want to use the HP 1000 to drive the COMTAL Vision One/20 system. It is assumed that the programmer knows HP 1000 FORTRAN 77 or at least one FORTRAN dialect. It is also assumed that the programmer has some familiarity with the COMTAL Vision One/20 system.

Faulcon, N. D.↗

The CDF software package

The concepts that are fundamental to the new Common Data Format are outlined. With Pilot Climate Data System (PCDS) Version 4.0, the Common Data Format (CDF) will supersede the Climate Data File (also CDF) or earlier versions. This new format incorporates generalizations in both design and terminology that make it applicable to multidisciplinary data sets. Furthermore, the new CDF will be made available to programmers as a software package that shields them from the low-level details of file formats. The CDF interface routines create an abstract conceptual environment for the scientific programmer. The principle concept for visualizing a CDF is known as the basic grid. A basic grid is an n-dimensional block by means of which a CDF is constructed. The size of the block may vary from one CDF to another, but is consistent within any individual CDF. Thus, the basic grid serves as a fundamental uniform building block for a CDF. The number of grid dimensions and the size of each dimension are chosen by the scientist/programmer to represent the patterns by which data are structured. The uniform grid structure appears to the programmer to be propagated into each record for each variable. The CDF stores a variable value for each lattice point of the grid for each record. These data values are inserted and retrieved simply by specifying the variable's identifier, a record number, and the indices that specify the lattice point of interest.

Wilson, C. E.↗

New capabilities and recent research programs of the NASA/Army CH-47B variable-stability helicopter

The CH-47B is the third in a series of variable-stability helicopters developed and operated by NASA since 1952 to investigate helicopter and VTOL handling qualities. Recently, several new capabilities were added to this helicopter to enable it to better support new and evolving research requirements. The installation of a programmable force-feel system for the evaluation pilot's conventional cyclic stick, and a four-axis side-stick controller permit a range of in-flight investigations concerning manipulator characteristics and augmentation system features that had not been possible with earlier NASA research helicopters. A recently installed color electronic display system with a programmable symbol generator will permit the investigation of display formats for a variety of VTOL and helicopter missions. Finally, a powerful new general-purpose flight computer is now in operation. It is programmable in high-level languages and will provide more efficient support of research programs. In addition to these new hardware capabilities, flight-control software has been developed to improve the in-flight simulation capability of the aircraft. A brief description of the CH-47B's variable-stability research equipment is provided, recent research programs are summarized, and some remarks concerning the potential of the helicopter are presented.

Hindson, W. S.↗