Jump to content

DCS-BIOS Discussion Thread


FSFIan

Recommended Posts

6 hours ago, Bailey said:

I suggest using this active fork of dcs-bios https://github.com/DCSFlightpanels/dcs-bios

The problem with that fork is that I can’t send commands to the cockpit using connect-serial-port.cmd.  

I can get light status from the virtual cockpit but I can’t send switch commands.

With the Hub version I can send and receive data no problem. 

For the flight-panels version, I have serial port activity and socat is correctly installed but no joy. 


Edited by speedbird5
Link to comment
Share on other sites

29 minutes ago, speedbird5 said:

The problem with that fork is that I can’t send commands to the cockpit using connect-serial-port.cmd.  

I can get light status from the virtual cockpit but I can’t send switch commands.

With the Hub version I can send and receive data no problem. 

For the flight-panels version, I have serial port activity and socat is correctly installed but no joy. 

 

Are you using the correct command reference?
I think the Flightpanels fork uses slightly different naming to the HUB version in some cases.

Link to comment
Share on other sites

11 hours ago, No1sonuk said:

Are you using the correct command reference?
I think the Flightpanels fork uses slightly different naming to the HUB version in some cases.

Yes I am using the command reference from flightpanels and also the flightpanels Arduino library. Also I am getting light status data back to the Arduino using that command reference, but I can’t send switch data

I have tested this on two separate systems and get the same problem.  Both Windows 11.

Could this be a socat compatibility issue with Windows 11?


Edited by speedbird5
Link to comment
Share on other sites

  • 1 month later...

Hello I'm trying to use a multiplexer for buttons and potentiometers with little to no luck and I think it's because the header files are set up for direct connection I've tried passing each channel as its own variable and assigned them to the PIN for their respective dcs 2 POS switch but as you would guess this does nothing but cause oscillation in the virtual cockpit. I assume because the channels are switching and I can see how in the switch header its being used every pulse as a new state this creating my oscillation. Now that I understand the issue I have to solve it which I have a slight grasp but need a little confirmation. Should I edit the header file to instead of using digitalRead (pin) use something closer to what I would use to read the MUX? like mux.read? And then ofcorase I would need to include the proper struct to pull that off. Switches.cpp I've tried to change the switches header file to accept a pin array and signal pin to use with a Multiplexer this means declaring an empty array the plan is to pass the extra 4pins as binary arguments so when I add the switch to the sketch I can add the binary pointer to each dcs bios switch. Ie mux pins s0,s1,s2,s3 for mux channel one I'm leaving the size empty for now. But the dcs bios instance would look like this  DcsBios::Switch2Pos masterCautionBtn("UFC_MASTER_CAUTION", [0,0,0,0] , 10);

where [0,0,0,0] represents the mux channel to listen to and 10 is the pin connected to the mux signal pin. Please let me know if I have the right idea. The most I ever coded was ws2812s controlled with a pulse in on 3 inputs and reading IR hex to write a pwm to a separate output all on a pro-mini 


Edited by Trigger357
Added text/files
Link to comment
Share on other sites

  • 1 month later...

I've scoured and can't seem to find an answer...is it possible for DCS-BIOS to execute non-aircraft tasks?  If so, is there documentation somewhere?

Examples would be pause, active pause, toggle labels, recenter headset, etc.

Thanks!

 

ColdFront_WI

Home-built Hornet pit, detailed plans available on GitHub

Virpil WarBRD base, TM Hornet/Warthog grip, TM Warthog Throttle, Logitech G Pro rudder pedals

MSI MPG Z390M, i9-9900k @ 5.0GHz with Noctua NH-D15, RTX 2080ti FE, 32GB DDR4 @ 3200MHz, 1TB NVMe M.2 SSD, HP Reverb

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

2 hours ago, ColdFront_WI said:

I've scoured and can't seem to find an answer...is it possible for DCS-BIOS to execute non-aircraft tasks?  If so, is there documentation somewhere?

Examples would be pause, active pause, toggle labels, recenter headset, etc.

Thanks!

 

Not sure on DCS-BIOS, but you could use a Pro Micro or Leonardo in joystick or keyboard mode and use ordinary binds.

Link to comment
Share on other sites

On 2/4/2022 at 1:05 PM, ColdFront_WI said:

I've scoured and can't seem to find an answer...is it possible for DCS-BIOS to execute non-aircraft tasks?  If so, is there documentation somewhere?

Examples would be pause, active pause, toggle labels, recenter headset, etc.

Thanks!

 

very confident the answer is no - I'm using an Arduino Due for those tasks

Link to comment
Share on other sites

  • 2 weeks later...
On 2/4/2022 at 4:05 AM, ColdFront_WI said:

I've scoured and can't seem to find an answer...is it possible for DCS-BIOS to execute non-aircraft tasks?  If so, is there documentation somewhere?

Examples would be pause, active pause, toggle labels, recenter headset, etc.

Thanks!

 

I use a LeoBodnar board for non aircraft commands 

Link to comment
Share on other sites

On 2/4/2022 at 3:05 AM, ColdFront_WI said:

I've scoured and can't seem to find an answer...is it possible for DCS-BIOS to execute non-aircraft tasks?  If so, is there documentation somewhere?

Examples would be pause, active pause, toggle labels, recenter headset, etc.

Thanks!

 

I use VoiceAttack for these kinds of commands. It works beautifully for me.

