Important
This project uses an altered version of DCS-BIOS-arduino-library. It is included in the lib/
directory.
This directory contains the code for the A10C UFC (Up Front Controller) project. The project is designed to interface with DCS:Worlds A-10C II using an Arduino Nano and the DCS-BIOS over COM. The UFC includes functionality for various buttons and LEDs found on the ingame A10C UFC, such as Master Caution lights that are flashing, or dimming the backlight.
- Project Overview
- Demo Video
- Hardware Requirements
- Software Requirements
- Configuration
- Usage
- Contributing
- License
The A10C UFC project aims to replicate the functionality of the A-10C II UFC using a custom PCB and an Arduino Nano. This project utilizes the DCS-BIOS library to communicate with DCS: World, allowing for realistic control and feedback from the simulation.
Check out the demo video on YouTube to see the A10C UFC in action:
- Arduino Micro
- Custom PCB (see A10C UFC PCB)
- LEDs, buttons, and other components as specified in the PCB design
Use Platform.io with an IDE of your choice (e.g. VSCode) and change the COM upload / monitoring ports in the platformio.ini
file to fit your needs. You can find your COM port in the Windows device manager.
Then press Upload in Platform.IO and you're ready to go.
The pin configuration for the matrix switch and LEDs is defined in the main.cpp
file. Here is a summary:
- Row Pins: 2, 3, 4
- Column Pins: 7, 8, 9, 10, 16, 14, 15, 18, 19, 20, 21, 1, 0
- LED Pins:
- Backlight LED: 5
- Master Caution LED: 6
Ensure you have DCS-BIOS configured to communicate over COM. Adjust the settings in DCS-BIOS as needed to match your setup.
To enter debug mode, hold down the buttons corresponding to UFC_1
, UFC_2
, and UFC_3
for 3 seconds. In debug mode, you can:
- Toggle the Master Caution LED
- Cycle the backlight intensity
- Print the state of all buttons via Serial monitor
The code handles the button presses and LED states based on the matrix configuration. It interfaces with DCS-BIOS to send and receive data, allowing for seamless integration with DCS: World.
Contributions are welcome! If you have improvements or fixes, please fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the GNU General Public License v3.0 License. See the LICENSE file for details.