Jump to content

DCS-BIOS: Overview and Announcements


FSFIan

Recommended Posts

To find out what you can do with DCS-BIOS, look at the intro video and the About DCS-BIOS section below.

The latest release and documentation is always available from dcs-bios.a10c.de

 

If you want to be notified when a new version of DCS-BIOS or related software is released, you can subscribe to this thread (and optionally enable e-mail notification).

 

What to post where

 

This thread is for the announcement of new software releases only.

  • If you want to announce a new version of your DCS-BIOS-related software, post in this thread, including a link to your project's discussion thread.
  • The preferred way to report bugs is to open a new issue on GitHub.
  • Questions belong in a new thread. Let's avoid creating another 35-page monster.
  • For anything else, you can use the DCS-BIOS Discussion Thread.

Please do not PM me with DCS-BIOS-related questions. If the answer might also be useful to someone else (which is the case for most "how can I do X" questions), it belongs in a public thread where it can be discovered using the search function. I am subscribed to "Mission Builder's Corner", "Input and Output" and "Home Cockpits" and read at least the subject line of every thread that gets posted to one of those boards.

 

Introduction Video

 

8vI_W0j_3uY

 

 

About DCS-BIOS

 

DCS-BIOS is an Export.lua file for DCS that provides a stable and documented interface for external hardware and software to interact with the clickable cockpit of a DCS: World aircraft. It comes with a software library for the popular Arduino microcontroller platform.

 

Currently supported aircraft modules: A-10C, UH-1H, Mig-21Bis, Ka-50

If you would like to contribute support for another module, please get in touch!

 

Without any programming experience, you can use DCS-BIOS and a $5 Arduino board to connect the following types of controls:

 

  • momentary push buttons
  • two- or three-position toggle switches
  • multi-position rotary switches
  • rotary encoders
  • LED indicator lights

 

