Any possibility of Real Dash support?

rac
Posts: 43
Joined: Tue Aug 14, 2018 5:06 am

Re: Any possibility of Real Dash support?

Post by rac »

I got some test coding done for another user and we tested it out to work well.

It doesn't require any support from Syvecs as such, but you need some general understanding of how to work your way around the datastream tables within SCal to understand what it is you are trying to achieve.

The Real Dash developer helped me understand their XML file format and so I've written a "how to" post with example and blank syvecs XML files that need to be loaded to RealDash so that it understands what it is receiving. The blank template obviously requires a bit of patience in filling out if your wanting to transfer a lot of parameters. But if you only want 1/2 dozen or so its pretty painless. Unfortunately I did not make a default XML because syvecs has multiple "default" CAN data streams and its quite time consuming to fill them all out. I hope I made enough sense in the link below that most can follow....

Information here:

http://www.realdash.net/forum/viewtopic ... 993a#p2966

Have fun! ;)
secure
Posts: 241
Joined: Tue Apr 21, 2009 6:38 am

Re: Any possibility of Real Dash support?

Post by secure »

Thanks!
4 days lock down! I will try it.
secure
Posts: 241
Joined: Tue Apr 21, 2009 6:38 am

Re: Any possibility of Real Dash support?

Post by secure »

https://youtu.be/EjKAwjqmG6Q

If you have follow the links above there is the instructions how to do it.
I'm running x86 based mini itx computer + lcd board + seed usbcan
The app is pretty fast very well coded actually!
Response is better than the video as video recorder has some noise cancellation making latency between audio and video.

