Jump to content

Major Announcement: New software to to connect panels to DCS


FSFIan

Recommended Posts

DCS-BIOS allows anyone to connect a switch panel to DCS using an Arduino board -- no programming experience required.

The software already knows about every switch and gauge in your cockpit. You simply copy and paste the supplied code if you wish to use any of the following components:

  • push buttons
  • two- and three-position toggle switches
  • potentiometers
  • rotary switches
  • rotary encoders
  • LED indicator lights

 

This video demonstrates how easy it is:

 

8vI_W0j_3uY

 

 

 

Some highlights:

  • The commands are sent directly to DCS; you do not have to map any buttons in the DCS options.
  • Full A-10C support including export of the CDU display (no OCR required!)
  • UH-1H support (mostly complete, waiting for the bug reports to roll in)
  • Comprehensive documentation
  • Supports switching aircrafts in multiplayer
  • Open-source -- if at some point in the future I cannot maintain the project anymore (I might get hit by a bus...) any other programmer can pick it up
  • By writing a few lines of code yourself, you can use any existing Arduino library to control different types of displays, servos and stepper motors (DCS-BIOS does export this data).

 

The goal of DCS-BIOS is to become a community-maintained Export.lua file that covers everything related to controlling your virtual cockpit.

We would like to support every single DCS module, but to do that, we need your help!

If you want to add support for another aircraft module, please contact me.

I cannot add and maintain aircraft modules that I do not know and fly myself.

 

This project started back in July when I wanted to introduce WarHog to Arduino boards.

Five months later, we have an easy-to-use, stable platform that can export the complete A-10C cockpit over a serial connection or an Arduino Ethernet shield.

I'd like to thank WarHog for being my guinea pig and for his great work on the User Guide. Without him, most people would give up after reading the first sentence!

 

To learn more, visit the DCS-BIOS website: dcs-bios.a10c.de

There you will find links to downloads, documentation, the DCS-BIOS YouTube channel and GitHub.

 

If you have questions, please open a new issue on GitHub if you can.

It will be easier to follow separate discussions there and if your question is related to a bug, your question can instantly be used as a bug report.

 

I plan to improve the documentation and work on additional tutorial videos.

Some topics I want to cover in a video:

  • how to set up the interactive reference documentation (view live data from your cockpit and manipulate switches with Google Chrome); this feature currently has no documentation at all
  • how to use DCS-BIOS with an Arduino Ethernet shield
  • how to connect a character display
  • how to connect a servo motor
  • how to connect a rotary encoder
  • how to connect three-position toggle switches and rotary switches
  • a 10 to 15-minute walkthrough that covers the entire set-up process
  • a guide on what Arduino board and USB to serial converter to buy (and which tools you need)

 

I will prioritize these (and cover additional topics) based on the feedback we receive.

 

Try DCS-BIOS and send us your comments, where you were confused and which areas of the documentation you think we need to improve (if any).


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

  • Replies 398
  • Created
  • Last Reply

Top Posters In This Topic

Will this work with the SU25 or FC3 aircraft ?

 

Only aircraft that have a clickable cockpit can be added with the same level of functionality as the A-10C or Huey.

 

I think it would be possible to add a general FC3 aircraft module that would export basic data (current speed, heading, altitude, position, pitch, yaw) and have an input that executes LoSetCommand(), so you could add buttons to trigger every command listed in the attachment of this post.

 

Take this with a grain of salt though as I do not have any experience with FC3 aircraft.

Link to comment
Share on other sites

OK, thanks Ian. And well done for developing something to help the community :thumbup:

---------------------------------------------------------

PC specs:- Intel 386DX, 2mb memory, onboard graphics, 14" 640x480 monitor

Modules owned:- Bachem Natter, Cessna 150, Project Pluto, Sopwith Snipe

Link to comment
Share on other sites

Holly cow IAN Thanks so much for your time and expertise!! you contribution to pit making is just cutting edge Thanks again I will pm you to get your PayPal address you need a good beer after all the hard work. It would be my pleasure to purchase you one.

https://www.shapeways.com/shops/a-10c-warthog-supplies

https://forum.dcs.world/topic/133818-deadmans-cockpit-base-plans/#comment-133824

CNCs and Laser engravers are great but they can't do squat with out a precise set of plans.

Link to comment
Share on other sites

Woow Ian,

 

Great job. Thanks a lot :thumbup: I am really looking forward to try this out. Out of curiosity. I have your DCS_BIOS Experimental branch running via Ethernet shield. Can I re-use some of that Arduino code for the Ethernet communication to get it to work with the new DCS-BIOS? Or will I have to restart completely?

 

Anyway thank you very much doing this. I really appreciated the Ethernet solution.

 

Cheers

Hans

 

Goddammit

You must spread some Reputation around...
Will rep you later
Link to comment
Share on other sites

Can I re-use some of that Arduino code for the Ethernet communication to get it to work with the new DCS-BIOS? Or will I have to restart completely?

 

