What You'll Need
What you need depends on what you're here to do. Pick your path — you don't need the build or firmware toolchain just to understand the project.
This page lists the tools and skills. It does not cover installation — setup steps live in the build guides.
To understand the project
You can read the whole site and follow the architecture with nothing installed. To actually see OpenSkyhawk drive a cockpit, you need:
- DCS World with the A-4E-C Skyhawk Community Mod installed. The A-4E-C is a free community module — OpenSkyhawk targets it specifically.
- A DCS-BIOS relay — something to bridge the sim and the SimGateway serial port.
Two options:
- OpenSkyhawk Client (recommended) — cross-platform GUI, auto-detects the SimGateway, adds live monitoring and replay. Download from GitHub Releases.
- DCS-BIOS serial relay — the legacy
connect-serial-port.cmd/socatscript shipped with DCS-BIOS. Windows-only, no GUI, requires manual COM port selection.
- Basic electronics familiarity — you should be comfortable with the idea of a microcontroller, a serial link, and reading a schematic. You do not need to know CAN bus, DCS-BIOS, or STM32 development going in; the docs explain those.
To build a panel
Fabricating and wiring a panel adds the hardware toolchain:
| Tool | Use | Notes |
|---|---|---|
| KiCad 8+ | PCB schematic + layout review | Project tooling and CI use v10.0.1; open the .kicad_pro projects under PCB/ |
| PlatformIO + VS Code | Firmware build and upload | The firmware build system — see PlatformIO Setup |
| ST-Link (or compatible SWD probe) | Flashing STM32 boards over SWD | The hardware probe. STM32 boards expose a 5-pin SWD header (PA13/PA14/NRST/GND/3.3V); PlatformIO flashes through it directly |
| DCS-BIOS | DCS ↔ cockpit export stream | Runs on the PC; the firmware speaks its protocol |
| JLCPCB account | PCB fabrication | Design rules are pre-loaded for JLCPCB's standard 2-layer service |
| Soldering iron + multimeter | Assembly and bring-up | Surface-mount rework; continuity and voltage checks |
CAD (evaluation in progress) is optional for panel building:
- Fusion 360 or FreeCAD — CAD tooling is currently being evaluated (FreeCAD is the
preferred direction). The
CAD/sources open in whichever tool is chosen. - Either tool can open and export STEP files for the KiCad fit-check.
- STL files for 3D printing are released via GitHub Releases, not committed to the repo.
RP2040 boards need no special flasher
The SimGateway and any HID boards run on off-the-shelf RP2040 modules (e.g. a Raspberry Pi Pico). They flash over USB by drag-and-drop UF2 or directly from PlatformIO — no ST-Link required. Only the STM32 boards need the SWD programmer.
STM32CubeProgrammer is optional
STM32CubeProgrammer is ST's standalone GUI flasher — handy for erasing or inspecting a chip, but not required. PlatformIO drives the ST-Link directly for normal build-and-upload.
To contribute firmware
Everything above, plus the bench hardware to develop and verify against real boards:
- STM32F103 dev board — an STM32F103C8 Blue Pill is the default for every board and runs all of the firmware, including PanelBridge (its full DCS-BIOS input map still compiles to ~26 KB flash). The STM32F103CB (128 KB flash) is a drop-in fallback on the same footprint for any future build that exceeds 64 KB — no board currently needs it. Either way the firmware requires an external 8 MHz crystal for CAN; verify your board has one populated.
- RP2040 module (Raspberry Pi Pico or similar) — for SimGateway work.
- USB-to-TTL serial adapter — for the DiagSerial debug stream. Every STM32 board exposes a 3-pin header (GND / RX / TX) on USART1 at 115200 baud for human-readable diagnostics.
- ST-Link (or compatible SWD probe) — for flashing and debugging STM32 targets.
- CAN bus analyzer — optional but useful. Lets you watch frames on the bus directly when debugging multi-node behaviour.
See How to Contribute for conventions, and Adding a New Panel Group for the end-to-end workflow.