The Modular Cockpit
is a system of physical controls for Star Citizen.
It is composed of Modules
that group several interrelated physical controls such as switches, potentiometers, encoders, etc. For example, the Power Module
has several toggle switches to activate or deactivate power for weapons, shields, or others; it also has encoders to increase and decrease power, as well as buttons to quickly set maximum or minimum power.
These Modules
can be connected directly to the computer's USB port and the operating system sees them as a joystick, which makes it easy to perform keybinding in Star Citizen.
You can also dock
several Modules
to a Control Panel
, which in turn connects to a computer USB port. When multiple Modules
are docked to a Control Panel
, the computer sees them all as a single joystick. This is very convenient when having a large number of Modules
connected, preventing the operating system from failing in recognition and operation of multiple joysticks.
The Modules
are interchangeable, meaning they can be swapped between Control Panels
or positions within it. This way, the player can easily configure their cockpit depending on their playstyle.
Also, and very importantly, the Modular Cockpit
is a free hardware and free software project. This means that anyone can download the designs and firmware, and build their own cockpit. They can also use it for whatever they want. In addition, they are free to study how the Modular Cockpit
is made and modify it for their needs. Finally, they are free to redistribute it with or without changes as long as they state where it came from and who the authors are.
- Star Citizen is a game with highly enriched functionality and interactivity.
- Each ship in Star Citizen can perform one or more roles.
- Each player in Star Citizen can play one or more roles.
- Each role has a particular form of interactivity.
- Each player has a different way of playing.
Therefore, each player needs a unique cockpit adapted to their playstyle. A modular, open, and adaptable cockpit is needed for Star Citizen.
- Pilot:
- The user of the Modular Cockpit, its very reason for existing.
- Component:
- The atoms that make up the Modular Cockpit. They can be electronic components, such as switches, potentiometers, cables, diodes, microcontrollers; or mechanical ones, such as acrylic sheets, makerbeams, etc.
- Physical Control:
- A type of electronic Component through which the Pilot interacts with Star Citizen. For example, switches, buttons, encoders, potentiometers, etc.
- Module:
- A grouping of physical controls and components with related functions.
- Control Panel
- A structure made with 10x10 mm Makerbeam (see Frame) where one or several Modules can be docked.
- Frame:
- This is a structure built with 10x10 mm Makerbeam. It has a height of 120 mm and the required width. For this, 100 mm vertical beams are used and joined to the horizontal beams with MakerBeam Corner Cubes. Several T-slot nuts are inserted into the horizontal beams, where the Modules are screwed in with M3 bolts. Any other compatible system can be used. For example, the following image shows a Frame 220 mm wide with its different parts.
- Docking a Module
- Physically placing a Module into a Control Panel so that it is fixed and connected.
- Undocking a Module
- Removing a Module from the Control Panel, leaving the slot free.
- Each
Module
must work independently: it should not require other modules or elements to function, except the computer. - It must be interchangeable, meaning it can be placed in any
ControlPanel
and work. - A module must have only one cable connected to it: the USB cable.
- A
Module
must be screwable to theFrame
of aControlPanel
. - A module groups several related functions. The grouping of these functions must follow the categorization given in the Keybinding of Star Citizen. For example, there is a Vehicles - Cockpit category, so there will be at least one module that covers that category.
- The aesthetics of the
Modules
must resemble those of military aircraft. See The Warthod Project as a reference. - Particular functions, such as backlighting, must work within the
Module
. If there is no dedicated control for this function, it must be controllable from the computer or from aControl Panel
independently.
- The front part of a
ControlPanel
is aFrame
as defined above. - Each
ControlPanel
must have only two cables connected to it: the USB cable and the power cable. - The
Modules
connected to theControl Panel
must be seen by the computer as if they were a single joystick. This avoids errors and problems caused by connecting many joysticks simultaneously. - A
Control Panel
can centralize particular functions of aModule
, such as backlighting, to make global changes to these functions. - A
Control Panel
controls the ventilation function, which theModules
do not handle.
- Salvage Module
- Missiles Module
- Docking and Landing Module
- Shields and Countermeasures Module
- Emotes Module
- Movement Module
- Weapons Module
- Target Cycling Module
- Camera Module
- Stopwatch Module
- Power Module
- Targeting Module
- Social Module
- Turret Module
- Mining Module
- Cockpit Module
- Radar and Scanning Module
- Hud Module
There are several types of input devices:
- Mechanical keyboard keys:
- Mechanical keyboard keys are used for most SC keybindings, since SC is designed around keys.
- Encoder
- For cases where there are two keys, one for increasing and another for decreasing the same value, such as increasing or decreasing shield energy.
- Toggle Switch (ON/OFF)
- These are used when there are two keys, one to turn on and another to turn off, for example, turning shields on and off.
- Linear Potentiometer
- These are used for cases where SC has associated axes, or absolute changes of a value.
- Joystick
- Apart from obvious cases where joysticks are used, there are keybindings that by their nature should be controlled with a joystick. A joystick is essentially (at least) two orthogonal potentiometers, allowing control of two orthogonal absolute variables, such as z/y displacement of the camera.
- GlidePoint® Circle Trackpads (like the Steam Controller)
- This trackpad works very similarly to an analog joystick, so it can be used for the same purposes.
Teensy® is used for the following reasons:
- It can function as multiple HID devices simultaneously: it can be a keyboard, joystick, and mouse at the same time, in addition to working with serial. This last feature is necessary to implement a communication protocol with the modules, or in case Star Citizen implements something similar to DCS-BIOS. Being able to have both keyboard and joystick simultaneously is necessary, for example, for the
CameraModule
, since Star Citizen has no way to map joystick buttons to advanced camera functions and those can only be mapped to keyboard and mouse. - It has many input pins. In the case of the Teensy 4.0, there are 40 digital pins and 14 analog ones. In the Teensy 4.1, there are 55 digital inputs and 18 analog ones. This is necessary since some modules require many inputs, such as the
TargetCyclingModule
with 24 digital inputs or thePowerModule
with 30 digital inputs. - Furthermore, all digital inputs have interrupt capability. This makes input reading much faster. For example, the
TargetCyclingModule
with many encoders is much faster thanks to interrupt capability. - It also has many PWM outputs. In the case of the Teensy 4.0, there are 31. In the case of the Teensy 4.1, there are 35. This is very important for managing the backlighting of the modules.
- The Teensy 4.1 has a USB Host port used in
Control Panels
to unify theModules
so the operating system sees them as a single joystick. - It has very good speed, making the Teensy 4.1 preferable for unifying the modules in the
ControlPanel
. - It also has a good amount of memory, which makes this not a concern when coding.