Jump to content

Ever wanted to control DCS with a tablet?


charliefox2
 Share

Recommended Posts

I've been working on a project for a little bit now, and now that the final necessary components are falling into place I'd like to introduce this project...

TouchDCS (Out now!)

 

Who is TouchDCS?

TouchDCS isn't anybody, it's a computer application.

 

What is TouchDCS?

In short, TouchDCS allows you to use your tablet to control DCS. More technically speaking, TouchDCS is an application that acts as an interface between OSC applications (in this case, TouchOSC) and DCS-BIOS.

 

When is TouchDCS?

TouchDCS is the future. Lucky for you, the future is now. TouchDCS is now!

 

Where is TouchDCS?

https://github.com/charliefoxtwo/TouchDCS

 

Why is TouchDCS?

I started TouchDCS after coming to the conclusion that I simply fly too many different aircraft, and there was no way for me to buy or build physical controllers that made sense for all of them. What if, instead, you could simply load up a layout that had the controls you need for your aircraft, exactly where you want them, and nothing else?

 

This is the problem TouchDCS aims to solve. Create your own layout for your aircraft that has exactly what you need. It can be used for critical controls (though I wouldn't try to control the stick with it personally) or just about anything else in the game. It's great for panels that you don't want to dedicate precious hardware buttons to, but you'll need eventually.

 

How is TouchDCS?

Great, thanks for asking!

 

But like, how does it work?

TouchDCS needs to be configured with your tablet's IP address and communication ports (set within the TouchOSC app). Likewise, TouchOSC needs to be configured to talk to TouchDCS. Once that is complete, TouchDCS will listen for any commands from DCS-BIOS, and forward them on to TouchOSC (translated to the OSC protocol). TouchDCS will also listen for any OSC messages from TouchOSC, and translate and forward them to DCS-BIOS. The result is two-way communication for any control that DCS-BIOS supports, and shareable layouts that require no additional configuration/mapping. It (theoretically) supports an infinite number of phones/tablets, each with their own layout, however practically speaking I'd be surprised if you got more than 5 working without communication delays.

What if I don't want to use DCS-BIOS? Does it support mapping to DX buttons?

Not at the moment. Maybe at some point in the future, but don't count on it.

 

How much is TouchDCS?

TouchDCS, the application I have developed, is free and can be downloaded by anybody. However, TouchOSC - an application developed by a third party - costs $10 (on mobile, $18 on desktop). I have been working with the developers of TouchOSC in order to get more features that would benefit TouchDCS into the latest version, but I don't receive any commission or payment of any kind and I don't personally know the developers. There's no sponsorship here - I chose TouchOSC because it seemed like the best way to accomplish my goals, and they've been really receptive to feedback and changes/features I've requested.

 

I want to see pretty pictures!

hornetufc.jpg

hornetifei.jpg

huey1.jpg

huey2.jpg

huey3.jpg

 


Edited by moridar
updated to reflect official release
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

  • charliefox2 changed the title to Ever wanted to control DCS with a tablet?

That looks awesome. I'll definitely check it out, but first a pre requisite question. When you say tablet, what do you mean? Does it also run/is there a version for my surface pro7 which runs full blown Windows 10? Or is it exclusively iPad/Android

Sent from my Pixel 2 XL using Tapatalk

Link to comment
Share on other sites

21 minutes ago, Cathnan said:

When you say tablet, what do you mean? Does it also run/is there a version for my surface pro7 which runs full blown Windows 10? Or is it exclusively iPad/Android
 

I'm using an android tablet, but the new version of TouchOSC (again, still in closed beta so you can't use it yet) runs on all operating systems. If your surface pro uses windows 10, then in the future you will absolutely be able to use this.

 

If you're attempting to get this working with the current version of TouchOSC working (the one currently in the App/Play Store) that only works with Android and iOS. I don't know when the latest version will come out of closed beta, but I can't imagine it will be more than a few months.

  • Like 1
Link to comment
Share on other sites

Interestingly, i just recently started using a similar program called Matric.  It is very similar to yours in that there is a PC and a Tablet app involved, doesn't use DCS-BIOS at all though, just direct comms over Wifi or Bluetooth between PC-Tablet. 

 

It has the same functionality and you can build your own "decks" from a library of controls.  It doesn't handle outputs back to the tablet though such as UFC entry values like radio freqs.  Once set up though which is pretty easy it does work very well.  I use it for generic commands mainly like Viiews, Kneeboard, Time Acceleration, Screenshot, Comms Menu etc.

 

I also use DCS-UFC on another Android tablet for my UFC type inputs/outputs.  Another great app!!

 

Best of luck with your project, i will give it a try some time.

:D- Intel Core i7-9700K CPU @ 4.9 GHz Water Cooled - 32GB Corsair LPX 3000 MHz DDR4 RAM - 1TB Samsung Nand PCIe M2 SSD - 500 GB SSD - 240 GB SSD - 4 TB WD Blue 7200 RPM HDD - MSI GeForce GTX 1080ti 11GB Gaming GPU - Samsung SMART 4K 50" TV as Monitor - TM Warthog HOTAS + 3 x TM Cougar MFD's - Saitek Pro Rudder Pedals - TrackIR 5 w/ProClip - Occulus Rift CV1