If you have basic programming skills, you can also use the following:

 

  • character displays (for example for the A-10C's CMSP display)
  • 7-segment displays driven by the MAX7219 chip
  • servo or stepper motors
  • and anything else that can be controlled by an Arduino board

 

 

Resources

 

 

 

Related Projects

 

If you have something to add to this list, PM me.

 


Edited by [FSF]Ian
Link to comment
Share on other sites

  • 5 months later...
Hi Ian

 

Any news regarding the MIG-21 landing gear lights bug?

 

I don't have the Mig-21, so I cannot look into this.

 

Please use the DCS-BIOS Discussion Thread for comments and questions. This thread is meant for DCS-BIOS related news announcements only.

 

The idea is to have separate threads for news and discussions.

 

Any question where the answer is useful in the future (e.g. "How do I..." instead of bug reports and general comments) should be in a new thread, with a somewhat descriptive subject line, so it is easy to find again in the future.

Link to comment
Share on other sites

  • 2 weeks later...

Released v0.4.1.

 

  • A-10C: add AIRSPEED_MAX_IAS, COMPASS_BANK, COMPASS_PITCH, COMPASS_HDG
  • A-10C: fix CMSP toggle switches (the "held up" position sent a wrong command to DCS)
  • avoid spamming dcs.log with errors when in a FC3 aircraft
  • add first draft of pointer calibration tool

 

Please post comments in the DCS-BIOS Discussion Thread.

Link to comment
Share on other sites

  • 2 months later...

Released v0.4.2.

 

  • A-10C: Add SET_VHF_AM and SET_VHF_FM commands to directly set the radio frequencies for the AM and FM radios. Only works for valid frequencies for the given radio.
  • A-10C: add ALT_PNEU_FLAG export value (position of the yellow PNEU flag in the Altimeter)

 

Please post comments in the DCS-BIOS Discussion Thread.

Link to comment
Share on other sites

  • 1 month later...

i been out of the loop with DCS BIOS.

i started to look at all the pages and videos about DCS BIOS integration and code early last year, but with the on going transition of DCS to 2.0, i didnt want to spend too much time on something that might drastically change in the DCS code base.

 

i like to get back to DCS BIOS to try to make some kind of speed indicator.. the last time i saw, only heading, altitude and position were in the binaries.. i tried to figure out how see where the exports take place, but have noooo clue :'(

 

please please anyone! (cough cough, mr [FSF]Ian) please include airspeed in the common data!

 

other than that, amazing work you are doing!

find me on steam! username: Hannibal_A101A

http://steamcommunity.com/profiles/76561197969447179

Link to comment
Share on other sites

please please anyone! (cough cough, mr [FSF]Ian) please include airspeed in the common data!

 

Not going to happen, unless you can show me a piece of Lua code that can get the airspeed in any aircraft. The CommonData module is only for those pieces of data that can be reliably retrieved independent of the aircraft type.

 

Also, please read the first post of this thread. It's meant for release announcements only, to give people a low-traffic thread to subscribe to. For questions, open a new thread. For general discussion, use the DCS-BIOS Discussion Thread.

Link to comment
Share on other sites

Ian;2690083']Not going to happen, unless you can show me a piece of Lua code that can get the airspeed in any aircraft. The CommonData module is only for those pieces of data that can be reliably retrieved independent of the aircraft type.

 

Also, please read the first post of this thread. It's meant for release announcements only, to give people a low-traffic thread to subscribe to. For questions, open a new thread. For general discussion, use the DCS-BIOS Discussion Thread.

 

sorry my friend, i thought this was the DCS BIOS Discussion Thread! my mistake! and thank you for the reply.

find me on steam! username: Hannibal_A101A

http://steamcommunity.com/profiles/76561197969447179

Link to comment
Share on other sites

Released DCS-BIOS v0.5.0 and the DCS-BIOS Arduino Library v0.2.0.

 

There have been some changes from previous versions.

 

The baud rate for serial communication is now 250000 bps. You should adapt your old sketches to the new version of the Arduino library and reflash your boards.

 

Using the new version of the Arduino library is a bit simpler, because all communication code is now provided by the library by default. You can select which variant of that code you want by defining a preprocessor macro before including DcsBios.h.

Here's the new MasterCaution example:

 

/* use '#define DCSBIOS_DEFAULT_SERIAL' instead if your Arduino board
*  does not feature an ATMega328 or ATMega2650 controller.
*/
#define DCSBIOS_IRQ_SERIAL
#include "DcsBios.h"

DcsBios::Switch2Pos lampTestBtn("LAMP_TEST_BTN", 10);
DcsBios::LED nmspIlsLed(0x1112, 0x0020, 13);

void setup() {
 DcsBios::setup();
}

void loop() {
 DcsBios::loop();
}

 

By defining DCSBIOS_IRQ_SERIAL, we select the new interrupt-driven communication handling. You should always use this if possible (it only works on ATMega328 and ATMega2560 controllers). For other Arduino-compatible boards, you can define DCSBIOS_DEFAULT_SERIAL to fall back to the standard Serial class.

 

You need to call DcsBios::setup() and DcsBios::loop() from your setup() and loop() functions respectively.

 

RS-485 support is included, but not documented yet beyond what I had mentioned in the DCS-BIOS discussion thread in post #194.

 

As always, please create a new thread for any questions and use the DCS-BIOS Discussion thread for general comments. This thread is meant as a low-traffic thing for people to subscribe to and is reserved for release announcements of DCS-BIOS related software.

Link to comment
Share on other sites

Ian does that affect Developer Mode in Chrome?. Reference docs, does that need to be updated to latest library. Just asking because I'm sure some others will be asking the same but they may not be happy about asking. Cheers m8 :thumbup:

Windows 7 64 Home Premium, i5 3570K (3.4 @ 4.4GHz), Asus P8Z77-V LX, 16GB dual channel 1600 ram, EVGA Nvidia GTX980ti, 240 GB OCZ SSD, 3 TB Raptor, Thrustmaster Warthog Hotas and Throttle, Saitek Pro Combat Rudder pedals.

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

Released v0.2.2 of the Arduino library.

 

  • fix a bug with the dirty bit logic in Int16Buffer. If no previous updates had been received (e.g. when the Arduino had just started up), a data update from DCS-BIOS that tried to set the value to zero would not mark the data as dirty, so getUpdatedData() would still return false.

Link to comment
Share on other sites

  • 4 weeks later...

Hey Ian

 

My name is Ian aswell :) I wanted to say thank you for all the hard work you put into DCS BIOS, this is a crazy amount of information and will be so much help for my project.

 

I have some issues getting simple things to work tho.

