Getting Data From Falcon
-
Thanks for an interesting thread.
Ive just started researching this very topic, with the intention of building a small switch box with key functions like AP, gear, arm, laser, jettison, config i/ii, park brake, and then perhaps a pair of rotary encoders for nav (precursor to a full cockpit, someday).
And as always with these things, scope begins to creep with the inclusion of a few warning lights as well - so now i too need to pull data from the shared memory.
Keyboard emulation using an Andruino Leo seems like the simplest way forward for my project (no need to pass inputs through the pc app to bms), but i can clearly see the value of the dovermans suggestions.
-
Hi
on getting input back into Falcon, buttons, axis, etc. I’ve successfully played with http://vjoystick.sourceforge.net/site - you can setup as many virtual joysticks as you want - a bit of a setup hassle especially with the dx bindings but possible to automate.
bad
-
I guess that’s one for the wishlist then, add an interface to accept dataref commands as well as DX commands. I wouldn’t have thought it would be that hard to do but I’m not the one who’d have to do it, so it’s easy to say!
I know there’s currently no software that will translate between the Arduino and various sims. That’s my idea/vision/dream that someone, or a group of people will see the benefits and create it.
-
The solution already excists.
POKEYS:uham:It has 55 inputs/outputs.
Can emulate a joystick with DX buttons.
Up to 20 rotary encoders irc.
You put switches in a matrix wich gives you even more switches to hook up.
It can send keystrokes.
It can read f4shared memory with F4topokeys, hook up some leds to make indexers or what ever you want.
Easy to program with the excelent pokeys GUI.
Its even programmable with C# if you are a wizzkid.Dont get me wrong arduino is great but IMHO not for simple key interfacing for BMS.
Uri_ba made the excelent dedduino wich put the DED and FFI on a oled screen and even has more options in it.I am using pokeys for a year now and its just a great little gizmo. Man it almost sounds like advertisement but its just my 2 cents.
-
I guess that’s one for the wishlist then, add an interface to accept dataref commands as well as DX commands. I wouldn’t have thought it would be that hard to do but I’m not the one who’d have to do it, so it’s easy to say!
I know there’s currently no software that will translate between the Arduino and various sims. That’s my idea/vision/dream that someone, or a group of people will see the benefits and create it.
Oooooor you could just program your switch panels to press DX buttons so that they work in all sims…
-
What platform are you contemplating using it on (i.e., Ipad…Tablet…etc.)?
I’m using Windows 7. I’m developing with C++ on visual studio.
Are there any documentation about Shared Memory,
Thank you all for valuable answers
-
I’m using Windows 7. I’m developing with C++ on visual studio.
Are there any documentation about Shared Memory,
Thank you all for valuable answers
For shared memory all you need is in the header file Flight Data.h located in \Falcon BMS 4.32\Docs\Other Documentation
If you need sample I can tell you all I know, I have made my own extractor.
-
The solution already excists.
POKEYS:uham:.Pokeys is OK but as already discussed, costs over twice an Arduino Mega with Network Shield. I’m not sure of the exact specs right now but I don’t think there’s anything that Pokeys can do that the Mega can’t, although maybe it makes it a bit more user-friendly to achieve.
I’d have to disagree that Arduino isn’t great for simple key interfacing though. I think the many people using it for just that with DCS and X-Plane shows that it works great.
-
Oooooor you could just program your switch panels to press DX buttons so that they work in all sims…
Sure I could but that throws the advantage of using datarefs with DCS and X-Plane (i.e. not having to map all the DX buttons to functions, which is even more painful in BMS than the other sims) out of the window, as well as the protocol advantages UDP has over USB. It seems to make far more sense to add a dataref-type interface to BMS.
Besides, that ignores the output side of things, which again seems better served by using UDP with a dataref-type interface.
-
Pokeys is OK but as already discussed, costs over twice an Arduino Mega with Network Shield. I’m not sure of the exact specs right now but I don’t think there’s anything that Pokeys can do that the Mega can’t, although maybe it makes it a bit more user-friendly to achieve.
I’d have to disagree that Arduino isn’t great for simple key interfacing though. I think the many people using it for just that with DCS and X-Plane shows that it works great.
If it can do everything a Pokeys can, then just use an Arduino…
Sure I could but that throws the advantage of using datarefs with DCS and X-Plane (i.e. not having to map all the DX buttons to functions, which is even more painful in BMS than the other sims) out of the window, as well as the protocol advantages UDP has over USB. It seems to make far more sense to add a dataref-type interface to BMS.
Besides, that ignores the output side of things, which again seems better served by using UDP with a dataref-type interface.
Of course, there you run into the issue of it not being possible to actually add a new system to BMS unless you join the team and code it. So I guess that is one advantage the existing system has.
I agree, mapping DX buttons to functions is incredibly hard in BMS, clicking a function and pressing the button associated is just so old school. I wish BMS would hurry up with that mind reading tech so I can just think what I want my controls to be, its much less painful.
Exactly how is there any difference between using an RJ45 connector or a USB connector? Im lost as to why you think output would be better served with a different interface.
You asked if its possible in BMS, you were told it is, then you complained its in a different protocol to DCS. Unless there is a massive advantage to be had in writing a new interface for falcon to mimic DCS’ interface, it would seem to be a large duplication of effort better spent on other areas (like releasing 4.33).
-
If it can do everything a Pokeys can, then just use an Arduino…
Well yes, that’s rather the point, I intend to!
I agree, mapping DX buttons to functions is incredibly hard in BMS, clicking a function and pressing the button associated is just so old school. I wish BMS would hurry up with that mind reading tech so I can just think what I want my controls to be, its much less painful.
As I’m sure you know, mapping in BMS generally requires the user to edit the key file, or at least that’s what I’ve been told. It’s up to you if you’d rather be sarcastic than constructive but sarky comments about “mind reading tech” being the only possible improvement to BMS’ control mapping are hardly useful.
Exactly how is there any difference between using an RJ45 connector or a USB connector? Im lost as to why you think output would be better served with a different interface.
I would’ve hoped you’d know that the connector isn’t the only difference between a LAN/UDP connection and a USB connection. People much smarter than I have determined that USB has high overhead which can cause issues when there’s a lot of real-time input/export data being transmitted, which isn’t a problem when using UDP. There’s also issues with Windows deciding to re-assign new IDs to USB devices when they’re re-connected, certainly when plugged in to different ports, which can mess up a whole lot of work, which also isn’t an issue with UDP.
You asked if its possible in BMS, you were told it is, then you complained its in a different protocol to DCS. Unless there is a massive advantage to be had in writing a new interface for falcon to mimic DCS’ interface, it would seem to be a large duplication of effort better spent on other areas (like releasing 4.33).
Well there is one big advantage in having static datarefs, in that it eliminates the need to map DX buttons to functions (whether in the GUI if it’s actually possible to do everything needed there, or in the key file). As for whether shared memory is inferior to exporting data via datarefs over UDP, I’m not qualified to add anything to the opinions of those who choose the latter for X-Plane and DCS. Maybe my idea of a utility to translate between Arduinos and various sims can be made to work with shared memory as well as datarefs but clearly that requires an extra step of getting the data out of the shared memory into a format that the utility can use, whereas datarefs can just be parsed as is, so I imagine it would be less work for whomever wanted to try creating such a utility.
-
Well, I look forward to seeing the fruits of this labor of thine.
I will say Ive not any problems with USB for my cockpit panels. You just leave them in the same ports - bit of tape around the cable with the port number written on it.