Jump to content

Hornet UFC (potentially)


Brun

Recommended Posts

Reaching for the master arm switches before remembering you need the mouse gets annoying after a while...

 

masterArm.jpg

 

In a break with tradition, it's on shapeways already - Master Arm Panel and the OBJ can be downloaded here.

 

Switches: Master Arm, A/A + A/G (x2) and Fire Ext.

 

I kept the mounting fittings generic, not entirely sure how I'm doing that yet. The inserts are M4, but I don't have a link to the ones I ordered and can't guarantee how well others will fit.

  • Like 1

Asus Z690 Hero | 12900K | 64GB G.Skill 6000 | 4090FE | Reverb G2 | VPC MongoosT-50CM2 + TM Grips  | Winwing Orion2 Throttle | MFG Crosswind Pedals

Link to comment
Share on other sites

Fix54,

 

Not sure if you have seen the posts by teacypher on his harrier pit. If I understand correctly. He is using an i2c multiplexer to run several displays from one Arduino. He has a GitHub where he posted his code. Might help simplify where you are headed with your project.

 

https://forums.eagle.ru/showthread.php?t=252684

 

Cool. Didnt know this thread. Will have a look onto it. Many thanks! Currently investigating how to get these "snippets" from DCS BIOS to work on my project...

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

Cool. Didnt know this thread. Will have a look onto it. Many thanks! Currently investigating how to get these "snippets" from DCS BIOS to work on my project...

 

 

 

I am truly hoping you can use this to bring the UFC to life with a relatively simple solution. It is unfortunately beyond me at this point in my understanding of how these components work.

 

 

Sent from my iPad using Tapatalk

Link to comment
Share on other sites

I am truly hoping you can use this to bring the UFC to life with a relatively simple solution. It is unfortunately beyond me at this point in my understanding of how these components work.

 

 

Sent from my iPad using Tapatalk

 

It´s actually not sooo dificult. Soldering is. I am not too talented in soldering and it therefore took me quite some time with some very cheap equipment.

 

 

Now i will try to add the appropriate lines from DCS-BIOS in the right place. Will see how long it takes me to get this right...

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

I ordered clone alphanumerics like adafruit and found the PCB was too large to fit all them in the UFC. The lack of the colon to ID the selected input really bugged me it seemed the displays he used would allow colons to be displayed. The displays he used have no i2c selections and it was teacyphers post that made me aware an i2c multiplexer even existed. Can DCSBios display both the text and the colon on the same display? Not sure if you are interested in trying another display but the ones he is using are $3

 

So far my attempts at DCSBios are cut and paste. Basically, plagiarism with no real understanding of the how the code works. It’s frustrating to have an idea and lack the depth of knowledge to move it from concept.

 

 

Sent from my iPad using Tapatalk

Link to comment
Share on other sites

I am at the same stage. Copy and Paste. Not much more for me to do, as i am not experienced in coding or whatsoever. I2C is a must as far as i see, because of the simple connection. Dont want to code every pin/segment of the display myself. The PCB size does not matter in my opinion as you could 1st: modify the 3d STL file to fit your PCB or (easier) wire the LED pins to the PCB (detach PCB from LEDs) and place the PCB somwhere else...

BTW: the 0,54" LEDs are too large anyway. Looking for green/yellow 0,39"

I mean this sort or similar: https://store.arduino.cc/10-jumper-wires-150mm-male


Edited by flx54

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

It´s actually not sooo dificult. Soldering is. I am not too talented in soldering and it therefore took me quite some time with some very cheap equipment.

If you can, spend about $100 on a decent temperature-controlled soldering station (Hakko FX-888 or similar). For peace of mind, make sure it has an auto-power-off feature.

 

If you have to use a cheap "starter kit" iron without temperature control (definitely possible, I used one for a few years), make sure to avoid lead-free solder. The cheap irons will not match the higher melting point for the lead-free stuff, and while you can still make working lead-free solder joints with one, it is an exercise in frustration.

 

Can DCSBios display both the text and the colon on the same display?

 

You can write your Arduino sketch in such a way that different string values go to the same display. How exactly you do this depends on the exact display and Arduino library used.

 

