Jump to content

Recommended Posts

Posted

Hi everyone,

After a long time tinkering, testing, and 3D printing, I'd finally like to share my finished project with you: a fully functional, DIY Keyboard Display Unit (KDU) for the DCS Apache.

As a heads-up: This is my first project of this kind. I started from zero and taught myself everything along the way—from PCB design in KiCad and Arduino programming to the integration of DCS-BIOS. It was a steep learning curve, but it was worth it!

The goal was to build a device that is as authentic as possible and, above all, stable, mapping all the functions of the KDUs.

Here are a few pictures of the finished device: (see attachemend) 

AH64_KDU_project (5).png

AH64_KDU_project (6).pngAH64_KDU_project (1).png

AH64_KDU_project (3).png

Key Technical Details:

  • Core: An Arduino Nano.

  • Key Matrix: A complete 6x9 matrix (54 keys) using standard MX switches, driven by a PCF8575 I/O expander via I²C.

  • Display: A 256x64 OLED display that receives its data directly from DCS-BIOS.

  • Full Functionality: The KDU is fully functional and supports:

    • The complete input matrix for the Pilot (PLT).

    • The complete input matrix for the Gunner (CPG).

    • Dynamic switching between Pilot and CPG via the encoder's "push" button (built into the matrix).

    • A temporary 2-second display message ("Pilot KDU" / "CPG KDU") on switching.

  • Encoder & Brightness Control:

    • The rotary encoder dynamically controls the KDU brightness in the simulation (depending on the active PLT or CPG mode).

    • The brightness of the physical OLED display is directly coupled to this in-game brightness value and adjusts automatically

  • Hardware: The entire build is based on a custom PCB (designed in KiCad) and a custom-fit 3D-printed enclosure.

Software: The entire system runs extremely stably on DCS-BIOS. To handle the many keys and the simultaneous display updates without timing conflicts, the software architecture (based on the PollingInput class) that cleanly integrates the complex matrix scan into the DCS-BIOS update cycle.

Known Optimizations & "Bugs": It's not perfect, but it works!

  • The keycaps could be designed to be theoretically backlit (requires adjustment of PCB, Code and available power). However, since I don't have a laser engraver to create translucent legends, this V1 uses two-color 3D-printed keycaps.

  • The enclosure design is okay, but the USB port isn't optimally accessible.

  • The wiring from the display to the PCB got pretty tight with this layout—definitely room for optimization in a V2. 😉

Acknowledgements: A huge thank you goes to the DCS-BIOS developers for this powerful tool. A special thanks to MillKris: After seeing his KDU (

Let me know what you all think!

If there is enough interest, I am happy to prepare all the files (KiCad layout, 3D printing files, and the final Arduino code) and release them as an open-source project.

Best regards,

ZEN

 

  • Like 3
Posted

I'm not an AH64 user, but your design is really cool! Great work!
If you're already printing with multicolored filaments, you could theoretically also use translucent filaments for the backlighting?
For the connection, I would use one of these inexpensive USB-C built-in sockets with short cables. Just to avoid straining the board and to make the cable easy to disconnect.

 

 

Posted
Am 17.11.2025 um 17:55 schrieb Red Yeti:

I'm not an AH64 user, but your design is really cool! Great work!
If you're already printing with multicolored filaments, you could theoretically also use translucent filaments for the backlighting?
For the connection, I would use one of these inexpensive USB-C built-in sockets with short cables. Just to avoid straining the board and to make the cable easy to disconnect.

 

 

Hey Thanks. 

It would be possible to use translucent filament but it would require to add more power to light up the required LED. As said _) possible verion 2 hehe. 

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...