Hints and Tips

I've tried to make iRDDU2 as easy to use as possible but there are a number of more advanced features which might appear intimidating at first sight.  In this section I'm going to attempt to demystify things like M-JPEG streaming and unit conversion.

Quick Links:

Using iRDDU to convert between different units

iRDDU always gives you data in the default unit returned by the sim.  In many cases this is not what you want - speed in metres per second for example - and you want to convert it to something more familiar for output.

One way to do that is to use the CONVERT built in function and if you're using the value in a formula that's the only practical option but when you're just converting a field for display in a control there's a simpler way.

At the bottom of the properties panel for the number control you'll see a dropdown labelled "Output Unit".  Select the units in which you want the value to appear and iRDDU will do the conversion for you.

The only caveat is that it only works if the control is being fed by a single field.  For example [SIM|Speed] can be converted to MPH or KPH but [SIM|Speed] * 0.9 can't.  As soon as you start using fields in calculations iRDDU can no longer be sure which unit of measure the result is.

Most of the time you'll be dealing with single fields though and that works fine.  iRDDU knows the native unit in which each field is returned by the sim and has all meaningful conversion factors built in.  let's take the example of [SIM|Speed].  iRacing returns the speed in Metres per Second but you don't need to know that, all you need to do is set the Output Unit on your control to MPH.  Behind the scenes iRDDU will multiply the value returned from the API by 2.236936292054402 (Look it up :o).

The idea behind this is that if and when I add support for other sims you won't have to change your dashboards, even if rFactor or AC send the speed to their APIs in MPH.

Of course if you do want to use the value in MPH in a formula, perhaps to drive a gauge control in more familiar units you can use the CONVERT built in function.  It uses exactly the same code to do the calculation but you have to specify the unit you're converting from as well as that you're converting to.  For example:

CONVERT( [SIM|Speed], "MetresPerSecond", "MPH" )

You can try to convert anything to anything else but if you try something silly like converting Metres to US Gallons then iRDDU wil simply return the original value unconverted.

There are a couple of useful conversions that aren't obvious.  A Lap is a measure of distance so you can output [SIM|RUNLAPS] in miles if you wish.  iRDDU will use the length of the current track to convert.  I'm really quite pleased with that little featurette.

Displaying Dashboards on remote clients like iPads or phones

iRDDU2 enables you to use remote devices such as iPhones, iPads, Android phones & tablets, separate windows machines and even Blackberries to display dashboards. You can stream multiple dashboards to as many devices as you like, the limit being your hardware/network.

I've tested with Firefox and VLC on Windows and Android and it works fine. I don't have any iOS devices to test with but Safari claims to support MJPEG. I did get it working OK in VLC on my daughter's iPhone 5s but it wouldn't go full screen properly. I'm sure it'll work fine for someone who knows what they're doing with Apple stuff. 

For their own strange reasons Google removed support for M-JPEG from Chrome a year or so back and IE requires a plugin which I haven't tried yet. No matter, VLC is available on everything from Linux and Windows to Android and iOS, though watch the iOS version - there appears to be a dodgy ad-ridden one on the Apple Store. I even ran a dash on my Blackberry; the Blackberry 10 browser ran it perfectly with zero fuss. 

To run remote dashes iRDDU needs to be in Multi-Dash mode. Select the dash you want to stream. At the bottom of the multi dash panel you will see a dropdown. The default value is "run locally" meaning the dash will be displayed in the position you've specified on your windows desktop as on previous versions.  When you click on the dropdown you will see a number of other options. Each will display a URL comprising "http://" followed by the host name of the computer and a port number.  Select one and change the run mode to "ON". 

When the stream is started you will probably see a firewall message asking you if you want to allow iRDDU access to the network. Just click "allow" or the equivalent button for your firewall. 

Fire up VLC (or your chosen client) and enter the URL as shown on the dropdown entry. If the planets are aligned and you've correctly sacrificed the goat the dashboard should appear after a second or so. Of course here in the real world nothing ever works first time but it's probably something simple.  The most likely issue is that your remote device isn't on the same part of your network as the race machine and can't see the PC's host name. In this case the easiest thing to do is use the IP address (of your race machine). If you don't know how to find the IP address then it's explained here:

Be a little careful though as IP addresses are usually allocated by your router when you turn your PC on and can change.  You can allocate IP addresses to specific devices on your network but I'd only recommend that if you're comfortable with manually configuring your router and it's very much outside the scope of this manual.

There are several streaming related options in the Options window.

If you don't understand what the Port Base is then just leave it at 8080 but if you are already using the alternate HTTP port range then you can change the base port to a range that's free.  The number of streams enables you to configure more or fewer simultaneous streams.  In practice all it does is change the size of the dropdown enabling you to configure more or fewer streams.

The Stream quality relates to the JPEG quality of the feed. 100 is best quality and 0 looks horrendous. It's a compromise between quality and performance, use 100% on a 1280x1024 stream and you may start getting performance problems - that's a lot of pixels to be moving around. In testing so far I've found 75-85 to be the sweet spot for most purposes but I'm testing on a 6 year old dual core laptop.  A quad core Haswell running at over 4GHz has a lot more power in hand.

The elephant in the room when streaming to remote devices is lag, though it's importance depends on the type of dashboard you're streaming.  A dashboard running a second behind the sim is going to be useless for a rev counter while it would be fine for less time critical values like temperatures and laptimes.  What makes most sense is to use a USB attached screen for the main dash and a larger tablet based devices running at a lower rate for race information.  That said it's now very easy to attach a phone to the wheel and run an F1 dash on it.  Try it out.

Lag can have a number of causes but one we can easily deal with is deliberate buffering at the client end.  Most streaming clients have some measure of buffering built in to avoid stuttering when streaming video - the Windows version of VLC by default has 333ms - and unless you turn it off the dashboard will lag behind by that amount. There is usually a setting in the preferences to set the buffering to 0, in VLC for Windows there's a checkbox on the Media -> Open Network Stream page called "Show more Options". Check that and you can change the Caching value to 0. In the Android version it's hidden in the preferences.  Firefox doesn't appear to buffer at all as there is barely perceptible lag when running it on the same PC as a Windows Form based dash.

Notwithstanding any client based caching/buffering there will always be lag on any network connected device compared to a normal Windows form based iRDDU dashboard. A Firefox client on the same machine as iRDDU has little or no discernable lag compared to a standard window, my Samsung Tab 2 has half a second or more. A lot will depend on your particular setup; your network, the speed of your race PC as well as that of the mobile device you're streaming to.

Another factor is the size of the JPEGs you're streaming.  You may get lower lag by reducing the quality of the stream in the options or making the dash smaller using the size controls.  Obviously both will have an effect on the uality on the client end; a lot will depend on the size of the target screen.  There's little point running an iPhone at retina resolutions when it's two feet away.

How many streams can iRDDU handle simultaneously?  I've no idea - try it, see how far you can push it. Streams have less impact on iRacing's paging bar than native windows form based dashboards and each port runs in it's own thread so they'll hopefully run on cores not being used by iRacing.  iRDDU only draws dashboards on streams which have active connections so feel free to set up a number of active ports and connect as and when you feel the need.