Jump to content

Controlling HUD brightness, HSD, Course, Heading, Altimeter, Radar alt, ammo counter etc with a Novation MIDI controller


winghunter

Recommended Posts

Using https://github.com/shauleiz/vJoy and https://github.com/c0redumb/midi2vjoy, plus modding more axis control bindings to the F-14.

This works very nice in VR as the buttons can be felt and are illuminated, so I can glance down while wearing the G2 headset.

The Novation circuit has 2 sets of Synths, each with 8 rotary encoders and 64 physical buttons plus a large Filter knob that can also be mapped.

I am attaching my config script in case you have the same unit lying around.

Besides 128 switches I can now control

  • altimeter baro setting
  • radar altimeter setting
  • HUD brightness
  • HUD trim
  • HSD brightness
  • VDI trim
  • VDI brightness
  • HSD Course
  • HSD heading
  • gun ammo count

with the rotary encoders. For altimeters, course and heading, I needed to change the midi2vjoy code  to simulate rotary encoders rather than absolute position from 0 to 127. Script attached. The knobs can be configured to emulate rotary by setting Rot1, Rot2, Rot3, Rot4 as axis.

image.pngimage.png

add these to Mods\aircraft\F-14\Input\F-14B-Pilot\joystick\default.lua
 
 
-- MODS
{action = device_commands.LANTIRN_XAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN Slew X')},
{action = device_commands.LANTIRN_YAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN Slew Y')},
{action = device_commands.LANTIRN_TriggerAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN Trigger Axis (Latched, Lase, Designate)')},
{action = device_commands.LANTIRN_S4_XAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN S4 HAT X Axis (QDES)')},
{action = device_commands.LANTIRN_S4_YAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN S4 HAT Y Axis (QSNO, QHUD)')},
{action = device_commands.LANTIRN_S3_XAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN S3 HAT X Axis (WP-, WP+)')},
{action = device_commands.LANTIRN_S3_YAxis, cockpit_device_id=devices.LANTIRN, name = _('LANTIRN S3 HAT Y Axis (AREA, POINT)')},
{action = device_commands.WINGSWEEP_EmergencySweepLever, cockpit_device_id=devices.WINGSWEEP, name=_('Emergency Wing Sweep')},
{action = device_commands.RADIO_ICS_Vol_Sidewinder, cockpit_device_id=devices.ICS, name = _("ICS Sidewinder Volume")},
{action = device_commands.RADIO_ICS_Vol_ALR67_Pilot, cockpit_device_id=devices.ICS, name = _("ICS ALR-67 Volume")},
{action = device_commands.RADIO_VHF_VOL_PILOT, cockpit_device_id = devices.ARC182, name = _("ARC-182 Volume")},
{action = device_commands.RADIO_ICS_Vol_Pilot, cockpit_device_id = devices.ICS, name = _("ICS Volume")},
{action = device_commands.LIGHTS_Console, cockpit_device_id = devices.COCKPITMECHANICS, name = _("Console Light Intensity")},
{action = device_commands.LIGHTS_ACMPanel, cockpit_device_id = devices.COCKPITMECHANICS, name = _("ACM Panel Light Intensity")},
{action = device_commands.LIGHTS_Formation, cockpit_device_id = devices.COCKPITMECHANICS, name = _("Formation Light Intensity")},
{action = device_commands.LIGHTS_Instruments, cockpit_device_id = devices.COCKPITMECHANICS, name = _("Instrument Light Intensity")},
{action = device_commands.AoA_IndexerStrength, cockpit_device_id = devices.AOASYSTEM, name = _("AoA Indexer Light Intensity")},
{action = device_commands.Temperature, cockpit_device_id = devices.COCKPITMECHANICS, name = _("A/C Temperature")},
{action = device_commands.TACAN_Knob_Vol_Pilot, cockpit_device_id = devices.TACAN, name = _("TACAN Volume")},
{action = device_commands.RADIO_UHF_BRT_Pilot, cockpit_device_id = devices.ARC159, name = _("UHF ARC-159 Display Brightness")},
{action = device_commands.RADIO_UHF_VOL_Pilot, cockpit_device_id = devices.ARC159, name = _("UHF ARC-159 Volume")},
{action = device_commands.ARA63_Chnl_Knob, cockpit_device_id = devices.ILS, name = _("AN/ARA-63 Channel Knob")},
{action = device_commands.RADIO_VHF_VOL_PILOT, cockpit_device_id = devices.ARC182, name = _("*ARC-182 Volume")},
{action = device_commands.RADIO_UHF_VOL_Pilot, cockpit_device_id = devices.ARC159, name = _("*UHF ARC-159 Volume")},
{action = device_commands.VDIG_HUD_bright, cockpit_device_id = devices.HUD, name = _("*HUD Brightness")},
{action = device_commands.VDIG_VDI_contrast, cockpit_device_id = devices.VDI, name = _("*VDI Screen Contrast")},
{action = device_commands.VDIG_VSDI_bright, cockpit_device_id = devices.VDI, name = _("*VSDI Screen Brightness")},
{action = device_commands.HSD_Knob_Brightness, cockpit_device_id = devices.HSD, name = _("*HSD Brightness")},
{action = device_commands.VDIG_HUD_trim, cockpit_device_id = devices.HUD, name = _("*HUD Trim")},
{action = device_commands.VDIG_VSDI_trim, cockpit_device_id = devices.VDI, name = _("*VSDI Trim")},
{action = device_commands.HSD_Knob_Heading, cockpit_device_id = devices.HSD, name = _("*HSD Heading")},
{action = device_commands.HSD_Knob_Course, cockpit_device_id = devices.HSD, name = _("*HSD Course")},
{action = device_commands.RADARALT_Knob, cockpit_device_id = devices.RADARALTIMETER, name = _("*Radar Altimeter")},
{action = device_commands.ALTIMETER_Knob, cockpit_device_id = devices.BAROALTIMETER, name = _("*Altimeter Baro")},
{action = device_commands.WEAP_Gun_Ammo_adjust, cockpit_device_id = devices.WEAPONS, name = _("*Gun Ammo Knob")},

Modified midi2vjoy script and config for Novation

midi2vjoy.7z


Edited by winghunter

DCS Web Editor - New 3D Mission Editor for DCS that runs in your browser

DCS Web Viewer free browser based mission planner / viewer

dcs web editor new(2).png
4090 RTX, 13700KF, water cooled

Link to comment
Share on other sites

Awesome, thanks for the coding, I've been looking for this for a while!

Modules: F-14A/B | F-15C | F-16C | F/A-18C | SU-33 | Spitfire Mk IX | AH-64D | UH-1 | Super Carrier | Combined Arms | Persian Gulf | Syria | NTTR

Setup: VKB Gunfighter Mk.III F-14 CE HOTAS | Thrustmaster TWCS Throttle | MFG Crosswind V3 | Custom switch panel | Tek Creations F14 Display Panel | Custom F14 Left Vertical Console | Custom IR Tracker | Custom butt kicker

PC: i7 11700K | 64GB G-Skill DDR4 3600MHz | EVGA GeForce RTX 3080Ti FTW3 | DCS dedicated 2TB M.2 NVMe SSD | 3440x1440 144hz 34" ultrawide

Link to comment
Share on other sites

5 hours ago, Mike Wazowsky said:

Does it overwrite existing settings? I guess so... It would be great to understand which parts to paste to get the new functions while keeping the old. Thanks, good job!

It should not overwrite any settings or remove functionality. Just install via JSGME

  • Thanks 1

DCS Web Editor - New 3D Mission Editor for DCS that runs in your browser

DCS Web Viewer free browser based mission planner / viewer

dcs web editor new(2).png
4090 RTX, 13700KF, water cooled

Link to comment
Share on other sites

  • 2 weeks later...

Firstly, thanks for this. These additional axes make all the difference!

Can I just ask, are you familiar with Quaggles Injector Mod?  This is a life saver and can be found here 

Basically, the problem with applying changes to the default.lua files in the DCS install folder is that the originals get overwritten. Now, that doesn't matter if there are no changes, but when changes occur, and they do quite regularly, things can get messed up and you have to redo the modded files.  

If you use Quaggles injector, then all your modded lua files sit in a folder structure within Saved Games, and never need to be touched after updates, etc. from the devs as they just get injected into the default.lua files in the install folder.

I spent about an hour getting the mods here into separate files (after help with a mistake in the syntax fixed by @Munkwolfin the thread above) and all are working nicely. 

  • Like 1

Intel i7 12700K · MSI Gaming X Trio RTX 4090 · ASUS ROG STRIX Z690-A Wi-Fi · MSI 32" MPG321UR QD · Samsung 970 500Gb M.2 NVMe · 2 x Samsung 850 Evo 1Tb · 2Tb HDD · 32Gb Corsair Vengance 3000MHz DDR4 · Windows 11 · Thrustmaster TPR Pedals · Tobii Eye Tracker 5 · Thrustmaster F/A-18 Hornet Grip · Virpil MongoosT-50CM3 Base · Virpil Throttle MT-50 CM3 · Virpil Alpha Prime Grip · Virpil Control Panel 2 · Thrustmaster F-16 MFDs · HTC Vive Pro 2 · Total Controls Multifunction Button Box

Link to comment
Share on other sites

11 minutes ago, imacken said:

If you use Quaggles injector, then all your modded lua files sit in a folder structure within Saved Games, and never need to be touched after updates, etc. from the devs as they just get injected into the default.lua files in the install folder.

I spent about an hour getting the mods here into separate files (after help with a mistake in the syntax fixed by @Munkwolfin the thread above) and all are working nicely. 

Also I've got a lot of keybinds done for all modules that are formatted for use with Quaggles injector mod:
https://github.com/Munkwolf/dcs-community-keybinds/

Here's my F-14 pilot seat binds as an example:
https://github.com/Munkwolf/dcs-community-keybinds/blob/main/InputCommands/F14/Input/F-14B-Pilot/joystick/default.lua

 

Edit to add: The midi2vjoy stuff looks awesome. I'm capped out with number of HID devices I can use, but I've got space on my vJoy device and now thinking of how/where I can put some midi devices on my rig.


Edited by Munkwolf
Link to comment
Share on other sites

  • Recently Browsing   0 members

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