FSFIan Posted December 28, 2014 Posted December 28, 2014 (edited) 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 December 30, 2014 by [FSF]Ian 7 DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
DeltaFox Posted December 28, 2014 Posted December 28, 2014 Looking great, I'll follow the thread for your other videos :) 1
Extranajero Posted December 28, 2014 Posted December 28, 2014 Will this work with the SU25 or FC3 aircraft ? --------------------------------------------------------- PC specs:- Intel 386DX, 2mb memory, onboard graphics, 14" 640x480 monitor Modules owned:- Bachem Natter, Cessna 150, Project Pluto, Sopwith Snipe
FSFIan Posted December 28, 2014 Author Posted December 28, 2014 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. DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
Extranajero Posted December 28, 2014 Posted December 28, 2014 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
piXel496 Posted December 28, 2014 Posted December 28, 2014 (edited) Although I don't use external gauges and switches. Nice work! :thumbup: . Edited December 28, 2014 by piXel496 don't get hit by a bus... old stuff I made
Socket7 Posted December 28, 2014 Posted December 28, 2014 This looks really, really, cool. I've always thought about building panels, but never got around to it. This just might get me off my butt. Practice makes perfect.
1.JaVA_Platypus Posted December 28, 2014 Posted December 28, 2014 AWESOME!!! Will be Waiting for the MiG-21 support ;) Happy Flying! :pilotfly:
Deadman Posted December 28, 2014 Posted December 28, 2014 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://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.
Hansolo Posted December 28, 2014 Posted December 28, 2014 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 132nd Virtual Wing homepage & 132nd Virtual Wing YouTube channel My DCS-BIOS sketches & Cockpit Album
agrasyuk Posted December 28, 2014 Posted December 28, 2014 This is great stuff Ian. Indeed consider providing some way to facilitate donations. Anton. My pit build thread . Simple and cheap UFC project
FSFIan Posted December 28, 2014 Author Posted December 28, 2014 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. 1 DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
bnepethomas Posted December 28, 2014 Posted December 28, 2014 Thanks for this Ian, having a go to place for LUA is a good thing, having prebuilt Arduino code is awesome. Cheers Peter
Aginor Posted December 28, 2014 Posted December 28, 2014 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. DCSW weapons cheat sheet speed cheat sheet
FSFIan Posted December 28, 2014 Author Posted December 28, 2014 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. DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
Duckling Posted December 29, 2014 Posted December 29, 2014 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 - - - -
Duckling Posted December 29, 2014 Posted December 29, 2014 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 - - - -
MTFDarkEagle Posted December 29, 2014 Posted December 29, 2014 WOW!! Fantastic piece of software!! Will certainly use this when I get around getting an Arduino! Lukas - "TIN TIN" - 9th Shrek Air Strike Squadron TIN TIN's Cockpit thread
FSFIan Posted December 29, 2014 Author Posted December 29, 2014 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. DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
MA_Goblin Posted December 29, 2014 Posted December 29, 2014 :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
FSFIan Posted December 29, 2014 Author Posted December 29, 2014 (edited) 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 December 29, 2014 by [FSF]Ian 2 DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
Ditch3r Posted December 29, 2014 Posted December 29, 2014 Thanks so much! I just downloaded the files and plan on playing around with it now. I've been fighting comms between my Arduino and DCS for a couple weeks now, you're announcement couldn't have come at a better time. :thumbup: https://www.youtube.com/@ditch3rgames
Ditch3r Posted December 29, 2014 Posted December 29, 2014 From the time I posted my last post I made a mock up panel and tested it. Everything worked perfectly! Finally I can move on to actually building panels instead of working on making them communicate! https://www.youtube.com/@ditch3rgames
Recommended Posts