Link to comment
Share on other sites

To clarify, the DCS-BIOS portion is used by the console application that I've developed. That console application will talk to your tablet (or other device running TouchOSC) wirelessly as long as they are on the same network.

Matric seems useful, but I think TouchOSC layouts offer a lot more customization and TouchDCS will - like you said - allow for two-way communication so you can see text output or button/dial state in the event you modify them in game instead of through the app.

 

For those sort of generic commands which don't really have a DCS-BIOS interface however, apps like Matric may be your best bet. TouchDCS only communicates through DCS-BIOS, so controls like the ones you mentioned (views, kneeboard, comms, etc) unfortunately can't be controlled by TouchDCS at this time.

 

I just learned about DCS-UFC today and I agree it seems awesome. If it does everything you need, I honestly see no reason to switch to TouchDCS. The advantage of TouchDCS is the versatility it offers in creating your own layout, but if DCS-UFC has all the layouts you need then by all means keep using it!

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

The potential is incredible. How easy would it be to create my own profile for the Tomcat? Is it done in the app? I was checking the wiki but I’m still confused.

 

EDIT:

 

I just tested it, works perfectly! Next step is to make some simple profile for a warbird...

 

@Moridar would it be possible to have more official templates for other jets from you? Even If I manage to do some simple template... I am not sure I could make something like the FA18 sample from you.

 

EDIT 2:

 

I managed to understand the basics and I am halfway done with the Tomcat Display interface (I already got the Modes switches working), this is awesome! Probably tomorrow, I will finish it.

 

Thanks!

Attachment-1.jpeg


Edited by Slice313
Link to comment
Share on other sites

 Just finished my 1st Template for the Tomcat Display panel. Feel free to use it and modify it as you like. I tested it, seems to be working perfectly. This is awesome. I was using an android app "DCS UFC", but this is much more powerful and flexible 😄 and totally customizable.

 

I also uploaded the Template to "DCS user files", it will be available there after moderation.

 

 

PNG image.png

Tomcat Display.tosc


Edited by Slice313
fixed
Link to comment
Share on other sites

Sorry I haven't been active on the forums lately. As you've found, I'm far more active on github and discord 🙂

What sort of aircraft would you be looking for templates for? It's probably not feasible for me to template all of them - I think your best bet is just to ask me how I did things, and I'm more than happy to dig in to what I did and how you can do the same thing 🙂

  • Thanks 1
Link to comment
Share on other sites

16 hours ago, moridar said:

Sorry I haven't been active on the forums lately. As you've found, I'm far more active on github and discord 🙂

What sort of aircraft would you be looking for templates for? It's probably not feasible for me to template all of them - I think your best bet is just to ask me how I did things, and I'm more than happy to dig in to what I did and how you can do the same thing 🙂

 

@Moridar actively helps me with anything, even with scripting I would never be able to code by myself. I already posted 2 aircraft templates but I plan to keep sharing stuff as I make progress.

 

This is an awesome project no doubt. 😍

 

Let me share here my last panel for the BF109 K-4 as well.

 

BF 109 K-4 Fuses panel

 

Tomcat Display panel

 

 

Screenshot 2021-09-01 132226.png

Link to comment
Share on other sites

  • 3 months later...

Hello, This post is for future me who may want to figure this out again later, and/or someone as clueless as me. This install got a little confusing for me as a complete novice to dcs-bios and export.lua, and I just wanted to document the revelations I came across and what worked for me. It was really a LOT simpler than I thought. No disrespect to Moridar and his great work here. I love the end result, I just wasn't understanding and wanted to document it, so here goes:

**********************************************************************************************

For anybody reading this who isn't already a dcs-bios/export.lua expert and couldn't get it working, let me explain it in simpler terms that may save you hours of time.

The version of DCS-BIOS you want for this install is a fork of the main project called DCSFlightpanels/dcs-bios, NOT dcs-bios/dcs-bios, which, if you DO get it working, will recieve updates from dcs.exe, but will not send button presses. Link to the version you want is here: https://github.com/DCSFlightpanels/dcs-bios/releases. You want to download the DCS-BIOS_0.7.43a.zip file. You do not want the v0.10.0 DCS-BIOS hub one. That one is not compatible with this. So you download and extract BIOS_0.7.43a.zip, it's just a folder called DCS-BIOS and a really basic one-line Explort.lua. Extract them to your C:\Users\YOURNAME\Saved Games\DCS.openbeta\Scripts folder (or DCS\Scripts depending on which version of DCS you're working with. If you already have an export.lua there for something else, just add that one line to it.
unknown.png

I spent a lot of time with the main project dcs-bios hub v0.10.0 version because I thought I should get that working first, but it would NOT see my DCS World install. It requires you to have installed DCS World using the Eagle Dynamics installer, not from having moved your install or hard drive over from anohter PC like I did. I think it also expects your DCS and Saved Games folders to be in their default locations too. That was a waste of time since the Flightpanels dcs-bios doesn't have the dcs-bios hub that was driving me nuts. 

