Control Panel for FS2004 v0.1 alpha
based on the excellent USB HID controller by
Only one note on that, if you intend to use rotary encoders:
those encoders provide very short signals, and the stock controller
checks the state of switches (buttons) every 4ms, with a very short
(about 10usec I guess) pulse. So if you intend to use rotary encoders, you
either have to build your own microcontroller that takes care of that
(and maybe feeds Leo's controller with proper signal, or connect to your
PC directly via USB), or ask Leo for 'faster' switch state checks (like
The pictures below represent a very 'experimental' layout.
As I had not such controls before (8 analog axis, 32 buttons, and
an extra hat switch), I decided to assemble a quicko panel, just to
see how it works with FS2004, what controls I will use, and what
would be the best layout for the final version.
One thing is for sure: I have limited space on my desk, so I
will not go for reality, instead, I will try to make it as compact
the first few thoughts after playing around with this new controls
and FS2004 (and a few add-ons).
- depending on what do you intend to do, you may need additional
software called FSUIPC.
the default controls offered by FS are limited to no end when it comes
to joystick/keyboard input. FSUIPC can assign joystick axises, keystrokes,
or even macros to almost any FS internal variable. So if you want to
set autopilot altitude, vertical speed, airspeed, like you do with mouse,
you will certainly need this software. Available about 30-35EUR.
- also, if you intend to light your control panel with status LEDs,
again, you will need FSUIPC and some programming.
FSUIPC can read internal FS variables, and has a common programming
interface. Thus, you may write your own program to read certain values
from FS, and - for instance - send it to your own microcontroller sitting
on an RS232 serial port controlling your lights.
- addon aircrafts, especially more featureful ones (like PMDG Boeings,
PSS Airbuses), joystick or keyboard controls may not work properly
Let's take PMDG 737NG for example: there are autopilot commands,
like 'altitude hold', 'heading hold', 'airspeed hold' etc., for wich you
can assing keystroke or joystick button in FS2004 (by default).
I was sorry to find out, that PMDG does not accept all default FS
autopilot command, and if does, only by keystroke, not joystick button.
This can be - partly - solved by a free software called JoyToKey, which
binds certain keys or key combinations to buttons. This software is very
handy anyways as it can easily switch between profiles to suit your current
Ok, lets get to the tech details. Parts used to construct panel:
- BU0836 USB Joystick Controller
- universal printed circuit panel
size depends on config, mine uses about 100x100mm panel
- 1N4148 diodes, one for each switch
if you want to press more than one button at a time (wich is most likely),
you need to place one 1N4148 after each button. See Leo's documentation
for detail. It is really cheapo, so you might consider just buying 50pieces.
- 100kOhm linear pots
those are marked 'B'. Go for metal casing, and get industry standard
- 32 microswitches
you know, the ones you hear a 'click' when pressed/depressed.
I just used pushbuttons, they are OK, but microswitch is the way to go.
- shielded cabling for pots
for ultimately noiseless operation.
- 100 nFarahd capacitors for each pot, for even more noise cancellation
- a good welding station
you will go welding for countless hours. No replacement for good hardware.
- cables in various colours
I just took a 10m long UTP cable and pulled apart.
- heat-shrink tubes
to cover bare wires
- plastic or aluminium panels
to construct casing. If you use metal casing, be sure to ground it to
the USB controllers GND, and make sure nothing else inside connects to it,
otherwise, you may let lose of the smoke that makes your controller - or
even your PC - work.
if you are also into building your very first control panel, I will be
glad to share my experiences so far.
You might contact me by email: balazs dot lengyak at gmail dot com.