One method is the one shown in the tutorial video on LCDs. In the on...Changed() function, the first command sets the cursor of the display to the start position and the second one writes the newValue to the display.

This works well for displays that support a partial update.

 

A slightly different method should be used if your display can only update everything at once. In that case, remove the on...Changed functions from the code snippets and replace them with NULL in the parameter list to the StringBuffer so you'd end up with something like this:

DcsBios::StringBuffer<1> ufcOptionCueing1Buffer(0x7428);
DcsBios::StringBuffer<4> ufcOptionDisplay1Buffer(0x7432, NULL);

In this mode, the StringBuffer will not call a function when the data changes. You can check it instead from your main loop() like this:

if (ufcOptionCueing1Buffer.hasUpdatedData() || ufcOption1DisplayBuffer.hasUpdatedData()) {
 // one of the two values has changed
 // write both values to the display and update; pseudo-code, adapt to whatever display library you are using
 myDisplay.setCursor(12, 20); // some position
 myDisplay.print(ufcOptionCueing1Buffer.getData());
 myDisplay.print(ufcOptionDisplay1Buffer.getData());
 myDisplay.update();
}

 

In general, a lot of people seem to ask "can you do X with DCS-BIOS?", to which the answer is almost always "yes, as long as you write some Arduino code". I wonder what kind of documentation I need to add to make people ask "How do I" instead of "Can I do".

I cannot add snippets to cover every possible use case (even if I had the time, the sheer amount of snippets would overwhelm a newbie).

I have one more feature I want to add to the DCS-BIOS Hub; after that, I want to take some time to focus on bug fixes, some user interface design, and most importantly improve the documentation. Any advice on how I can make this complex topic easier to approach for complete beginners is appreciated.

Link to comment
Share on other sites

Hi Ian,

 

 

thanks for your input and useful hints. I already found "display1" in the hornet section with which i want to start testing. I guess there is not much more for me to do, than spending more time with it and understanding the logic. I think, that this is going to work well as winter nights are very long... :D

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

Jan, would you be open to centralize documentation and examples ?

 

I for one would love to be able to go to a single place to find info on dcs-bios and *uino code instead of having to scour the interwebs and ending up reluctantly asking you about something.

 

~michel

 

Ian;4103267']If you can, spend about $100 on a decent temperature-controlled soldering station (Hakko FX-888 or similar). For peace of mind, make sure it has an auto-power-off feature.

 

 

 

If you have to use a cheap "starter kit" iron without temperature control (definitely possible, I used one for a few years), make sure to avoid lead-free solder. The cheap irons will not match the higher melting point for the lead-free stuff, and while you can still make working lead-free solder joints with one, it is an exercise in frustration.

 

 

 

...

 

 

I have one more feature I want to add to the DCS-BIOS Hub; after that, I want to take some time to focus on bug fixes, some user interface design, and most importantly improve the documentation. Any advice on how I can make this complex topic easier to approach for complete beginners is appreciated.

 

 

 

 

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

(FSF)Ian,

 

Wow, thanks for jumping in here, honored for your response. The question of “how do I” is a much better way of approaching a challenge. Some of the challenges to mimicking the UFC is a lack of readily available components, such as the scratch pad with a single line of 13 digits and the colon display which extends to 5 digits. Ready made components like the adafruit seem to have 1 or 4 digits packaged with a controller chip. The adafruit design offer selectable i2c addresses enabling the use of 1 Arduino to control the displays but no ability to display the colon.

 

 

The display used by teacypher doesn’t have selectable i2c addresses and his post made me aware there was an 12c multiplexer even available. I thought I was going to have to use a single Arduino per display. Not very efficient. Teacyphers approach is much more efficient. Now it is making it work. The displays he chose are:

 

https://www.ebay.com/itm/0-91-128x32-IIC-I2C-Blue-OLED-LCD-Display-DIY-Module-DC3-3V-5V-For-PIC-Arduino/401234789687?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

 

They are relatively inexpensive and if displayed behind green plexiglass should look acceptable.

 

For the scratchpad it’s learning how to create a controller for 13 digits as a single line. How do I? Still remains an open question.

 