I think i was able to manage to install DCS Bios library and all. moved scripts and lua file. Worked out fine. I hooked up an LCD, working with hello world and tried to run the code for UHF/Clock display.

 

i adapted the COM-port in the BAT file, however all i get is this:

 

Couldnt compute FAST_CWD pointer. Please report this problem to the public mailing list cygwin@cygwin.com

 

do you have any idea what i am doing wrong. thanks so much guys

 

cheers

Link to comment
Share on other sites

  • 2 weeks later...

Looked at the github project and I think I could use this.

 

For now just planning on DCS-BIOS - not the arduino library.

 

Few questions...

 

1. The export data stream format - is that a DCS-BIOS format or DCS.

 

2. My understanding from the docs, is that the export data stream will only contain data/switches that got changed...so how does one initialize the program (and the displayed switches/buttons) when using DCS-BIOS when the mission starts.

 

3. Looking at the sample python project, you have the following line.

 

Where are the offsets, masks for all the switches defined?

 

# address = 0x10e4, mask = 0x3800, shift_by = 11                                cmspMode = IntegerBuffer(parser, 0x10e4, 0x3800, 11, lambda i: print("CMSP MODE: ", i))                                

 

 

Thanks and appreciate the work put into this project.

Link to comment
Share on other sites

Looked at the github project and I think I could use this.

 

For now just planning on DCS-BIOS - not the arduino library.

 

Few questions...

 

1. The export data stream format - is that a DCS-BIOS format or DCS.

 

2. My understanding from the docs, is that the export data stream will only contain data/switches that got changed...so how does one initialize the program (and the displayed switches/buttons) when using DCS-BIOS when the mission starts.

 

3. Looking at the sample python project, you have the following line.

 

Where are the offsets, masks for all the switches defined?

 

# address = 0x10e4, mask = 0x3800, shift_by = 11                                cmspMode = IntegerBuffer(parser, 0x10e4, 0x3800, 11, lambda i: print("CMSP MODE: ", i))                                

 

 

Thanks and appreciate the work put into this project.

 

Short answers:

1. The data format is specific to DCS-BIOS.

2. If you are already listening to the export data stream when the mission starts, the very first update will include everything -- nothing has been transmitted before, so everything is considered to have changed. If you miss that first update, your application will be up-to-date within about ten seconds anyway, as DCS-BIOS deliberately re-sends some of the unchanged data with each update packet.

3. Set the Control Reference Documentation to "Advanced" view.

 

Please create a new topic for things like this in the future (or if you have follow-up questions). This thread is for release announcements only, for two reasons:

a) I wanted to give people a low-traffic thread to watch with the "subscribe to this thread" function

b) I hate monster-threads in general, because I have wasted time in the past answering questions I knew I had answered before, but writing it down again took less time than finding the old answer in a thread of 30+ pages (and it starts to get really annoying when two or three discussions are going on at the same time in the same forum thread)

 

There is also the DCS-BIOS Discussion Thread for feedback and general discussion (i.e. anything that I won't have to find again in the future to link to someone else).

Link to comment
Share on other sites

  • 1 month later...

Released v0.2.5 of the Arduino Library.

 

  • make SwitchMultiPos default to the last selected position instead of position 0 when none of the pins are pulled to ground. This avoids temporarily switching back to position 0 when you have a break-before-make rotary switch or if some of the positions on your physical rotary switch are unused.

 

Please post comments in the DCS-BIOS Discussion Thread.

Link to comment
Share on other sites

Thank you Jan

Windows 7 64 Home Premium, i5 3570K (3.4 @ 4.4GHz), Asus P8Z77-V LX, 16GB dual channel 1600 ram, EVGA Nvidia GTX980ti, 240 GB OCZ SSD, 3 TB Raptor, Thrustmaster Warthog Hotas and Throttle, Saitek Pro Combat Rudder pedals.

Link to comment
Share on other sites

  • 2 months later...

Released v0.2.6 of the Arduino Library.

 

  • make IntegerBuffer::hasUpdatedData() public
  • fix undefined behavior in DCSBIOS_DEFAULT_SERIAL mode
  • add optional argument to select number of steps per detent to DcsBios::RotaryEncoder

 

Please post comments in the DCS-BIOS Discussion Thread.

Link to comment
Share on other sites

  • 1 month later...
  • Recently Browsing   0 members

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