Howto:C172P Cockpit Project

From FlightGear wiki
Jump to navigation Jump to search

This Howto will develop into a detailed project plan for building a C172P Instrument Panel. While not a step by step guide, it will include details on the prototyping, design and building of a panel. The project includes the following major activities:

Open Identified Tasks

Task Description Blocking Factors/Action Items/Progress Status
Bench Power Supply
  • Finalize Design
  • Purchase Aluminum
  • Order 24 Pin Socket
  • Figure out how to make square holes in aluminum without a laser.
  • Make a Bending Brake
  • Bend Some Tin (ok aluminum, but the traditional phrase says "tin".)
  • Test what load Resistor on which voltage will turn on the power supply
    • I suspect that 5 volts, 5 ohms, 1 amp will turn on the supply.
    • That's 5 watts. Have 50 watt resistor.
  • Drill Mounting Holes for Load Resistor
  • Cut holes for Meters and Binding Posts (Banana Jacks)
  • Mount the ATX power supply in the hand built case
Scheduled for Late October 2016
Flightgear Rasberry Pi Client
  • Using Node.js and possibly Rx.js
  • Demonstrated Node server sending and receiving data to Flightgear properties telnet server
  • Created Single Data Structure for all Flightgear properties
  • Working with a list of these structures
  • Investigate Exporting/Importing the data from XML files
Ongoing
Program an AtMega chip with SPI and I2C interfaces
  • Install AtMega Programming tools
  • Initial demo without crystal
  • Send and receive data from Raspberry Pi
Unstarted - Scheduled for Late October 2016
Port Expander Demo
  • 3 to 8 or 4 to 8 demultiplexer
  • SPI port Expander driven from Raspberry Pi
  • Serial to Parallel from AtMega
  • Light some LEDs
  • Detect some switch transitions,
    • on-off (Taxi Lights)
    • on-off-on (KMA20 switches)
    • momentary contact (frequency swap)
  • Deal with debouncing
Unstarted - Scheduled for Q4 2016
Rotary Encoder Demo
Unstarted
Air Coil Demo
Unstarted
Frequency Display Demo
Unstarted
Template
  • Task List
Status
Template
  • Task List
Status

Description

The work product will match an actual C172P cockpit instrument panel as closely as possible given constraints of tool availability, time and money.

Versions:

  1. A set of rotary encoders and switches in an overlay for a regular monitor
  2. Expand the project to include items in the radio stack
  3. Replace the monitor with individual instruments

Design Alternatives

  • Instruments
    • Monitor Overlay
    • Individual Instruments
  • Multi-value inputs
    • using potentiometers and ADC ports
    • Using magnetic encoders with:
      • AtMega driven pins
      • SPI
      • I2C
  • Display of Numeric and Alphabetic data
    • driven by Maxim Max7221 on an SPI interface
    • driven directly by an AtMega processor
  • Banks of switches and rotary encoders with a multiplexed parallel interface
  • Raspberry Pi connected to one or more AtMega Processors via SPI or I2C
  • Raspberry Pi connected to a 4 to 16 bit multiplexer to select SPI data
  • Raspberry Pi responsible for interfacing raw data to flightgear property values
  • Display of numeric and alphabetic data using 7 and 16 segment displays
    • drive with AtMega chip and Transistors
    • drive with Maxim Max7221CNG Integrated Circuit
  • AtMega Processors with port expanders responsible for raw data
  • AtMega Processors communicate with Raspberry Pi
    • Using SPI
    • Using I2C
  • Telnet interface to Flightgear runs on Raspberry Pi
    • C programming language


== Code Development Activities

Client to Flightgear protocol

=== Client to AtMega protocol

Pi Client

AtMega Client

Magnetic Encoders

  • For Heading Adjusters on Instruments
  • Replacement for Rotary Encoders
  • Replacement for Potentiometers


Proof of Concept and Prototyping Activities

Client on PI

Communication with Flightgear using Telnet

  • Change the value of a cockpit switch
  • Read the value of a Com or Nav Radio's frequency
  • Change a standby frequency
  • Make a standby frequency the in use frequency
  • Dim and brighten the instruments
  • Move the throttle
  • Move one of the control surfaces

SPI

  • different speeds
  • Error Detection and re-transmission
  • Client to ATMega
  • Client to Max7221
  • Client to Port Expander

I2C

  • different speeds
  • Error Detection and re-transmission
  • Client to ATMega
  • Client to Port Expander

Client on AtMega

Communication

  • I2c
  • SPI
  • Raw Data Protocol

Data Acquisition

  • Switch
  • Rotary Encoder
  • Magnetic Encoder
  • Potentiometer

Control Data

  • Air Core
  • Stepper Motor
  • Lighting Level


Building

Hardware Choices

  • AtMega Models
  • Raspberry Pi III
  • for 7 and 16 segment displays
    • Max7221
    • or 7 Segment Driver Transistors
  • 4 to 16 Multiplexer
  • Magnetic Encoder
  • Rotary Encoder
  • Slider Potentiometer:
  • Power Supply: Bench Supply based on an ATX PC power supply
  • Knobs
    • Heading Adjusters
    • Radio Stack Volume
    • Radio Stack Frequency Select
    • Radio Stack Buttons
    • Rotary Switches
    • Rocker Switches
    • Toggle Switches
    • Main Switches
    • Magneto Switch
    • Flaps Lever: Design the Mechanism to attach to a rotary switch