After watching a bunch of soldering videos I went with a Weller temperature adjustable station. Much more comfortable to use than the cheap one I had before.

 

 

 

 

 

Ian;4103267']If you can, spend about $100 on a decent temperature-controlled soldering station (Hakko FX-888 or similar). For peace of mind, make sure it has an auto-power-off feature.

 

If you have to use a cheap "starter kit" iron without temperature control (definitely possible, I used one for a few years), make sure to avoid lead-free solder. The cheap irons will not match the higher melting point for the lead-free stuff, and while you can still make working lead-free solder joints with one, it is an exercise in frustration.

 

 

 

You can write your Arduino sketch in such a way that different string values go to the same display. How exactly you do this depends on the exact display and Arduino library used.

 

One method is the one shown in the tutorial video on LCDs. In the on...Changed() function, the first command sets the cursor of the display to the start position and the second one writes the newValue to the display.

This works well for displays that support a partial update.

 

A slightly different method should be used if your display can only update everything at once. In that case, remove the on...Changed functions from the code snippets and replace them with NULL in the parameter list to the StringBuffer so you'd end up with something like this:

DcsBios::StringBuffer<1> ufcOptionCueing1Buffer(0x7428);
DcsBios::StringBuffer<4> ufcOptionDisplay1Buffer(0x7432, NULL);

In this mode, the StringBuffer will not call a function when the data changes. You can check it instead from your main loop() like this:

if (ufcOptionCueing1Buffer.hasUpdatedData() || ufcOption1DisplayBuffer.hasUpdatedData()) {
 // one of the two values has changed
 // write both values to the display and update; pseudo-code, adapt to whatever display library you are using
 myDisplay.setCursor(12, 20); // some position
 myDisplay.print(ufcOptionCueing1Buffer.getData());
 myDisplay.print(ufcOptionDisplay1Buffer.getData());
 myDisplay.update();
}

 

In general, a lot of people seem to ask "can you do X with DCS-BIOS?", to which the answer is almost always "yes, as long as you write some Arduino code". I wonder what kind of documentation I need to add to make people ask "How do I" instead of "Can I do".

I cannot add snippets to cover every possible use case (even if I had the time, the sheer amount of snippets would overwhelm a newbie).

I have one more feature I want to add to the DCS-BIOS Hub; after that, I want to take some time to focus on bug fixes, some user interface design, and most importantly improve the documentation. Any advice on how I can make this complex topic easier to approach for complete beginners is appreciated.


Edited by Fusedspine33
Link to comment
Share on other sites

OK, i think i messed up. Trying to clean up the libraries even after uninstalling the IDE. Cant include dcs-bios.h as it is already installed somewhere else. I need to check for a clean uninstall before continuing i guess.

Whats the best option to include the library for DCS BIOS? Add the zip or place the uncompressed folder into the library folder of the IDE?


Edited by flx54

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

UPDATE:

 

BIG SUCCESS !!!

 

I managed to get Display 1 of the UFC to show correctly on the 4 digit 14-segment display using this code. (Nothing special for (FSF)Jan (THX A LOT !!!) but i guess but thought i´d share with you)

 

// include Adafruit LED Backpack library
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"

// include DCS-BIOS Arduino library
#define DCSBIOS_IRQ_SERIAL
#include "DcsBios.h"

// display instance
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();


void onufcOptionDisplay1Change(char* newValue) {
 
 alpha4.writeDigitAscii(0, newValue[0]);
 alpha4.writeDigitAscii(1, newValue[1]);
 alpha4.writeDigitAscii(2, newValue[2]);
 alpha4.writeDigitAscii(3, newValue[3]);
 alpha4.writeDisplay();
}
DcsBios::StringBuffer<4> ufcOptionDisplay1Buffer(0x7432, onufcOptionDisplay1Change);



void setup() {
  // initialize display
 alpha4.begin(0x70);

 // write something to the display
 // so you see something before data is received
 alpha4.writeDigitAscii(0, 'A');
 alpha4.writeDigitAscii(1, 'B');
 alpha4.writeDigitAscii(2, 'C');
 alpha4.writeDigitAscii(3, 'D');
 alpha4.writeDisplay();
 
 DcsBios::setup();
}

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

 

