PCB Instrument Panel

Description
I designed an instrument panel to be used with Microsoft Flight Simulator.
This "instrument panel" displays flight data like speed, heading, and altitude on different 7-segment displays.
Additionally, there are cockpit switches and rotary dials for user input.
Technical Overview

-Utilizes an ARM Cortex M4 on the Tiva C Launchpad development board
-All seven segment displays are multiplexed by the microcontroller
-Displays are controlled through MCP23017 port expanders, which communicates with the mcu on an I²C bus.
-All LEDs are supplied current through a 74HC541N line driver, in series with 330Ω resistors.
-Microcontroller communicates with a PC client over UART
-PC client utilizes SimConnect SDK to interact with flight simulator.
-In each UART packet, the first 3 bits identify the data being sent, and the last 5 bits represent the data (some data is split in 2 parts)
-Switch data is sent upon edge-triggered interrupts, and flight data is read with a polling mechanism.
-MCU code is written in C, whereas PC client code is written in C++.