Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 2.89 KB

File metadata and controls

128 lines (91 loc) · 2.89 KB

Embedded Avionics Simulator

Embedded Avionics Communication Simulator (ARINC429 & CAN)

A modular embedded C simulation of avionics communication and control software. Includes both modular simulation and task-based real-time extension

  • Language: C
  • Architecture: Modular Embedded System
  • Protocols: ARINC429, CAN
  • Control: PID Altitude Hold
  • Testing: Unit Tests

System Architecture

flowchart LR
    S[Altitude Sensor<br/>Sensor Simulator] -->|ARINC429 Message| A[ARINC429 Driver]
    A --> B[System Message Bus]
    B --> F[Flight Control Unit<br/>PID Controller]
    B --> M[Monitoring Module]
    F -->|CAN Message| C[CAN Bus]
    C --> D[Actuator Driver]
    C --> T[Telemetry Node]
    D --> E[Elevator Actuator]
Loading

Features

  • ARINC429 encoding and decoding

  • parity validation

  • CAN bus queue simulation

  • PID-based altitude hold controller

  • modular subsystem structure

  • unit tests

Build

This project can be compiled with a C compiler or Visual Studio C++ compiler.

Visual Studio Developer Command Prompt / Developer PowerShell

Build main application:

cl /EHsc /I include src\main.c src\arinc429.c src\can_bus.c src\flight_control.c src\sensor_sim.c src\actuator.c src\system_bus.c

Build tests:

  • ARINC429
cl /EHsc /I include tests\test_arinc429.c src\arinc429.c
  • CAN test
cl /EHsc /I include tests\test_can.c src\can_bus.c
  • Flight control test
cl /EHsc /I include tests\test_flight_control.c src\flight_control.c

Tests

Includes tests for:

  • ARINC429

  • CAN bus

  • flight control

Verification Results

Example simulation output:

Decoded altitude from ARINC429: 1200 ft
Target altitude: 1500.0 ft
Altitude error: 300.0 ft
Actuator elevator command: 81

Unit test status:

test_arinc429: PASS
test_can: PASS
test_flight_control: PASS

Real-Time Extension

A task-based simulation was added to approximate real-time embedded behavior.

The system includes:

  • Sensor task (100 ms)
  • Flight control task (50 ms)
  • Actuator task (100 ms)

Tasks communicate using message queues and run concurrently using threads.

This demonstrates a simplified RTOS-style architecture.

Future Work

  • AFDX (Avionics Ethernet) communication simulation
  • ARINC653 partitioning
  • RTOS-based task scheduling (QNX / FreeRTOS)
  • Extended Kalman Filter navigation

Note

Designed with safety-oriented embedded software practices such as explicit status codes, defensive checks, modular interfaces, requirement-tagged comments, and unit tests.The simulator is inspired by avionics software architecture, the repo uses DO-178-like practices but not a certified DO-178 artifact.

Author

Vasan Iyer
Embedded Software / Flight Controls Engineer

Focus areas:

  • Embedded C
  • Flight controls and flight dynamics
  • Avionics protocols: ARINC 429, CAN
  • Navigation and control
  • PID-based control systems

GitHub: https://github.com/Vaiy108