SavvyCAN Adapter for Tesla Model S -...
Transcript of SavvyCAN Adapter for Tesla Model S -...
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 1
UserManual
SavvyCAN Adapter for Tesla Model S
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 2
INTRODUCTIONThe EVTV Tesla Model S SavvyCAN Adapter allows you to easily capture and analyze Controller Area Network (CAN) Traffic from the Tesla Model S automobile. It is somewhat focused on the Powertrain CAN Bus 3 but can certainly be used for the other Tesla CAN bus examination. Analyzing the Tesla CAN bus is challenging in several ways. First, their OBDII connector is essentially useless. All the real CAN buses are on a very non-standard diagnostic port located immediately under the 17inch center console display and behind a small storage compartment there. Second, they actually have at least six different data busses that could be termed a CAN bus. Third, these 500kbps busses are just loaded – we’ve logged frame rates as high as 3500 frames per second on a 500 kbps bus. This is far beyond the abilities of most of the inexpensive OBDII CAN tools available and even beyond the reach of many such commercial devices without dropping frames. The EVTV Tesla Model S CANdue CAN Bus Kit includes:
1. EVTV Due CAN Multicontroller Adapter adapter with a Tesla Model S diagnostics port harness/connector.
2. Generalized Electric Vehicle Reverse Engineering Tool (GEVRET)
software to run on the hardware adapter.
3. SavvyCAN CAN Data Analysis software to run on any laptop or desktop computer – Microsoft Windoze, Linux, or MAC OSX.
4. USB cable with printer B connector.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 3
EVTVDueCANMulticontrollerAdapter
The EVTV Due CAN Muticontroller Adapter hardware is a 84MHz SAM3x ARM Arduino Due compatible multicontroller with integrated CAN bus transceiver. It is housed in a plastic enclosure with a Mini B Universal Serial Bus printer port for connection to a laptop and an external harness to mate with the Tesla Model S diagnostics port connector.
The internal multicontroller board provides a single differential CANbus port accessible through screw terminals on one end. These connections are wired to the Tesla Model S diagnostics port mating connector through a cable that exits the enclosure through a weatherproof gland nut on one end.
A USB B port is provided at one end allowing connection from a laptop computer to the adapter. This is the much more robust printer style USB port. It also features a 6-16vdc power input terminal and ground allowing the board to run independently of a laptop using vehicle 12v power. . The harness comes prewired for pins 1 and 6 of the diagnostics port to CAN0. This is the PowerTrain CAN bus or CAN3 bus on the Tesla Model S. However,
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 4
additional pins are provided for this connector allowing you to modify which CAN bus is monitored.
Tesla Model S Diagnostics Port Connector X437 Pin Definitions
Pin Description
1 CAN 3 HI – Powertrain Bus
2 CAN 4 HI – Body Fault Bus
3 K bus ISO9141 single wire LIN
4 CAN 6 HI Chassis Bus
5 CAN 2 HI Body Bus
6 CAN 3 LO Powertrain Bus
7 CAN 4 LO Body Fault Bus
8 Not used
9 Reference Ground
10 12v
11 CAN 6 LO Chassis Bus
12 CAN 2 LO Body Bus
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 5
SOFTWARETheTeslaCANadaptercomeswiththeGeneralElectricVehicleReverseEngineeringTool(GEVRET)softwareinstalled.YoucanconnectanylaptopwithanordinaryserialterminalscreentotheUSBportofthedevicetoconnectdirectlytothedeviceifyoulike.Entering? onthecommandlineandpressingENTERwillcauseamenuscreentocomeup.YoucanusethistomanuallyselectCANbusselections,speeds,etc.Normally,thiswillnotbeusedbymostusersofthisproduct.AmuchmorecapableCANanalysisprogramisavailableforusingtheadapterfromalaptopcomputerviaUSBport.ItistitledSavvyCANandfeaturesanumberofadvancedCANanalysisfunctions.ButitmakesitveryeasytologoffCANtrafficandsaveittofiles,loadthemlaterforanalysis,andexaminethemwithanumberofviews.SavvyCANisavailableforWindoze,MacOSX,andLinux.ItexchangesmessageswiththeTeslaCANadaptertosendandreceiveCANmessagetrafficautomatically.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 6
LinksforbothSavvyCANandGEVRETareavailableattheEVTVstorewebsiteunderthedetailedviewoftheTeslaCANbusadapterproduct.Theseprogramsareundercontinuousdevelopmentsoforbestresultsensureyouhavethelatestversionsinstalled.Eitherprogramcanalsobefoundathttp://github.com/collin80.ThebasicprocessofcapturingCANdataisprettystraightforward:
1. PushdownonthesmallshelfbelowtheTeslaModelScenterscreenuntilitunlatches.
2. Reachinandlocatethesmallwiringharnesswithdiagnosticsconnectorandpullouttogainaccess.
3. ConnecttheEVTVadaptertothisconnectoruntilitclicks
4. ConnectyourlaptoptotheUSBportontheEVTVCANadapter
5. StarttheSavvyCANsoftwareprogramonyourlaptop.
6. Intheupperrighthandcornerofthescreen,selectyourSerialPortusedtoconnecttheadapterfromthedropdownlistprovided.
7. ClickontheCONNECTTOGVRETbutton.GVRETistheGeneralizedVehicleReverse
EngineeringToolsoftwareinstalledontheadapter.
8. UnderFIRSTBUS,select500000asthedesiredspeedandclickSETCANBUSSPEEDS.TheTeslaModelSDriveTrainCANbusoperatesat500kbps.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 7
AtthispointtheSavvyCANdisplayshouldstartshowingCANtrafficintheDATAfield.MakesureyourModelSis“started”andthedashinstrumentdisplaysarelivetoensureflowofCANtraffic.Youarenow“recording”CANtrafficfromtheTeslaModelSdrivetraintomemory.
TOTALFRAMESCAPTUREDThisdisplaysthetotalnumberofmessageframesreceivedfromtheadapterandheldinmemory.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 8
FRAMESPERSECONDThisistherateofframesbeingreceivedpersecond.
SUSPENDCAPTURINGPressingthisbuttonsimplydiscontinuescapturingframesfromtheporttothememory.ItalsochangesthebuttontoRESUME CAPTURING.Inthisway,youcansimplystopandstartframecapturesatwill.
NORMALIZEFRAMETIMINGNormally,theframesaredisplayedwiththetimestampappliedbytheGVRETdeviceonreceipt.Thisisthenumberofmicrosecondssincethedevicewasfirstpoweredup.Butyoumightwantsomethingmoreinlinewiththecapture.ClickNORMALIZEFRAMETIMINGtosettheFIRSTframereceivedastime000.Allsubsequentframetimeswillbeinrelationtothatframe.
CLEARFRAMESThisbuttonsimplyresetstheloggingmemorytozeroframes–effectivelyerasingeverythingyou’vecapturedsofar.YoucanuseCLEARFRAMEStoclearmemoryandthenRESUMECAPTURINGtostartafreshcaptureatanytime.
AUTOSCROLLWINDOWNormally,thedatawindowsimplydisplaysthefirst25framesorsoandyoucan“scroll”downwiththemousetoviewsubsequentframes.Thischeckboxallowsyoutoautoscrollthewindowtotheleftsothatthenewestdataalwaysappearsasthebottomlineofthescreen.InthiswayyouarealwaysviewingtheLAST25framesreceived.Youcanstillscrollupanddown.
INTERPRETFRAMESInterpretFramesallowsyoutoexaminevaluescontainedinCANframes.Itperformsanynecessarymathfunctionsonthedataforyoutogettherealvalue.Forexample,Voltagemightbeinbytes1and2ofaframeinLSB/MSBformat,andmultipliedby100.InterpretFrameswouldthentakebyte2*256,addthevalueinframe1,anddividethetotalby100togetvoltage.ThesefunctionsaredefinedforeachframeinaVectorGraphicsformat.DBCfile.Thinkofthisasarulesfileorlibraryforallthedifferentdatadefinitionsyouhave.ThisfilecanbeLOADEDbyusing
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 9
theLOADDBCfileonthetopbarFILEmenu.TheycanalsobeSAVEDusingtheSAVEDBCoptiononthesamemenu.DBCfilesarenormallycreatedandeditedseparately.
OVERWRITEMODEOverwritemodeshowsalltheUNIQUEmessageIDsandoverwriteseachwiththelatestdataasitisreceived.Worksincapturebutnotonaloadeddatalog.
FRAMEFILTERINGFramefilteringisaverypowerfulfunctionallowingyoutodefinespecificallywhichframesaredisplayed.Thewindowbeneathlistsalluniqueframesreceivedsofar.TheALLbuttonatthebottomputsacheckboxnexttoeachmessageIDassuringthattheywillbecaptured.TheNONEbuttonremovesallcheckboxes.YoucanofcourseputcheckmarksnexttoanymessageIDsofinterestandthosewillsubsequentlybedisplayed.Notethatallframesarestillcapturedtomemory.Thefiltersimplydetermineswhichframesaredisplayed.
FRAMENUMBERLeftmostcolumnonthedisplayliststhenumberofthemessageframereceived.Eachincomingframeisassignedasubsequentnumber.
TIMESTAMPThetimeatwhichtheassociatedframeisreceivedstartingwiththebeginningofcapture.Asnoted,thiscanalsobe“normalized”withthefirstframeattime00000.
IDThe11-bitor29-bitmessageidentificationnumberfromthereceivedframe.
EXTThiswilldisplaya1if29-bitextendedframewasreceivedor0ifstandardframe
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 10
BUSSomeadapterscansupporttwoCANbussesandSavvyCANcanreceiveCANtrafficfromtwobussessimultaneously.Thiscolumnshowswhichbus(usually0and1)thattheassociatedmessagewasreceivedon.Thiswillalwaysbe0fortheTeslaModelScapturedevice.
LENNumberofdatapayloadbytesinthismessage.
DATAThisshowstheactualdatapayloadbytesreceivedinhexadecimalformat.IfINTERPRETFRAMESisonitmayalsoshowadditionaldatashowingwhatiscontainedinthosebytesasinterpretedbytheDBCfilerules.
FILEMANAGEMENTInadditiontothemaincommunicationsscreen,SavvyCANhasatopbarmenuallowingaccesstootherfunctionsandindeedotheranalysisscreens.
SAVELOGFILETheFILEmenulistsanumberofoptionsallowingyoutosaveandloaddatainvariousfiles.SAVELOGFILEisthemostimportantfunctionofSavvyCAN.ItallowsyoutosavealltheCANtrafficyouhavecapturedtoyourharddriveinavarietyoffileformatsforlaterusebySavvyCAN,orbyotherprogramsorspreadsheets.
LOADLOGFILELoadlogfileofcourseistheotherendofthis.InadditiontoCAPTURINGCANdata,SavvyCANprovidesmanyanalysistoolsthatcanbeappliedtopreviouslycapturedlogfilesaswell.LOADLOGFILEsimplyallowsyoutoreloadapreviouscaptureintomemoryforanalysis.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 11
SAVEFILTEREDLOGFILEAspreviouslydescribed,thefilterwindowonthemaincapturescreensimplydetermineswhatmessagesareDISPLAYED–allmessagesbeingretainedinmemory.Butyoumaytrulyonlybeinterestedinafewmessages.SAVEFILTEREDLOGFILEallowsyoutosaveadatalogofJUSTtheframesofinterest.Inthisway,thenexttimeyouloadthatfile,itwillcontainonlythemessagesofinterestandwillofcoursebeamuchsmallerfileaswell.
SAVEANDLOADFILTERDEFINITIONSimilarly,theremaybequiteabitofworkdevelopingyourmessageIDfilterwhereyouhavehundredsofpossiblemessages,andseveraldozenthatyouAREinfactinterestedin.Thisfunctionallowsyoutosaveafilterdefinition,andlaterreloaditwithouthavingtomanuallycheckeachboxagain.
LOAD/SAVEDBCFILESDBCfilesaresimplyafileformatdevelopedbyVectorGraphicstosavedatadefinitionsofCANdatainalibraryfileallowingyoutointerpretthoseframeslaterusingthedefinitions.Thefileformatsimplyendsin.dbc.SavvyCANactuallysupportstheVectordatadefinitionfilesandyoucanimportandexport.DBCfilesfromotherprogramsintoSavvyCAN.YoucanalsoEDITMESSAGES/SIGNALSandSAVEDECODEDFRAMES–thatismessagesforwhichthedatadefinitionisknown.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 12
REVERSEENGINEERINGTOOLSSavvyCANgoesquitebeyondcapturingandsavingCANmessagesfromthebus.ItprovidesavarietyofdataanalysistoolsthatcanbeofhugeassistanceinreverseengineeringwhatmessagesdowhatonaCANbus.ThesetoolsareavailableintheRETOOLSmenuoftheSavvyCANtopbarmenu.
FLOWVIEWFlowviewisprovidedtoallowyoutoselectasinglemessageIDandthenfollowitsflowthroughanentireCANcapturesession,notingthechangesfromframetoframeforthatsinglemessageID.Youbasically“play”backthecapturerecordingwhilefocusingonasingleframe.Upto8databytesaredisplayedandyoucaneasilycomparetheirnumericcontentstothestartupstateortothepreviousframe.FlowViewalsographseachofupto8databytesinthepayload.Andfinally,a64bitarrayofall8databytesandeachbitofeachbyteisgraphicallyrepresentedonscreensoyoucanseeindividualbitswinkinandoutasitchangesfromframetoframe.
FRAMEIDsFOUNDThisboxlistsalluniqueCANmessagesavailableinthecurrentcapturefileinmemory.YouselecttheframetoexaminewithFlowViewbyhighlightingoneofthesemessageIDS.
PLAYBACKCONTROLThefamiliarplaybackcontrolsallowingyoutoplaythroughtheseriesofCANmessagesofthatID,eitherautomaticallyormanuallysteppingthroughthemoneatatime.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 13
PLAYBACKSPEEDAllowsyoutovarytherateatwhichautomaticplaybackoccurs.
LOOPPLAYBACKWiththischeckbox,onceendoffileisreached,youcansimplystartoverwiththefirstmessagecapturedwiththatmessageID.
CURRENTFRAMEShowsyoutotalframesofthismessageIDinthefileandtheframenumberofthecurrentframedisplayedfromthisfile.
SYNCHRONIZEWINDOWSWhenyou“playthrough”thesequenceofoccurrencesofabyteinflowview,ifthischeckboxiselected,theplayinflowviewissynchronizedandlinkedwiththeactioninthemainSavvyCANserialcommunicationspanel,ANDwiththeplaythroughintheGRAPHVIEWscreen.Sothatatanyparticularmoment,allthreeviewsaredisplayingthesamevalue.ThisletsyouSTOPtheactionatanyparticularpointinthegraphviewoftheentirecapture,andactuallyseethevaluesofthemessageIDunderscrutinyinflowview.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 14
GRAPHBYTIMESTAMPNormally,theframesforanyparticularmessageIDarenumberedforthisviewandindeedontheleftwedisplaythecurrentframenumberandtotalnumberofmessageframesofthatID.Thesmallgraphinthelowerrighthandsideofthepanelnormallygraphsthe7databytesbyframenumber.Byclickingthis,thegraphwillshowTIMEalongthehorizontalaccessinstead,makingiteasiertocompareourlocationwiththeGRAPHfunctionelsewhereorthemaindataview.Showsgraphofeachdatabytebytimestampoftimemessagereceived.
AUTOREFERENCEAllowsyoutoeitherlisttheinitialframefromthefileorthepreviousframedisplayedasthereferenceframewhichyouarecomparingcurrentframeto.Thecentraldisplayareaofthescreenshowsthereferenceframeandthecurrentframewithhexadecimalvaluesforeachcurrentbyte.Theseareupdatedastheframesareplayed.
DATASEEKVALUESDataseekvaluesallowsyoutosetseekpointsintheseriesofmessagestostoptheplayback.Theplaybackwillrununtilthatspecificvalueisfoundinthatbyte.Atthatpointitwillstop.Youcanthenchangespeedsormakeotheradjustmentsandthencontinue.
DATABYTECOLORSListsthecolorsusedtographeachdatabyteinthegraphdisplaytotheright.Thisrunninggraphupdatesastheframesareviewedintheir“flow”.
BITSBitsdisplayseachdatabytefrom0to7inthedatapayload.Itfurtherbreaksouteachbitofthosebytesasbit0-7.Thisformsa64-bitdisplaygrid.BitssetintheFIRSTframeofthismessageIDaredisplayedinblack.ReddenotesbitsthatWEREblack,,butarecurrentlyreset(0).GreendenotesbitsthatWERENOTsetinitially,butnowARE.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 15
GRAPHDATADatagraphingisapowerfulanalysistoolallowingyoutographdatavaluesovertime.Better,youcangraphseveralofthemoverthesametimeframe.Thisletsyouexaminerelationshipsbetweendifferentdataastheyinteract.Forexample,asyouseeyourtorqueincrease,indicatingalarge
demandforcurrent,youmaynoticeasmallerdipinanothervaluethatisconcurrent.Thatvaluemayturnouttobevoltage.Butonlybyseeingthetwointeractcanyoumakethatdetermination.Tocreateagraph,pressCNTRLandclickonthegraphscreentobringupthegraphmenu.Thisscreenallowsyoutodoanumberofthings.Youcanloadandsaveagraphdefinitionsfilecontainingyourgraphdefinitions.
YoucanalsosaveagraphIMAGEfileofthegraphicimageasitappearsonscreen.Youcansaveaspreadsheetofthedatausedonthegraph.Butmostimportantlyitallowsyoutoaddanewgraph.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 16
Thisisanewdatavaluewhichwillbegraphedontheformonscreen.Andyoucanaddanynumberofthesetothescreen.WhenyouselectADDNEWGRAPH,youwillseeanewcontrolboxtitledGRAPHSETTINGS.Thisiswhereyouentervaluesdefiningwhatandhowtographdata.NAMEissimplythenameofthevalueshowninthelegend.IDisthemessageIDoftheCANmessageyouwishtograph.DATAisthecrucialelement.Itdefinesthebyteorbytestobegraphed.Thisisavaluebetween0and7indicatingabytecontainingavalueofinterest.Youcanentermultibytevaluesasin2-3wherebytestwoandthreearetreatedasa16-bitinteger.InthecaseofLSB/MSBvalues,youcanenter3-2toindicatethat.SIGNEDindicatesifyouwanttotreatthisasasignedintegerorunsignedinteger.MASKallowsyoutomaskoffindividualbitsofthevaluetoignore.BIASallowsyoutooffsetthegraphverticallyfromthezerooriginline.SCALEallowsyoutomultiplyordividethevaluebyanynumber–effectivelyscalingthesizeofthewaveform.STRIDEallowsyoutographeverynthdatapointinsteadofeachone.Forexample,enter10tographevery10thmessageframeofthatID.Forsomelargedatasetsormessagesthatoccurveryfrequently,thiscandeclutterthedisplayandimproveperformanceonlargedatasets.AndCOLORwillallowyoutodefinewhatcolorthegraphlinewillappear.Youcanclickonthetimelinebelowtoexpandorcontractthegraphintime.Andyoucanclickonthevaluestotheleftofthegraphtoexpandorcontracttherangeofvaluesdepicted.Youcanalsoclick/dragonthecentralgraphareatozoomBOTHtimeandvalueinandout.Inthisway,youcanaddmultipledataelementsfromthesameordifferentCANmessagesalltothesamegraph.Youcanzoominandoutandexaminetheirrelationshipsinvalueandtime.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 17
Andyoucansaveyourdefinitionsorevenanimageofthegraphtoafile.Youcanloadthedefinitionslatertographthesamedatafromadifferentlogfile.
FRAMEDATAANALYSISSelectFrameDataAnalysisfromtheRETOOLSmenutocalluptheDetailedFrameInformationscreen.ThisscreenprovidesstatisticaldataoneachspecificCANmessagereceived.AllreceivedmessageIDSarelistedontheleftundertheFrameIDsandindeedthispaneldisplaysthetotalnumberofuniquemessageIDSreceivedinthiscaptureordatalog.HighlightanymessageIDtodisplaystatisticaldetailsintherighthandpanel.Inthisexample,wehighlightmessageID116andseethatthecapturelogcontains21,903instancesofthismessage,thatthedatalengthinthe116messageis6bytes,andthattheaveragetimeintervalbetweenreceiptsofthismessageis9999microsecondsoraboutonemessageever10milliseconds.IfweexpandDataByte1welearnthatthevalueinbyte1rangesfrom0x10to0xC0.Andahistogramprovidesthenumberoftimeseachvalueappearsinthedatalog.Themostcommonvalueis0x40whichappearsin20,064messages.ABitfieldHistogramactuallyshowsthenumberoftimeseachbitofthedatapayloadistrue.WeseenobitsinByte0areeverlit,butbit22(byte2,bit6)isset12,049timesinthe21,903messagesreceived.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 18
FILECOMPARISONFilecomparisonisapowerfulfunctionallowingyoutoquicklycomparetwodatalogsanddeterminewhatmessageIDstheyhaveincommon,orconversely,whichmessageIDsareuniquetooneortheotherofthetwofiles.LetsassumewehavedoneaCANdatacaptureofacarNOTchargingandthenthesamecarcharging.WemightwanttoseewhatnewmessageIDsshowuponcewegointochargemode.
Ourfirstorderofbusinessistoloadourreferencefile.ClickLOADAFILE.AtthispointLOADEDREFERENCEFRAMESshouldgiveusanindicationofthetotalnumberofreferenceframesinourfile.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 19
ClickLOADANEWFILEandselectafiletocompare.ThefilenamewillbelistedastheFileofInterest.Atthispoint,wewillseethreeexpandablefunctionslistedinthemainscreen.IDsfoundonlyinfileofinterest.IDSfoundonlyinreferenceframes.IDSfoundinboth.WecanseethatwehavethreenewmessageIDsthatappearinourcharging.txtlogthatdonotappearinournotcharging.txtreferencefile.Theyare0x508,0x620,and0x63A.ThosemessageIDsmightbearfurtherexaminationifwewereseekingcluestothechargingprocessinCANdata.FinallySAVEDETAILSTOFILEwillallowustosavethisanalysistoanexternalfileforuseelsewhere.
SENDINGFRAMES–SIMULATINGTHESYSTEMInourworkreverseengineeringtheCANcontrolofvariousOEMelectricvehiclecomponents,thecentralapproachistoFIRSTrecordanactualCANbusmessagetrafficofanoperatingCARwhileitisintheactofdoingwhatwewantthecomponenttodo.Wecanthenplaythisrecordingbacktoastandalonecomponent,anditshouldrespondexactlythewayitwouldifitwereinstalledinthevehicle.Webasicallythendiscardindividualmessagesfromtherecording,andseeifitwillstilldoit.GraduallywediscardALLthemessagesuntilwegetdowntoJUSTthosemessagesrequiredtogetthecomponenttodothetask.ThisallowsustofocusourreverseengineeringandanalysisonJUSTthosemessagesnecessarytooperatethedevice–ignoringallothers.Formostdevices,thisistwoorthreemessagesbutinsomecasesuptoadozenwesend,andperhapsasimilarnumberitrespondswith.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 20
SavvyCANprovidestwofunctionsjustforthis.PLAYBACKandCUSTOM.PLAYBACKisorientedtowardtakinganentirelogfile,filteringsomemessagesperhaps,andplayingitbacklikearecording.CUSTOMismoreafunctiontodesignandsendindividualframes.Youcouldforexample,hookupSavvyCANtoanoperatingvehicle,andhaveitperiodicallytransmitasingleframecontainingsomedatathatchangestheoperationofthevehicle.Itdoesn’tsendanentirelogfile,justperiodicallyinsertsamessage.
PLAYBACKAsdescribed,PLAYBACKisprovidedtoallowyouto“playback”apreviousdatacapturemuchasyouwouldataperecording.Itsimplyputsthesamemessagesbackonabusinthesameordertheywereoriginallyreceived.Thedevilbeinginthedetails,italsoallowsyoutomodifythisplaybacktosomedegree.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 21
Atthetopoftheplaybackscreenareourplaybackcontrols–muchlikeavideocameraortapeplayer.Fromlefttoright,
–BACKstepsbackwardoneframe.PAUSE–pausestheplayback
REVERSE–playsbackwardsfromcurrentpositionSTOP/RESET–endsplaybackandreturnsustoframeonePLAY–playsthecurrentfileforwardFORWARDONEFRAME–sendsthenextframeinsinglestepfashion
PLAYBACKSPEEDANDBURSTRATEPlaybackspeedandburstrateallowyoutomodifythespeedatwhichframesaresent.Speedisnormallyavalueinmillisecondsbetweentransmissions.Burstrateismorehowmanyframesaresentduringthattransmission.Usingthesetwovariables,youcanmodulatetheratetheCANfileissentoutonthebus.Thiscanbequiteimportantastimingis,asalways,everthing.Itisquitecommonforequipmenttoreceiveframeseverysomanymilliseconds.Iftheydonotreceivethembeforethetimout,theysimplyshutdownandquitoperating.
CURRENTPLAYBACKITEMThissimplyliststhefileweareplayingback.
CURRENTFRAMEThisdisplayswhichframeweareon.Forexample1215of42940andgivesussomeideaofwhereweareatinthefile.Ifforexample,weknowwedidnotputonthebrakeandputitinDRIVEuntilframe2145ofthecapture,wecandetectthatpointintheprocessbyobservingthisfield.
LOOPSEQUENCEThisisacheckboxthatdetermineswhathappenswhenwegettotheendofthecapturefile.Ifitisunchecked,wesimplystop.Ifitischecked,weimmediatelygotothefirstframeandresumetransmissionthere.Inthisway,ourfileplaysasacontinuousloop.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 22
SENDTOCANBUSThisdropdownmenuallowsustoselectwhichCANbusportthedatagoesouton,.Oneoptionisnone.
PLAYBACKSEQUENCEThisallowsactuallyquitecomplexplaybacksusingmulitiplefiles.Andindeeditcandovariablepassesinthosefiles.Youcouldforexamplegothroughtwoiterationsoffile1,asingleiterationoffile2,andthenthreeiterationsoffilethreeifdesired.
IDFILTERINGThestaroftheplaybackscreenisofcourse,againtheabilitytofiltermessages.Thisfilteroperatesexactlyasourdisplayfilteronthemaincapturescreen,butinthiscase,applyingtothemessagestransmittedontothebus.ThisisthemostpowerfulfunctionofSavvyCANactually.TotakearecordingofCANmessagetraffic,transmititontoabus,andgraduallydecreasethemessagessentuntilyouonlyhavetheIMPORTANTonesforyourtask.SELECTALLIDSandDESELECTALLIDSmakesthiseasier.Butagain,thebasicsarethatifyoucheckabox,themessagegetssent,ifnocheckbox,itdoesNOTgetsent.AndnotethatyoucandothisWHILEaplaybackisoccurring.Sodeselectingamessagewhiletransmittingafilesimplydiscontinuessendingthatmessagegoingforward.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 23
CUSTOMSelectingCUSTOMfromthetopbarmenucallsuptheFRAMESENDERscreen.FramesenderallowsyoutoquicklydesignandsendcustomCANmessageframesontothebus.
ENEnable.Ifthisischecked,theprogramstartssendingthismessageperiodically.Ifyouremovethecheckbox,itdiscontinues.
BUSAgain,youcanoutputtheframeonanybus,typically0or1.
IDThemessageidentificationnumberofthemessageyouwanttosimulate/send.Either11-bitor29-bit.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 24
LENLengthinbytesofdatapayload.Upto8.
DATAThedatabytesyouwanttosend.
TRIGGERTriggersareapowerfulandveryflexiblemeanstodetermineWHENthedescribedframeissentoutonthebus.Andthereareseveralconditionsyoucanusetotriggerthistransmission.
ms
x
id
bus
ms msisthemostbasicformoftrigger.ItsimplyspecifiesthatthedefinedCANframegoouteveryxmilliseconds.So40msinthisfieldwouldindicatetosendtheCANframeevery40milliseconds.
x Thisisreallyamodifiertoms.Itspecifiesthemaximumnumberoftimesthemessageshouldbesent. So40ms 100xwouldindicatethattheCANframeshouldbesentevery40msuntil100frameshavebeensentthenterminate.
id idisatriggerbasedonanINCOMINGmessageframe.Youcanspecifyanymessageidandthedescribedframewillbesentwheneverthatmessageisreceived.Thisfunctionalsomodifiestheuseofmsandx.Ifyouspecifyanid,thenmsisthetimedelaybetweenwhenthemessageisreceivedandwhenthedescribedmessageistransmitted.xremainsthemaximumnumberoftimesthishappens.Id0x222 40ms 100xwouldcausetheframetobesent40millisecondsafter0x222wasreceived,butthiswouldonlyoccuronthefirst100suchmessagesreceived.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 25
bus busisamodifierforid.Inthisway,youcanspecifythatnotonlythemessageIDhastobecorrect,butithastocomeinonthecorrectbus.Id0x222 bus0 40ms 10xwouldthentransmit40millisecondsaftermessageID222comesinonbus0,butonlyforthefirst10instances.A222messageincomingonbus1wouldbeignoredentirely.Thesevaluescanalsobecompoundedinmultipletriggersseparatedbycommas:
Id0x222 40ms, id0x111 10ms, 1000ms Thiswouldtransmit40millisecondsaftera222messagewasreceived,butalso10millisecondsaftera111messagewasreceived.Andinanycase,itisgoingtotransmitonceevery1000milliseconds(oncepersecond)whetherornotanythingisreceived.
MODIFICATIONSModificationsisagainapowerfulandflexiblewayofcustomizingourtransmissionsmathematically.Let’sassumethattheeightdatabytesinourDATAsectionarenumberedfrom0to7withthelastdatabyteontherightbeing7.Inmodifications,wewillrefertotheseeightbytesasD0-D7.Modificationsallowustoperformmathematicaloperationsontheseeightdatabytes.Theoperationsinclude:
+ Addition
- Subtraction
* Multiplication
/ Division
& bitfield operation AND
| bitfield operation OR
^ bitfield operation XOR Soforexample:D0=D0*4wouldreplacethevalueindatabyte7withthatvaluetimes4.Oritcouldbeasimplereplacement:D5=0xF3.OrD5=D3+0xF3
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 26
Theseexampleslookmoreorlesslikenonsense.Afterall,wecanputanythingwelikeinthedatafieldsanyway.ButwecanalsousethevalueofincomingCANmessageframesinourcalculationsandthatmakesitslightlymoreinteresting. Wedothiswiththe ID: and BUS: commands.
D3=BUS:0:ID:0x222:D3 Inthisexample,wearecopyingdatabyte3fromanymessage0x222arrivingonbus0intoourownD3databyte.Thesecanbecomequiteexotic:
D3=BUS:0:ID:0x222:D3 + BUS:1:ID:0x123:D7 / 4 Inthiscase,wetakedatabyte3frommessage222arrivingonbus0,sumitwithdatabyte7ofmessage123arrrivingonbus1,anddividetheresultby4.Thiscalculatedvalueisplacedinourdatabyte3oftheframewearetransmitting.
PUTTINGTRIGGERSANDMODIFICATIONSTOGETHERAsimpleexampleillustrateshowpowerfulthiscanbe.Message222onbus0carriesmotorcoolanttemperatureindatabytefour.ThisisonthebusgoingfromtheVehicleControlUnittoaninstrumentclusterthatdisplaysitonagage.WearegoingtoSENDamessage0x222ofourown.TRIGGER:id0x222 bus0ThisindicatesthatwearegoingtosendourframeimmediatelyonreceiptofamessageID0x222onbus0.
MODIFICATIONS: D0=BUS:0:ID:0x222:D0, D1=BUS:0:ID:0x222:D1, D2=BUS:0:ID:0x222:D2, D3=BUS:0:ID:0x222:D3, D4=BUS:0:ID:0x222:D4 *2, D5=BUS:0:ID:0x222:D5, D6=BUS:0:ID:0x222:D6, D7=BUS:0:ID:0x222:D7 Althoughthisissomewhatlong,wearereallycopyingallthedataoutofthereceivedmessage222intoourownreplacementmessage222andsendingitbackoutimmediately.Butintheprocess,coolanttemperatureindatabyte4getsmultipliedby2–essentiallydoubled.TheinstrumentclusterreceivesthemessagefromtheVCU,buteverytimeitdoes,itimmediatelyreceivesonefromSavvyCANdoublingthevalue.Andsotheinstrumentclustershowsacoolanttemperaturetwiceashighasitactuallyismeasuredbythevehiclecontrolunit.
EVTV Version1.41 June2015
Copyright 2015 – EVTV LLC 27
THEGRIDYoucanenteractuallyanumberofdifferentmessagesonthescreeninwhatwerefertoasaGRID.IndividualmessagescanbeenabledordisabledusingtheENfieldatdifferenttimesandfordifferentpurposes.Atthebottomofthescreenareseveralbuttonsformanagingthisgrid.
ENABLEALLEnablesallmessagesinthegrid.
DISABLEALLUnchecksENforallmessagesinthegrid.
CLEARGRIDEliminatesallcurrentmessagesfromgrid.
SAVEGRIDSavesthecurrentgridtoan.fsdfileforlateruse.
LOADGRIDLoadsgridfromapreviouslysaved.fsdfile.