View Full Version : LINK2FS_InOut_v2 for FSX and FS9.

Jim NZ
04-09-2012, 04:43 AM
I just updated this ,,, Added more extractions ,, Fuel stuff ,, throttle stuff ,,some electrics ,,, other bits and pieces ,, fixed some bugs and made the coms connection system just about automatic.

No detectible hit on frame rates ,,, and the speed is still excellent. There is no need for FSUIPC. (It doesn't use it)

This program extracts the ticked readings and sends them to the Ardiuno.
Also included in it, is my "Keys" program that gets switch inputs from the Arduino, inputs them as keystrokes (or multiple keystrokes) to FSX or FS9(fs2004). The "keys" input only goes to flightsim and not to (say) a chat window you may have open and active at the time.

Some shots ,,,,,




Hopefully I haven't bust anything that was going, but there again ,, this is a beta release ,,, sooo ,, your all beta testers. :)
You need to have an installed version of Link2fs_inOut_v1 (The FSX / FS9 one) and you just put this EXE into the same folder.

You will not loose any of your old settings as it will use the same INI file.

The version 1 is available here ,,, (If you haven't already got it)

and the update is here ,, (A single zipped exe file)

Once it's confirmed that everything is fine ,, I will pack it into one complete package.

I started a new thread as the other thread was actually for the older FSX only program.
Any problems ,, please report them in this thread.

There you go guys ,,, no excuses now for not building that next mission. (Yes ,, even a motorized throttle)

Have fun ,,, Jim

04-27-2012, 08:02 AM
Jim this is great stuff. Building a Mega based radio stack as we speak. Any chance you can share the PDE from your LCD-based radio panel on the youtube video. It looks like a great project.



Jim NZ
04-29-2012, 12:51 AM
Thanks Mike ,,,
That project isn't quite finished yet but one day I'll get back to it. All my stuff needs to be converted to the latest Arduino software so I have a big task ahead of me to keep up to date. (Ahhh it never ends) :)

Talking of PDE's ,, I'm a bit disappointed that other than a couple of guys, there is no PDE's being posted ,, maybe I'll open up a "Post your PDE" thread ,, we'll see what happens eh ???

Keep at it Mike ,, it's a lot of fun ,, Jim

05-06-2012, 03:10 AM

The fear of feeling like I'm picking your brains too much has been overcome by simply having to do it again!

After months of watching my landing gear annuciators going on and off and on and off I've ventured into a new idea (which when it works other ppl might like also).

As you know I'm building a 737 pit and the flaps guage has had me bothered. I've come up with the idea of using LED's to indicate the flap position rather that the "real" dial.

Having said that I've done all the wiring etc and can programatically turn the LEDs on and off, however I've come unstuck with the Arduino "code" again in terms of string handling. Can you suggest what I've got wrong below or how I should be approaching this?

Thanks in advance again!

Kind regards
"young" Tony

Jim NZ
05-06-2012, 09:15 PM
AAaaahh Young Tony ,,, your probably getting tripped up by some obscure thing that you havent noticed yet.

I'm not set up to test this but I found a simple program that does extract the flaps and lights the LED's. As I said I cant test it but it appears to be a lot simpler than the one in the "starter pack" (which I assume you have looked at ??) so have a look-see and see where you have gone wrong.

The code is below ,, just copy and paste it in you Arduino program.
It needs version 0022 or 0023 for it to compile properly.

Another thing to watch out for is the settings in the PDE for flaps ,, different planes produce different results for when the flaps are fully down.

Good luck Tony ,,, "Old Jim" :)

int pinState;
int pinNo;
int doutpin;
int sl; //the read from the serial buffer
String oldpinStateSTR, pinStateSTR, stringnewstate,stringoldstate;
String gearN, gearL, gearR, flaps;
void setup()
stringoldstate = "111111111111111111111111111111111111111111111111111111111111111111111";
for (int doutPin = 2; doutPin <= 7; doutPin++)
pinMode(doutPin, OUTPUT);
digitalWrite(doutPin, LOW);

