The problem with OBD2 is that data is received only per request. So in order to get the RPM, RealDash must send a request for RPM and then gets an reply that contains the data. Same thing applies to any other data, like Neutral switch for example.
These values are not part of the SAE standard of values that are read from the OBD2. Wikipedia has a nice article about standard PIDs:
OBD-II PIDs - Wikipedia
These standard PIDs do not include any toggle switches etc, but basically only basic diagnostics values. That what OBD2 port is there for.
While its possible to read custom values from the OBD2 port, it would require for you to know manufacturer specific request (PID) in order to read the data. These databases exist, but are very expensive to get into and their licenses do not allow usage of that data outside of the vehicle service purposes.
So OBD2 is not very good for displaying real time data from your vehicle as it is for diagnostics purposes. Some vehicles send data very quickly to OBD2, but some are very sluggish. Imagine a situation:
- You want to know 10 different values from your vehicle.
- Lets set a round trip time for messages being 20 milliseconds. This includes:
- RealDash sends a command to adapter
- Adapter sends the request to vehicle bus
- Vehicle responds and adapter parses the reply to common OBD2 format.
- Adapter sends reply to RealDash.
Now, asking RPM takes 20 milliseconds. So you get RPM 50 times per second. Not too bad. But ask 10 total values, the update rate of RPM drops to 5 times per second. Still maybe reasonable, but in real life very few cars have 20ms roundtrip. It could be more like 100ms.
There are ways around this, like multipid requests, custom PIDs that contain multiple sensor values in single request, etc. Problem is that support for these (and actual PIDs) are vehicle specific and that information is very hard to find.
So, while OBD2 is an easy way to get started reading vehicle data, its far from optimal to use as real time data display. This is why I always say, that if you are serious about display customization, forget OBD2 and use direct CAN connection. If your vehicle stock ECU has no CAN support, leave it as it is and try to enjoy whatever data you get.
Of course, interpreting CAN frames and their contents can also be very time consuming and difficult. But at least you will have fast response and pretty much everything imaginable will be available. But any day it beats digging out custom OBD2 PIDs and having a sluggish and slowly responding dash at the end.