For Connection i used this reference:

 

https://pinout.xyz/pinout/four_letter_phat

 

Pin A4 is used for DATA

Pin A5 is used for CLOCK

 

 

Now i dont know whether the colon in front of the symbols needs a fifth digit or could be adressed separately?!


Edited by flx54

DCS Open beta

F/A-18C, A-10C

 

Win10, i7-8700k, AsRock Z370 Extreme 4, GTX1080Ti, 32" 2K Samsung TFT Main screen, 22" 1K Iiyama Touch screen.

 

Warthog HOTAS

Link to comment
Share on other sites

Hey everyone,

 

I hope it is ok that i show my version here. I followed the discussion about the displays.

This is my UFC with displays. This is an early version. I have not yet the finished version on video. The video is enough to show that it works with OLED displays

Only the Comm channel displays are wip. The code for DCS is not ready, the Comm displays are working without DCS.

 

The early version:

 

I have used 2.23 OELD Displays in white. The green color was made with foil.

 

BR Sky

0CF2D833-506A-45AB-A307-E4A773791C02.thumb.jpeg.147d28ed57e45218436a469f9ac2971f.jpeg


Edited by SkyJunky
Link to comment
Share on other sites

Ian,

 

 

First off thanks for all the work on DCS BIOS and your patience in answering so many beginners' questions. I have learning to take advantage of DCS BIOS in my cockpit building on my "todo" list for 2020.

 

Have you thought about using an approach similar to what Sim Innovations' (https://www.siminnovations.com/) uses for their Air Manager program? It is wiki based and makes it extremely easy for beginners to access the information they need to build custom panels and instruments.

 

Sim Innovations' YouTube channel has several tutorials showing how to use their wiki to program instruments and panels. For example this particular one shows programing seven segment displays.

 

Ian;4103267']

 

In general, a lot of people seem to ask "can you do X with DCS-BIOS?", to which the answer is almost always "yes, as long as you write some Arduino code". I wonder what kind of documentation I need to add to make people ask "How do I" instead of "Can I do".

I cannot add snippets to cover every possible use case (even if I had the time, the sheer amount of snippets would overwhelm a newbie).

I have one more feature I want to add to the DCS-BIOS Hub; after that, I want to take some time to focus on bug fixes, some user interface design, and most importantly improve the documentation. Any advice on how I can make this complex topic easier to approach for complete beginners is appreciated.

[sIGPIC][/sIGPIC]

TWC_Alamo

Denver, CO

 

Military Flight Sim

I7-7700K, 4.9 GHz, Z270-Gaming MB, 16GB, 512GB EVO-960 NVMe M.2, 512GB WD Black NVMe M.2, 1 TB SSD Raid, EVGA RTX 2080ti, Samsung Odyssey Plus, TM HOTAS/MFDs, MFG Crosswinds, Gametrix 908 JetSeat

 

GA Flight Sim

I7-5820K, 4.2Ghz, Godlike Carbon MB, 16GB, 512 GB EVO 960 NVME M.2, 2 X SSD, EVGA 1080ti, HTC Vive, 3 X 4K 55" TVs, 4 X 27" Monitors, CH: Flight Yoke, Throttle Quadrant, Rudder Pedals

Link to comment
Share on other sites

Thanks for sharing your work. Would you mind sharing your parts list? Thanks

 

Hey everyone,

 

I hope it is ok that i show my version here. I followed the discussion about the displays.

This is my UFC with displays. This is an early version. I have not yet the finished version on video. The video is enough to show that it works with OLED displays

Only the Comm channel displays are wip. The code for DCS is not ready, the Comm displays are working without DCS.

 

The early version:

 

I have used 2.23 OELD Displays in white. The green color was made with foil.

 

BR Sky

Link to comment
Share on other sites

Amazing to see what people are doing with the displays. Never even imagined this when I started it last year.

Asus Z690 Hero | 12900K | 64GB G.Skill 6000 | 4090FE | Reverb G2 | VPC MongoosT-50CM2 + TM Grips  | Winwing Orion2 Throttle | MFG Crosswind Pedals

Link to comment
Share on other sites

  • Recently Browsing   0 members

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