
This project implements a digital flight control mixer for a delta wing aircraft using a limited 8-bit IO interface.
Control and sensor data are received through the 8-bit input bus (ui_in) using a simple command-based protocol. Data is first sent as a command word to select a target register, followed by a data word to update that register. These registers represent control inputs and internal system states.
The system processes these inputs using digital logic to generate actuator control signals for the left elevon, right elevon, and rudder. The control signals are converted into PWM-compatible values representing actuator positions.
Due to the limited number of output pins, the three actuator signals are time-multiplexed onto a single 8-bit output bus (uo_out). Each output cycle contains:
This allows multiple control channels to be transmitted efficiently over a constrained interface.
Provide an 8-bit input word on ui[7:0].
Send a command word of the form:
0xFF in the upper 8 bitsFollow with a data word containing the value to be written to that register.
Observe the output on uo[7:0]. The output cycles through actuator channels and provides:
Decode the output stream to extract individual actuator commands:
001 → left elevon010 → right elevon011 → rudderThis design is fully digital and does not require external hardware to operate.
For practical use, the output can be connected to:
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | Data input bit 0 (LSB) | PWM data bit 0 | Unused |
| 1 | Data input bit 1 | PWM data bit 1 | Unused |
| 2 | Data input bit 2 | PWM data bit 2 | Unused |
| 3 | Data input bit 3 | PWM data bit 3 | Unused |
| 4 | Data input bit 4 | PWM data bit 4 | Unused |
| 5 | Data input bit 5 | Channel tag bit 0 | Unused |
| 6 | Data input bit 6 | Channel tag bit 1 | Unused |
| 7 | Data input bit 7 (MSB) | Channel tag bit 2 | Unused |