Anyway, the gist of dcs-bios is, when dcs.exe (DCS World or DCS Open Beta) runs, it looks in your C:\Users\YOURNAME\Saved Games\DCS.openbeta\Scripts or C:\Users\YOURNAME\Saved Games\DCS\Scripts folder (depending on which one you launched) for the export.lua and runs that, it's painfully simple. The dcs-bios hub that comes with v0.10.0 just complicates things.

With the dcs-bios part taken care of, there are 2 other components. TouchDCS and TouchOSC. The TouchDCS archive is just an exe and a folder with a couple layout files in it. The layout files are used with TouchOSC later. Extract TouchDCS literally anywhere (I stuck mine in my Eagle Dynamics program folder) and run the TouchDCSConsole.exe. Put the layouts folder on the PC you're going to run TouchOSC on, in my case a Microsoft Surface. When TouchDCS runs for the first time, it creates a config file in-place. Open that config file and edit it with the IP address of your device (Surface). Take note of the sending and recieving ports, 8000 & 9000.

unknown.png

Over on the Microsoft Surface, TouchOCS is some kind of app for making buttons and faders and labels to control recording studio stuff and has its own installer. TouchDCS just intercepts DCS-BIOS's stuff outgoing on port 7778, then it takes that and talks to TouchOCS which is sending on port 8000/listening on port 9000. Install and launch TouchOCS. When it loads you have to File > Open one of the layouts that came with the TouchDCS archive. Hope you copied those folders to this device!

unknown.png

Once the panel is loaded up in TouchOSC, click that little chain link button and then the "OSC" tab and configure it with the host info and ports that DCS World will be running on. The sending and recieving ports in TouchOSC will be opposite of the values in TouchDCS. It listens on 8000, sends on 9000. unknown.png

With all of that done, your workflow is to: 1) Launch TouchDCS from wherever you extracted it to on your main PC. 2) Launch TouchOSC on your secondary tablet PC, click File > Open > then select your layout file, like Hornet UFC.tosc, then click the little "play" button. F11 makes it fullscreen. 3) Launch DCS World and get in your aircraft and play with the cool dials and buttons on the tablet and watch them move in the sim and vice versa. It should all work, no messing with dcs-bios hub, dcs.exe takes care of talking to port 7778 and TouchDCS takes care of hearing that and talking to TouchDCS and back and forth . If you have dcs-bios hub in your system tray, you're doing it wrong, you don't want that for this.  

Anyway, good talk. 

  • Like 2
Link to comment
Share on other sites

Than you for writing this up! Everything in there looks correct to me. Sometimes it helps to have multiple people write up guides. I don't claim to be a technical writer in any capacity - I'm a developer, and we're known for being notoriously bad at documenting 😉 

You're correct that the original dcs-bios does not work. When I wrote TouchDCS I wrote it with support for both in mind, but it turns out the original dcs-bios hasn't been updated in years and some things just don't work with it. To my knowledge the flightpanels fork is the only currently up-to-date version.

It's also worth noting that while it doesn't have the hub, it does have a "control reference panel" or whatever they call it that still shows you all of the outputs from dcs-bios, which is very helpful when making custom layouts.

All this to say, I'm glad you got it working and hope you enjoy! We've got more layouts in the discord server (many shared by other community members) and if you make your own layout I'd love to see it posted there too, no pressure though 🙂

Link to comment
Share on other sites

  • 1 month later...

No, I don't have any layouts to share, it is a bit beyond me lol. I'll check out the discord, would love to get some more layouts! How do I get to a Discord invite?

Thanks


Edited by Namco51
Can't find the discord server
Link to comment
Share on other sites

  • 4 months later...

Hi all, looks very interesting so I picked up a copy of TouchOSC and your TouchDSC. The communication is ok but the TouchDSC shows the following:

 

info: DcsBios.Communicator.BiosUdpClient[0]
      Connection to DCS-BIOS opened
warn: DcsBios.Communicator.Configuration.AircraftBiosConfiguration[0]
      Error parsing config file C:\Users\cheese\Saved Games\DCS\Scripts\DCS-BIOS\doc\json\A-10C_CDU.json, skipping...
warn: DcsBios.Communicator.Configuration.AircraftBiosConfiguration[0]
      Error parsing config file C:\Users\cheese\Saved Games\DCS\Scripts\DCS-BIOS\doc\json\AH-64D_EUFD.json, skipping...
info: DcsBios.Communicator.BiosListener[0]
      DCS-BIOS listener started
info: OscCommunicator.OscDelegateReceiver[0]
      OSC listener set up
info: TouchDcsWorker.Worker[0]
      Ready!
warn: TouchDcsWorker.BiosOscTranslator[0]
      Unable to find matching DCS-BIOS command for VHFCOMM_PWR in aircraft (null)

so it looks like TouchDCS isn't picking up which aircraft is being used. In this case I am using the UH-1H and the example file you included.

DCS-Bios version 0.7.45

TouchDCS 0.3.0

Is this project no longer active?

thanks

Quantum

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

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