Yes, simply re-use your loop() function (to pass data to the ProtocolParser) and sendDcsBiosMessage() function (to send commands to DCS) with the new version of the Arduino library. That should Just Work.

  • Like 1
Link to comment
Share on other sites

Hi!

That sounds awesome. Can I use a button matrix for the input? I might want to try building a UFC with it.

Also which Arduinos are supported? I have a Mega 2560 R3.

 

The library should work on all Arduino boards (and probably also on some Texas Instruments boards using Energia).

 

A button matrix is no problem at all, you will just have to write some code yourself. Refer to the developer guide and the reference documentation to see what messages to send. Let me know if you have any questions.

 

Basically, send "UFC_1 1\n" to start pressing the "1" button and send "UFC_1 0\n" to release it again.

Link to comment
Share on other sites

Thanks Ian. Very impressive work. Got one newbie question that i probably missed in the docs, can you describe the procedure (or refer to where in the refs) a best practise to implement multiple Arduinos to DCS-BIOS ?

 

I also 'vote' you include a donation button or a Paypal 'buy a beer' address ;-)

 

Cheers

Gus

- - - -

Link to comment
Share on other sites

Thanks Ian. Very impressive rwork. Got one newbie question that i probably missed in the docs, can you describe the procedue (or refer to where in the refs) a best practise to implement multiple Arduinos to DCS-BIOS ?

 

I also 'vote' you include a donation button or a Paypal 'buy a beer' address ;-)

 

Cheers

Gus

- - - -

Link to comment
Share on other sites

Thanks Ian. Very impressive work. Got one newbie question that i probably missed in the docs, can you describe the procedure (or refer to where in the refs) a best practise to implement multiple Arduinos to DCS-BIOS ?

 

There is nothing currently in the docs. I plan to write up a separate tutorial on this topic.

 

The short answer is that it is entirely up to you.

 

In your DCS-BIOS Arduino sketch, it is your responsibility (by implementing dcsBiosSendMessage() and feeding data to parser.processChar() in your loop() function) to ensure that the data from DCS gets to the Arduino library and that the Arduino library has some way to send messages back to DCS-BIOS.

 

The TemplateSketch uses a serial connection, but the Arduino library does not care how you do it.

 

Some options:

  • Have a separate USB-to-serial converter for each Arduino board and run one copy of the "connect-serial-port.cmd" script for each serial port
  • The same could be done by using several ethernet shields (and multiple entries in BIOSConfig.lua)
  • Connect the "TX" pin of a single USB-to-serial converter to all of your Arduino boards, so they all receive the same data. For the "send" direction, connect a single "master" Arduino to the "RX" pin of your USB-to-serial converter, connect it to all the other boards via I2C and have it forward messages from the I2C bus to the serial port. At a certain number of boards you may run into electrical problems (too much devices on the I2C bus, too long transmission lines), so for a full cockpit you will probably end up with about three "master" Arduinos. (That number is only a guess based on some theoretical calculations. I am a programmer, not an electrical engineer, so that number may be far off.)
  • Replace the I2C bus in the previous example with something else, such as CAN, RS-485, a wireless LAN...
  • Use an ARM development board which has multiple hardware UARTs and I2C ports as the hub. Interesting candidates are the Tiva C Series Launchpads from Texas Instruments, which can be programmed using Arduino code with Energia.
    If you have a board with 8 hardware UARTs, 4x SPI and 4x I2C, you could use it as a hub for 16 Arduino boards (I did not check whether all of these functions can be used at the same time, some of them may share a pin).

 

PS: To those of you who offered to donate money, thanks a lot! However, because I want this to be a community-maintained project, it would be kinda weird for me to start accepting donations (I don't have any hosting costs -- everything, including the website, is on GitHub).

 

If you want to support the project, you can do so by writing tutorials on specific topics or simply documenting what you built using DCS-BIOS and how you did it.

Link to comment
Share on other sites

:thumbup: Great job

[sIGPIC][/sIGPIC]

_____________Semper paratus, In hoc signo vinces________________

 

PC: Intel i7-8700K (4.9 GHz), Aorus Ultra Gaming Z370 MB, Gigabyte RTX 3080, 32 GB DDR3 (3,2 GHz), Samsung EVO 860 M.2 500 GB SSD + Samsung 960 M.2 250 GB SSD Gaming: Virpil T-50 CM2, TM WH Throttle, Crosswind pedals, HP Reverb

Link to comment
Share on other sites

New videos!

 

(see live data and manipulate cockpit controls!)

MoVoa-BUOkQ

 

h5kmggq4ykE

 

EDIT: I released a new version of the Arduino Library (v0.1.1) which fixes DcsBios::Potentiometer and includes a template sketch for use with an Ethernet Shield.

 

EDIT2: New update to DCS-BIOS (v0.1.2). Changes from v0.1.0:

fix default snippets for HSI_CRS and HSI_HDG

A-10C: fix volume controls on Intercom panel

A-10C: fix HSI_CRS and HSI_HDG controls

Developer Guide: add short description of PollingInput, ExportStreamListener and ProtocolParser classes in the Arduino Library


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

  • Recently Browsing   0 members

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