|
|
Line 19: |
Line 19: |
|
| |
|
| ==Wiring== | | ==Wiring== |
| Use the supplied Hondata harness and connect the CAN High / CAN Low to the corresponding CAN High / CAN Low on the RaceCapture/Pro CAN 1 channel. See the [CAN_Bus_Integration|CAN integration guide]] for wiring details.
| | Connecting to the Hondata system requires two wires: |
|
| |
|
| ==CAN termination==
| | * '''CAN1 High''' from RaceCapture to '''CAN high''' of the Hondata system. |
| The KPro4 does not have built-in CAN termination. You will need to also connect a 120 ohm resistor across the CAN High / CAN Low connections at the connections to the KPro4.
| | * '''CAN2 Low''' from RaceCapture to '''CAN low''' of the Hondata system. |
|
| |
|
| =Script=
| | For RaceCapture wiring, see the [CAN_Bus_Integration|CAN integration guide]] for wiring details. |
| Copy and paste this script into the scripting window of RaceCapture/Pro. Ensure any existing script is removed.
| |
|
| |
|
| <pre>
| | '''Note:''' Ensure RaceCapture and the Hondata system are grounded to a common location to prevent CAN bus data errors. |
| --This example adopted to Hondata KPro4 CAN output
| |
|
| |
|
| tickRate = 30
| | If you are unsure about how to wire the Hondata ECU, or what connections to use, please contact [https://www.hondata.com/ Hondata] for support. |
| --the CAN baud rate
| |
| CAN_baud = 250000
| |
| --CAN channel to listen on. 0=first CAN channel, 1=second
| |
| CAN_chan = 0
| |
|
| |
|
| --add your virtual channels here
| | ==CAN termination== |
| rpmId = addChannel("RPM", 25, 0, 0, 9000, "RPM")
| | The KPro4 does not have built-in CAN termination. You will need to also connect a 120 ohm resistor across the CAN High / CAN Low connections at the connections to the KPro4. |
| vltId = addChannel("EcuVolts", 10, 1, 0, 20, "volts")
| |
| iatId = addChannel("IAT", 1, 0, 0, 100, "F")
| |
| ectId = addChannel("EngineTemp", 1, 0, 0, 150, "F")
| |
| tpsId = addChannel("TPS", 10, 0, 0, 100, "%")
| |
| mapId = addChannel("MAP", 10, 2, -15, 25, "PSI")
| |
| injId = addChannel("InjectorPW", 10, 3, 0, 100, "ms")
| |
| ignId = addChannel("Ignition", 10, 0, -20, 20, "D")
| |
| lmdId = addChannel("AFR", 10, 3, 0, 2, "lambda")
| |
| knkId = addChannel("Knock", 1, 0, 0, 15, "count")
| |
| camId = addChannel("CamTiming", 10, 0, -20, 20, "D")
| |
| | |
| function toF(value)
| |
| return value * 1.8 + 32
| |
| end
| |
| | |
| function toAFR(value)
| |
| return value * 14.7
| |
| end
| |
| | |
| --customize here for CAN channel mapping
| |
| --offset/length in bytes?
| |
| --format is: [CAN Id] = function(data) map_chan(<channel id>, data, <CAN offset>, <CAN length>, <multiplier>, <adder>)
| |
| CAN_map = {
| |
| --did not bother logging gear speed and target cam angle
| |
| [1632] = function(data) map_chan(rpmId, data, 0, 2, 1, 0) map_chan(vltId, data, 5, 1, 0.1, 0) end,
| |
| [1633] = function(data) map_chan(iatId, data, 0, 2, 1, 0, toF) map_chan(ectId, data, 2, 2, 1, 0, toF) end,
| |
| [1634] = function(data) map_chan(tpsId, data, 0, 2, 1, 0) map_chan(mapId, data, 2, 2, 0.0145037738, -14.7) end,
| |
| [1635] = function(data) map_chan(injId, data, 0, 2, 0.001, 0) map_chan(ignId, data, 2, 2, 1, 0) end,
| |
| [1636] = function(data) map_chan(lmdId, data, 0, 2, 0.00003051757, 0, toAFR) end,
| |
| [1637] = function(data) map_chan(knkId, data, 0, 2, 1, 0) end,
| |
| [1638] = function(data) map_chan(camId, data, 2, 2, 1, 0) end
| |
| }
| |
|
| |
|
| function onTick()
| | ==CAN preset== |
| processCAN(CAN_chan)
| |
| processLogging()
| |
| end
| |
|
| |
|
| function processLogging()
| | Under RaceCapture / CAN channels Setup, select the Hondata preset from the list of presets available. |
| if getGpio(1) < 1 then
| |
| startLogging()
| |
| else
| |
| stopLogging()
| |
| end
| |
| end
| |
|
| |
|
| | [[image:Hondata_CAN_preset.png]] |
|
| |
|
| --===========do not edit below===========
| | After selecting the preset, write the settings back to RaceCapture |
| function processCAN(chan)
| |
| repeat
| |
| local id, e, data = rxCAN(chan)
| |
| if id ~= nil then
| |
| local map = CAN_map[id]
| |
| if map ~= nil then
| |
| map(data)
| |
| end
| |
| end
| |
| until id == nil
| |
| end
| |
|
| |
|
| --Map CAN channel, big endian format
| | ==Verifying Data== |
| function map_chan(cid, data, offset, len, mult, add, filter)
| |
| offset = offset + 1
| |
| local value = 0
| |
| while len > 0 do
| |
| value = (value * 256) + data[offset]
| |
| offset = offset + 1
| |
| len = len - 1
| |
| end
| |
| local cv = value * mult + add
| |
| if filter ~= nil then cv = filter(cv) end
| |
| setChannel(cid, cv)
| |
| end
| |
|
| |
|
| initCAN(CAN_chan, CAN_baud)
| | Switch to the Dashboard mode, then page to the raw channels view. You should see your Hondata channels updating in real time. |
| setTickRate(tickRate)
| |
| </pre>
| |
Introduction
The following script adapts the Hondata CAN to RaceCapture/Pro. KPro4 and S300 CAN are supported.
Supported Channels
This integration supports the following channels:
- RPM
- EcuVolts
- IAT
- EngineTemp
- TPS
- MAP
- InjectorPW
- Ignition
- Knock
- CamTiming
Wiring
Connecting to the Hondata system requires two wires:
- CAN1 High from RaceCapture to CAN high of the Hondata system.
- CAN2 Low from RaceCapture to CAN low of the Hondata system.
For RaceCapture wiring, see the [CAN_Bus_Integration|CAN integration guide]] for wiring details.
Note: Ensure RaceCapture and the Hondata system are grounded to a common location to prevent CAN bus data errors.
If you are unsure about how to wire the Hondata ECU, or what connections to use, please contact Hondata for support.
CAN termination
The KPro4 does not have built-in CAN termination. You will need to also connect a 120 ohm resistor across the CAN High / CAN Low connections at the connections to the KPro4.
CAN preset
Under RaceCapture / CAN channels Setup, select the Hondata preset from the list of presets available.
After selecting the preset, write the settings back to RaceCapture
Verifying Data
Switch to the Dashboard mode, then page to the raw channels view. You should see your Hondata channels updating in real time.