SCAN Intel Core i9 10850K "Comet Lake", 32GB DDR4, 10GB NVIDIA RTX 3080, HP Reverb G2

Custom Mi-24 pit with magnetic braked cyclic and collective. See it here: Molevitch Mi-24 Pit.

 

[sIGPIC][/sIGPIC] www.blacksharkden.com

bsd sig 2021.jpg

Link to comment
Share on other sites

  • 1 month later...

Hi, I’m new here :). Never thought I’d have to ask advice on a forum, thought I’d somehow manage myself (I’m on first-name basis with electronics and programming, I’d like you to know). As it turns out, I suck at plane-building :D.

I’ve tried working with DCS-BIOS by analyzing the data stream sent to the COM-port. It looked simple, packages consisting of “initial address” and some amount of different data stored at said address and following it. Addresses are always even cause DCS-BIOS always transfers data through a 16-bit word (2 bytes). I think DCS-BIOS just transfers data bits from a game’s memory block. What I don’t get is how it cuts up those memory bits for transfer. Some entries looked paradoxical to me. For example, the name of the plane «Su-25T» (it starts from zero point) sometimes get sent starting from 3rd and 5th letters (?!), capturing pointless bytes outside the line. It’d be complete nonsense if DCS-BIOS understood what it even transfers. Otherwise, it'd send not some memory bits, but data related to specific plane instruments. I think it’s obvious that it itself doesn’t know the meaning of these numbers and tries to send the bits of a memory block which data changed since the last transfer. For example, it sends the «time meter» (FFFE) every time when it increases by 1, while the name of the plane is rarely mentioned.

My problem is how bind the addresses to specific measuring instruments in the cockpit. Specifically, I'm only interested in two parameters - roll and pitch. At first I hoped that I would recognize the roll and pitch from the changes that occur when flying the aircraft. However, it turned out that even in free flight, when I do not touch any controls with my hands, a lot of the data transmitted by the DCS-BIOS changes over time, some of them quite significantly. In short, I could not identify the roll and pitch in the data. Hence my question to the forum users: does the DCS-BIOS give information about roll and pitch to the COM port, and if so, where can I look for it? Ideally, I would like to be poked with my nose into the information where the binding of devices to addresses would be written, instead of referring to some sketches that supposedly know everything and can do everything :). But in the worst case, I also agree with the sketches.

Link to comment
Share on other sites

  • 6 months later...

I am very late to the DCS BIOS game... if someone were to build a Guage panel, and use it for multiplayer with IC (integrity check)  will the panel work?

I know dcs-bios uses lua exports..I'm just concerned that, joining a server with export limitations will render the Guage panel useless..

find me on steam! username: Hannibal_A101A

http://steamcommunity.com/profiles/76561197969447179

Link to comment
Share on other sites

Hey Guys, first of all thank you so much for DCS Bios - all LEDs and Switches are working. My only problem is the servo. i built an Standby Airspeed indicator and with a gear so that 180° of the servo can drive 360 on the scale. But i can´t get the two values work so that the Speed indicator work. Is there by any chance a solution to define different values? So easy to speak - if airspeed in the Sim is 100kt, can i read out the value of dcs bios and define in the Arduino IDE "if speed is 100kt (or whichever value DCS Bios has) then set this amount of steps to match the needle on gauge with the speed in the game? If i set the standard values the Servo will start moving at approx. 100kt, but not before. 

Any help with that? How can i read out Values from DCS Bios? So the value between 0 and 65535 and can i define at which value how many steps the servo should take? 

Thanks in advance 🙂

Link to comment
Share on other sites

I found with the P51 that the gauge in the game uses a lookup table to make it non-linear to match the real one 

The solution is doing the same, with some interpolation maths, or redraw the gauge scale so that it's linear.

The absolute speed numbers are available from the "common data" section.

Link to comment
Share on other sites

On 11/1/2022 at 11:14 AM, No1sonuk said:

I found with the P51 that the gauge in the game uses a lookup table to make it non-linear to match the real one 

The solution is doing the same, with some interpolation maths, or redraw the gauge scale so that it's linear.

The absolute speed numbers are available from the "common data" section.

Hmm ok thank you. So there is no code to „align“ the gauge? Where do I found the „common data“?

Link to comment
Share on other sites

  • 1 month later...

Hi guys!

I made a multiplane desktop pit with a lot of functionalities and use DCS-BIOS to drive all caution lights, but I have a question:

With AV-8B we don't have Seat Not Armed Caution light, but DCS-BIOS can read the lever position: 0-dissarmed 1-Armed, but it means that my Caution LED lit up when the seat is armed.

¿There is any way to invert that logic in the code for this specific plane? All others have "Seat Check" lights that lit when they have to.

Could be a huge upgrade to write the sentence in the arduino code plus a "-1" value as example to invert that logic where 0=OFF - 1=ON.

 

Link to comment
Share on other sites

After try and fail,  the "true-false" option doesn't works on current DCS-BIOS, but I created a new class LEDinv and add this option to the general functions of DCS-BIOS, it runs like a charm.

You just need to substitue this two files on actual ones and use in IDE:

DcsBios::LEDinv seatSafeLever(adress1, adress2, pin);

instead of:

DcsBios::LED samLight(adress1, adress2, pin);

Easy to do it!

LedsInv.h DcsBios.h

Link to comment
Share on other sites

  • Recently Browsing   0 members

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