Sorry, I just saw your post but the folks on the forum seem to have replied and their answers line up with how I did it. No magic Let me know if you have other questions.
I’ve been tinkering a bit with the data stream and I’m still wondering what the “EngineMaxRpm” really stands for?
For me the obvious thing would be the rpm of rev limiter, but it doesn’t seem to be so.
Anyone have any information about the value?
If vehicle speed relative to world is enough, you could use f32 VelocityZ. Looks like the unit is m/s, so you could multiply it by 3.6 to get km/h.
Were there any changes in the August update? I’m thinking that because they updated track boundaries, that they may be working on outputting coordinates.
I didn’t see anything about changes to the data out feature in the release notes. Unfortunately I haven’t had time yet to test if the data capture works with the new version (meaning that there appears to be no changes), but someone else might be able to confirm that.
i’ve tinkered around with the data out stream and created a JavaFX-based dashboard. It’s of course far from finished, but feel free to improve upon it.
Picture here
What it’s intended for:
I’m usually driving manual (sometimes with clutch) and frequent car changes make it difficult to get those upshifts right. I can either focus on the track or on the rpm-display.
The shift-indicators some cars provide also don’t help much due to them working differently for each car (growing, flashing, blinking…aaargh!)
Also, a far-off goal is to include data history and further telemetry so that the dashboard helps empirically optimize driving (and tuning) through data analysis per car.
What it does:
This simple dashboard shows a singular shift-indicator all the time, no matter which car I’m driving in and how many rpm the engine can do.
the shift indicator is customizable by car to limit the range for low-revving cars and increase it for high-revving cars so as not to miss your perfect shift.
the shift indicator is based on measured max. rpm. Not the (data-out) max rpm which is the displayed engine limit. The measured rpm are stored per car and by default, the shift indicator maximum is set to 99% of those max measured rpm - that way you don’t hit the limiter.
It also shows other information such as current rpm, speed (kph/mph), calculated acceleration and deceleration, and many of the other data-out values.
You can name your car (If anyone of you can produce a list of car ordinals (data-out) with corresponding names, I’ll gladly import them)
If you figure out a way to loopback the data-out stream, you can also use the “always on top” feature, using the dashboard as an overlay, positioning it over your ingame dashboard (in windowed mode)
Listening Port configurable in .properties file - standard port is 1337.
Maximizing, Resizing, dragging without the windows bar on top cluttering the info-display.
(some) car data stored in .properties file - for each car that you’ve actually driven using the dashboard. so after a while, It could be complete.
What it is not:
The dashboard is just a first draft.
There are sure to be bugs in it (like the ugly drag-resizing).
I intend to include all data-out datapoints in a readable fashion (think telemetry display like the overlay in FM itself) at some point.
Edit:
Well, being annoyed by remotedesktopping this from my laptop, i’ve created a small data-out relay (meaning that it receives the data-out stream and forwards it to another PC).
A picture of the resulting working dashboard on the FM 7 rig: here - not beautiful but working…
You need to set the machine running the relay in FM 7
You configure the .properties of the relay to target the PC where you want to use the dash (which in my case is the one running FM7
Edit 08.09.2018:
Updated the Dashboard. Now all DataOut fields are shown (at least as text) as well as some qol improvements. Still very proof-of-concept-y.
Edit 09.09.2018:
Updated the Dashboard: Now rescaling works more or less as intended (should work for any display >1000x500.)
Disclaimer: I’m using a cabled LAN and am not experiencing any noticable delay. I’ve neither tried the relay on weak hardware, nor over Wifi. However, I don’t expect significant performance degradation due to the packets being very small…
Today, I released a new version, now including all September-patch data out fields as well as some minor fixes.
This should run on anything capable of running java (I’m using JRE 1.8.0). You only need to get the .jar file as well as the .properties files from: here
Based on the new values from the September patch, I intend to implement enhanced lap information. Think statistics on fuel consumption, prediction for necessary fuel stops, laptime analyis and so on. However, I expect FH4 to prevent me from actually implementing it for a time
As promised, I have released a new version, now displaying a first draft of (all) laptimes for each race, including the delta time, fuel consumption and position change per lap.
I don’t have much experience with Java, but I’d be more than happy to help setup equations or learn enough of the code to be able to help get this implemented sooner. Since the UDP came out, data logging and tuning is pretty much all I’ve wanted out of it!
Major update coming today which adds 30 new data fields that match what we can see on screen in game (I assume that means telemetry)
"Data Out Update With the September update we’ve released a new update for our Data Out feature, which was first launched in June. As a reminder, Data Out outputs a UDP stream that development-minded Forza players can take advantage of to create companion apps, data logging, dashboards, and more. The June Data Out functionality was designed to support motion sleds; this update nearly 30 new pieces of data, including speed, power, torque – essentially anything the player can see in the Forza 7 HUD. With this update, the previous data structure in the initial Data Out release is now known as “Sled” in the game menus. The new version (known as V2) features all the same Sled data outputs, as well as the new data outputs. For a look at the new data structure, check out our Data Out post on the Forza Forums."
Hopefully they will tell us what type those fields are so we can rewrite the parsers and unpack them…
Yay, these new fields are actually useful! One critical missing field that I’m surprised we don’t have: “on track” flag. 1=on track 0 = out of bounds.
It would also be nice if a track/ribbon id was provided.
Maybe a bitmask that contained the current assist settings.
It would also be tremendously nice, if the “remote machine” limitation was removed. I’m working around this by running a VM on my PC to receive the data. At least remove the remote machine limitation on PC. I have no idea why this limitation exists, it really makes no sense. I have an 8 core machine, surely Forza doesn’t need all of them?
Exactly, and a quick google search will explain how to remove that limitation for specific apps. The whole procedure takes around 1 minute of your time.
I don’t know if this belongs in the main post or in a new one, but it would be really useful to compile all the programs that can understand Forza’s data-out structure and what purpose they serve, like digital dash, data logging, motion sled, etc.
Sim-Dashboard also works with Forza, although I can’t find any templates for it yet and there is a $3.49 charge for all the apps features. I believe this one only works on Android and can be found here: SIM Dashboard Android App - SIM Dashboard