for (int doutPin = 8; doutPin < 70; doutPin++)
pinMode(doutPin, INPUT);
digitalWrite(doutPin, HIGH);

void loop()
oldpinStateSTR = ("");
pinStateSTR = ("");
stringnewstate = "";
for (int pinNo = 8; pinNo < 70; pinNo++){
pinState = (digitalRead(pinNo));
pinStateSTR = pinState;
oldpinStateSTR = (stringoldstate.charAt(pinNo - 8 ));

if (pinStateSTR != oldpinStateSTR)
Serial.print ("D");
if (pinNo < 10) Serial.print ("0");
Serial.print (pinNo);
Serial.print (pinStateSTR);
stringnewstate += pinState;


if (Serial.available() > 0) {
sl = Serial.read();
if (sl == 'M'){ // Found the reading "Flaps position"
delay (11); // It seems to need a delay here
flaps = char(Serial.read());
flaps += char(Serial.read());
flaps += char(Serial.read());

if (flaps >= "001" && flaps <= "029" ){digitalWrite(6,1);}else{digitalWrite(6,0); }
if (flaps >= "029" ){digitalWrite(7,1);}else{digitalWrite(7,0); }
if (sl == 'I'){ // Found the reading "Gear nose"
delay (11);
gearN = char(Serial.read());
gearN += char(Serial.read());
gearN += char(Serial.read());
if (gearN == "100"){digitalWrite(2,1);}else{digitalWrite(2,0); }

if (sl == 'J'){ // Found the reading "Gear Left"
delay (11);
gearL = char(Serial.read());
gearL += char(Serial.read());
gearL += char(Serial.read());
if (gearL == "100"){digitalWrite(3,1);}else{digitalWrite(3,0); }

if (sl == 'K'){ // Found the reading "Gear Right"
delay (11);
gearR = char(Serial.read());
gearR += char(Serial.read());
gearR += char(Serial.read());
if (gearR == "100"){digitalWrite(4,1);}else{digitalWrite(4,0); }

if (gearN != "000" && gearN != "100" ||gearL != "000" && gearL != "100" || gearR != "000" && gearR != "100")
{ digitalWrite(5,1);}else{digitalWrite(5,0); }

stringoldstate = stringnewstate;

06-23-2012, 03:52 PM
Hello, Jim, :D we are a group of five Tunisian enginering students, trying to build a fully 360°(for both pitch and roll) motion platform for FSX. Firstly, let us congratulate your very fine work we just descovered on your page(both hardware and software).
So, Talking now about the project we're running. We are not very orientated on computer software so we've been using your "link2fs inOut", which is in fact very fine. we tried lately sending the data through a com port and displaying it on an lcd,it worked perfectly, but there's a very particular case which can disturb the com communication which is the delimiter of the information the comma "," and very sadly the values of pitch and roll contain commas by default for exemple sending a B+127,7, will be actually seperated to B+127 and 7.
therefore we would like to ask you about the possibility telling us how to edit that delimiter "," to another character for exemple "."

Jim NZ
06-25-2012, 03:27 AM
Hi Med ,,, that's an easy fix ,,, it's to do with your computer "Regional settings" ,,, the "Standards and Format" bit.

In XP you click ,,, Start ,, Control Panel ,,,, "Regional and Language" ,,, and when it opens ,, set the "Regional options" to a standard that uses a "dot" for the decimal point. (USA, England etc etc.)
This wont affect your language setting ,,, only the format of dates, decimals etc.

I haven't a clue where you would find those setting in other Operating Systems.

And yes ,, I got your email but sorry ,, I just haven't had time to catch up with everything.

Hope that works for you Med ,,,,, Jim

06-25-2012, 11:21 AM
Many thanks Jim, your information helped. it works perfectly now :D