The dashboard I'm using is "Data Engineers dream"
For the ones looking to get datas I have collected 40 or 50 datas from Syvecs.
Here is the XML code

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->
<RealDashCAN version="2">
  <frames>
    <!-- PARAMETERS FOR 'frame' -->
    <!-- 'id' can identifier (= baseId + id). Use 0x prefix to enter id as hexadesimal value. For example <frame id="3200"> is equal to <frame id="0x0c80">. The first twenty frames for Syvecs Ecu's is typicall 600 to 613, however this needs to be checked as it is customisable in your SCal.-->
    <!-- 'writeInterval' [optional] this CAN frame is written to CAN bus in this interval (milliseconds) -->
    <!-- 'endianess' [optional] the endianess of all frame values (big | little [default]). Syvecs is all "big". -->
    <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle all values in frame as signed values. Default in this template set to signed.-->
    <!-- PARAMETERS FOR 'value' -->
    <!-- 'targetId' links value to RealDash input, see RealDash manuals www for a complete list -->
    <!-- OR -->
    <!-- 'name' links value to RealDash input, input appears in 'ECU Specific' input category -->
    <!-- 'units' [optional] is used for post calculations, "F", "mph", "psi", "bit" which need to be specified for dashboard conversions to work properly -->
    <!-- 'offset' byte offset of the value in frame -->
    <!-- 'length' value length in bytes -->
    <!-- 'startbit' [optional] the index of the first bit of the value -->
    <!-- 'bitcount' [optional] number of bits used by the value -->
    <!-- 'endianess' [optional] the endianess of value (big | little [default]).  -->
    <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle this value as signed.  -->
    <!-- 'rangeMin' and 'rangeMax' [optional] if 'name' is used instead of 'targetId', this is the recommended value range in RealDash editor -->
    <!-- 'initialValue' [optional] if this parameter is present, value is written to CAN after connection has been made to the CAN bus -->
    <!-- 'conversion' [optional] if omitted, value is read 'as-is'.

           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;

           conversion="V/10" - result is incoming value / 10

           conversion="B0+15*(B1-43)" - result is 'first byte + 15 * (second byte - 43)

           conversion="V+ID200-74.3" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->
    <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.

           This makes it easier to convert the Equation from other apps.

           Example: conversion="B0+15*(B1-43)" and conversionABC="A+15*(B-43)" produce the same result -->
    <frame id="0x600" endianess="big">
      <value targetId="38" units="deg" offset="0" length="2" conversion="V/32" signed="true"></value>
      <!-- ignFinalPri1 -->
      <value name="ignBase1" units="deg" offset="2" length="2" conversion="V/32" signed="true"></value>
      <!-- ignBase1 -->
      <value name="cllTarg1" units="Lambda" offset="4" length="2" conversion="V/1000" signed="true"></value>
      <!-- cllTarg1 -->
      <value name="cllError1" offset="6" length="2" conversion="V/1000" signed="true"></value>
      <!-- cllError1 -->
    </frame>
    <frame id="0x601" endianess="big">
      <value targetId="37" units="RPM" offset="0" length="2" signed="true"></value>
      <!-- RPM -->
      <value targetId="0" units="AFR" offset="2" length="2" signed="true" conversion="V/1000*14.7"></value>
      <!--Lam1 value converted to AFR based on 14.7 stoich.-->
      <value name="latG" units="G" offset="4" length="2" conversion="V/1000" signed="true"></value>
      <!-- latG -->
      <value name="calSelect" offset="6" length="2" enum="0:CAL1,1:CAL2,2:CAL3,3:CAL4,4:CAL5,5:CAL6,6:CAL7,7:CAL8,8:CAL9,9:CAL10,10:CAL11,11:CAL12" signed="true"></value>
	  <!-- calSelect -->
    </frame>
    <frame id="0x602" endianess="big">
      <value targetId="42" units="%" offset="0" length="2" conversion="V/81.92" signed="true"></value>
      <!--tps1-->
      <value targetId="12" units="Volts" offset="2" length="2" signed="true" conversion="V/1000"></value>
      <!--vbat-->
      <value name="bap" units="mbar" offset="4" length="2" conversion="V/1" signed="true"></value> 
	  <!-- Baro -->
      <value targetId="64" units="kph" offset="6" length="2" conversion="V*.036" signed="true"></value>
      <!--vehicleSpeed-->
    </frame>
    <frame id="0x603" endianess="big">
      <value targetId="152" units="Celcius" offset="0" length="2" conversion="V/10" signed="true"></value> 
	  <!-- eot -->
      <value targetId="27" units="Celcius" offset="2" length="2" conversion="V/10" signed="true"></value> 
	  <!-- act1 -->
      <value targetId="14" units="Celsius" offset="4" length="2" signed="true" conversion="V/10"></value>
      <!--ect1-->
      <value targetId="109" offset="6" length="2" conversion="V/10" signed="true"></value> 
	  <!-- egt1 -->
    </frame>
    <frame id="0x604" endianess="big">
      <value targetId="151" offset="0" length="2" conversion="V/1000" signed="true"></value>
	  <!-- eop1 -->
      <value targetId="64" units="bar" offset="2" length="2" signed="true" conversion="V/1000"></value>
      <!--map1 (converts mbar to kPa)-->
      <value targetId="202" offset="4" length="2" conversion="V/1000" signed="true"></value> 
	  <!-- fp1 (converted to bar) -->
      <value targetId="20" units="%" offset="6" length="2" conversion="V/10" signed="true"></value>
	  <!-- fuelComp -->
    </frame>
    <frame id="0x605" endianess="big">
      <value targetId="200" offset="0" length="2" enum="0:UNKNOWN,1:REVERSE,2:NEUTRAL,3:FIRST,4:SECOND,5:THIRD,6:FOURTH,7:FIFTH,8:SIXTH,9:SEVENTH,10:EIGHT" signed="true"></value> 
	  <!-- gear -->
      <value targetId="153" offset="2" units="onff" length="2" enum="0:OFF,1:ON,2:RUNON,3:DISABLED"></value> 
	  <!-- fan1 -->
      <value name="wgFinalDuty1" offset="4" units="%" length="2" conversion="V/81.92" signed="true"></value> 
	  <!-- wgFinalDuty1 -->
      <value name="mapMax" units="kPa" offset="6" length="2" signed="true" conversion="V/10"></value>
      <!--mapMax-->
    </frame>
    <frame id="0x606" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value name="limpMode" offset="0" length="2" enum="0:OFF,1:LIMPSWON,2:ECT COLD,3:EOT COLD,4:SENSOR WARNING LEVEL,5:AUTO TRANS,6:EOP TRIP,7:CCP TRIP,8:KNOCK SHUTDOWN,9:EOT TRIP,10:ECT TRIP,11:FP TRIP,12:PREIGN SHUTDOWN,13:TIME ON LOAD LIMIT,14:TRQ LIM TRIP,15:VVT FAIL,16:VBAT TRIP,17:LEAN TRIP,18:ACT TRIP,19:ECP TRIP" signed="true"></value>
	  <!--limpMode-->
      <value name="wgMapMax1" units="kPa" offset="6" length="2" signed="true" conversion="V/10"></value>
      <!--wgMapMax1-->
    </frame>
    <frame id="0x607" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x608" endianess="big">
      <value name="cyl01Knock" offset="0" units="%" length="2" conversion="V/40.96" signed="true"></value>
	  <!--cyl01Knock-->
      <value name="cyl02Knock" offset="2" units="%" length="2" conversion="V/40.96" signed="true"></value>
	  <!--cyl02Knock-->
      <value name="cyl03Knock" offset="4" units="%" length="2" conversion="V/40.96" signed="true"></value>
	  <!--cyl03Knock-->
      <value name="cyl04Knock" offset="6" units="%" length="2" conversion="V/40.96" signed="true"></value>
	  <!--cyl04Knock-->
    </frame>
    <frame id="0x609" endianess="big">
      <value name="cyl01KnockIgnRtd" offset="0" units="deg" length="2" conversion="V/32" signed="true"></value>
	  <!--cyl01KnockIgnRtd-->
      <value name="cyl02KnockIgnRtd" offset="2" units="deg" length="2" conversion="V/32" signed="true"></value>
	  <!--cyl02KnockIgnRtd-->
      <value name="cyl03KnockIgnRtd" offset="4" units="deg" length="2" conversion="V/32" signed="true"></value>
	  <!--cyl03KnockIgnRtd-->
      <value name="cyl04KnockIgnRtd" offset="6" units="deg" length="2" conversion="V/32" signed="true"></value>
	  <!--cyl04KnockIgnRtd-->
    </frame>
    <frame id="0x60A" endianess="big">
      <value name="fuelFinalPri1" offset="0" units="ms" length="2" conversion="V/1000"></value>
	  <!--fuelFinalPri1-->
      <value name="fuelDutyPri1" offset="2" units="%" length="2" conversion="V/40.96" signed="true"></value>
	  <!--fuelDutyPri1-->
      <value targetId="43" offset="4" length="2" conversion="V/4096" signed="true"></value>
      <!--fuelMltCll1-->
      <value name="fuelBase1" offset="6" units="ms" length="2" conversion="V/1000"></value>
	  <!--fuelBase1-->
    </frame>
    <frame id="0x60B" endianess="big">
      <value name="vvtIn1" offset="0" units="deg" length="2" conversion="V/32" signed="true"></value>
      <!-- vvt1In -->
      <value name="vvtIn2" offset="2" units="deg" length="2" conversion="V/32" signed="true"></value>
      <!-- vvt2In -->
      <value name="dpcMode" offset="4" length="2" enum="0:OFF,1:ACTIVE,2:BRAKING,3:LEFTFOOTBRAKING,4:HANDBRAKE"></value>
      <!-- dpcMode -->
      <value name="dpcDuty" offset="6" length="2" units="%" conversion="V/81.92" signed="true"></value>
      <!-- dpcDuty -->
    </frame>
    <frame id="0x60C" endianess="big">
      <value name="launchState" offset="0" units="onff" length="2"></value> 
	  <!-- launchState -->
      <value name="launchSwitch" offset="2" units="onff" length="2" enum="0:OFF,1:ON"></value> 
	  <!-- launchSwitch -->
      <value name="altState" offset="4" units="onff" length="2"></value> 
	  <!-- altState -->
      <value name="alsSwitch" offset="6" units="onff" length="2" enum="0:OFF,1:ON"></value> 
	  <!-- alsSwitch -->
    </frame>
    <frame id="0x60D" endianess="big">
      <value name="calSwitch" offset="0" units="onff" length="2"></value> 
	  <!-- calSwitch -->
      <value name="runMode" offset="2" length="2" enum="0:INITIAL,1:PREINJECT,2:STOP,3:CRANK,4:RUN"></value> 
	  <!-- runMode -->
      <value targetId="65" offset="4" length="2" enum="0:OFF,1:ON"></value> 
	  <!-- knockWarnLight -->
      <value name="syncFault" offset="6" units="onff" length="2" enum="0:NONE,1:LONGTOOTHGAP,2:SHORTTOOTHGAP,3:TIMEROVERFLOW,4:CAMERROR,5:UNKNOWN"></value> 
	  <!-- syncFault -->
    </frame>
    <frame id="0x60E" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x60F" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x610" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x611" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x612" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
    <frame id="0x613" endianess="big">
      <value targetId="placeholder" offset="0" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="2" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="4" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
      <value targetId="placeholder" offset="6" length="2" units="placeholder" conversion="placeholder" signed="true"></value>
    </frame>
  </frames>
</RealDashCAN>
Here is the Syvecs setup

Image

If anyone also interested with my modified dashboard I can sent *.RD design file but you may have some problems with aspect ratio etc..

** Only SPEED data is not working on me. I'll fix it.
Post Reply