Information you will need to get out of your SCal file and where to find it;
Datastreams → CAN → Transmit Identifier:
Here you will find your Frames 1 → 20, 40 etc., depending on your ECU with Frame IDs, given as Hex Values, i.e. 600h, 601h,… 60Ah… etc.
You will not need the “h” in the .xml. Where frame “id” is required, you will need to prefix the Syvecs value with “0x”.
e.g. Frame 1, could be id = “0x600” in the .XML. The template XML I will post will have the most common frame id’s for the first 20 frames. They need to be checked against your SCal.
If you have 40 frames available then you go ahead and cut and paste…. But I doubt that 20 frames x 4 slots (80 potential parameters) isn’t enough for what you want out of realdash!
Datastreams → CAN → Transmit Content:
Here you will find both the content and information about the content (units, conversion formula, range, signed or unsigned).
The table is arranged with Frames and “Slots”. The only thing relevant with the arrangement of the table for the XML is how to derive the XML “Offset” value which corresponds to the Slots;
Slot 1, Offset = 0.
Slot 2, Offset = 2.
Slot 3, Offset = 4.
Slot 4, Offset = 6.
In the template XML, I have pre-populated the 4 slots for every frame. Delete them if not required.
When you click on the cell (frame and slot) with the data you want the top left of the Syvecs SCal screen will show important information;
e.g. Convert using y = (x/1000)+0 to engineering units in the range of 0.5 – 1.5 (Combustion Ratio, Lambda, Signed).
In this example the Parameter is “Lam1”. The important information to use from this is;
“x/1000 + 0” will become conversion = “v/1000”
Signed will be used for signed=“true” (or otherwise excluded).
Lambda will become units = “Lambda”.
If you intend on making custom gauges within real dash and use Syvecs data that is not easily transferrable to RealDash Target IDs (see RealDash Target Identifiers http://realdash.net/manuals/targetid.php)
Then you will need to exchange “targetId” for “name” and make name = “Syvecs Parameter Abbreviation” (e.g. name = “pps”). You can then consider adding range (see XML comments within template file).
Creating the .xml file;
I used “XML Notepad” which lays out the required information nicely and builds the file for you, but there are many options here I think.
If you start with the template I posted – all of the “placeholder” text needs to be exchanged for the correct text from your SCal (Syvecs file) and TargetID table (realdash website).
If you do not need a frame, delete it.
Here is the Lambda example continued;
- All frames will be “big” endianness.
- All lengths will be “2”.
- Id, value signed, offset, units and conversion are as per earlier description and are derived from your SCal file.
- targetId will the value from the corresponding table http://realdash.net/manuals/targetid.php
If Syvecs is sending data that measures the same aspect of a TargetID you want to use but with different units, you can adjust the conversion formula to transpose the data to the required units as used by the TargetID.
e.g. if you are sending lambda but wanted to display AFR with a base stoich of 14.7 in the real dash display, then the above example could be modified to;
- units changed to “AFR”
- targetId changed to “0” from online realdash table.
- conversion changed with the “*14.7” as Lambda stoich = 1, now will be displayed as 14.7.
Additionally, RealDash can use the same frame data for both AFR and Lambda, in this case you could do this;
Realdash may also use its TargetIDs to calculate other parameters – in this case the calculated parameter will only be correct if the correct units are sent. This may be another reason to adjust the conversion formula, for instance Syvecs may send pressure in mbar and realdash requires it in kPa.
Note – to get the most out of your CAN data, its likely you will want to modify the “Datastreams → CAN → Transmit Content” section within your SCal.
Simply find a SPARE, or parameter that you do not need with a sending frequency that suits you (check Datastreams → CAN → Transmit Frequency), hit ENTER and choose the desired output parameter.
R.