Serial data?
Moderators: JeffC, rdoherty, stieg, brentp
Serial data?
I plan on running a hondata kpro in my track car, and it looks like it can output a serial stream. http://www.hondata.com/help/kmanager/in ... output.htm
Can the race capture pro accept serial data from the kpro?
Can the race capture pro accept serial data from the kpro?
-
- Posts: 43
- Joined: Tue Apr 30, 2013 10:35 am
I, for one, would happily trade the telemetry/Bluetooth port for a serial input if it could be configured appropriately to read data from my Suzuki GSXR ECU. For those of us without the telemetry option, could serial data be enabled when logging starts and Bluetooth enabled when no longer logging? I'm guessing that this would allow logging of serial data on track and Bluetooth configuration/log download in the pits.
Sprinting an ADR Sport 2
www.endurancelay.co.uk
www.endurancelay.co.uk
after reading this I had a tangential thought. We're working on a way to CAN-enable old style OBD2 (non CAN bus). The work in progress will be centered around a small microcontroller that can read serial data from an ELM327 compatible interface chip and present the information on the CAN bus.
https://github.com/autosportlabs/OBD2CAN
I was thinking, it would be neat if something similar could be made to "CAN enable" the Hondata ECU and the Suzuki GSXR ECU and others - by getting them onto the CAN bus you'll be able to integrate them with a variety of other devices in a much more standard way.
Just a thought.
https://github.com/autosportlabs/OBD2CAN
I was thinking, it would be neat if something similar could be made to "CAN enable" the Hondata ECU and the Suzuki GSXR ECU and others - by getting them onto the CAN bus you'll be able to integrate them with a variety of other devices in a much more standard way.
Just a thought.
-
- Posts: 43
- Joined: Tue Apr 30, 2013 10:35 am
I'll order a CANx and a serial adapter if you can do it!
Sprinting an ADR Sport 2
www.endurancelay.co.uk
www.endurancelay.co.uk
Yeah if you guys can get this to work I think it would be huge.
I know AIM makes a Kpro hondata ecu interface. http://www.aim-sportline.com/download/e ... 02_eng.pdf (pdf install instructions of the AIM unit)
Race technology has also developed a serial interface for a bunch of stand alone ECUs. http://www.race-technology.com/ecu_inte ... _7550.html
These guys are also developing a Kpro transmitter and if you look on the 3rd page of the thread I think they plan on using the USB port of the Kpro ecu http://www.s2ki.com/s2000/topic/1065638 ... ems-k-pro/
So hopefully it's possible.
If the Race Capture Pro can get data from a Kpro this is perfect for me.
Keep up the good work guys!!
I know AIM makes a Kpro hondata ecu interface. http://www.aim-sportline.com/download/e ... 02_eng.pdf (pdf install instructions of the AIM unit)
Race technology has also developed a serial interface for a bunch of stand alone ECUs. http://www.race-technology.com/ecu_inte ... _7550.html
These guys are also developing a Kpro transmitter and if you look on the 3rd page of the thread I think they plan on using the USB port of the Kpro ecu http://www.s2ki.com/s2000/topic/1065638 ... ems-k-pro/
So hopefully it's possible.
If the Race Capture Pro can get data from a Kpro this is perfect for me.
Keep up the good work guys!!
The Kpro4 supports CAN and the protocol is well documented on the hondata website and kpro help file. Below is a script that implements logging of most of the KPro CAN output. I left a few out that i don't need, but it is trivial to add to the script. You can upgrade your older Kpro to the new Kpro4 for $250, well worth it. This works like a champ!
[/code]
Code: Select all
--This example configured for E46 CAN, adopted to Hondata KPro4 CAN output
--how frequently we poll for CAN messages, 30Hz is the max
tickRate = 30
--the CAN baud rate
CAN_baud = 250000
--CAN channel to listen on. 0=first CAN channel, 1=second
CAN_chan = 0
--1 for Big Endian (MSB) mode; 0 for Little Endian mode (LSB)
be_mode = 1
--add your virtual channels here
rpmId = addChannel("RPM", 10, 0, 0, 9000, "RPM")
vltId = addChannel("VLT", 10, 1, 0, 20, "volts")
iatId = addChannel("IAT", 1, 0, 0, 100, "C")
ectId = addChannel("ECT", 1, 0, 0, 150, "C")
tpsId = addChannel("TPS", 10, 0, 0, 100, "%")
mapId = addChannel("MAP", 10, 1, 0, 15, "PSI")
injId = addChannel("INJ", 10, 3, 0, 100, "ms")
ignId = addChannel("IGN", 10, 0, -20, 20, "D")
lmdId = addChannel("LMD", 10, 3, 0, 2, "lambda")
knkId = addChannel("KNK", 1, 0, 0, 15, "count")
camId = addChannel("CAM", 10, 0, -20, 20, "D")
--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) map_chan(ectId, data, 2, 2, 1, 0) end,
[1634] = function(data) map_chan(tpsId, data, 0, 2, 1, 0) map_chan(mapId, data, 2, 2, 0.0145037738, 0) 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) 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()
processCAN(CAN_chan)
end
--===========do not edit below===========
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, little endian format
function map_chan_le(cid, data, offset, len, mult, add)
offset = offset + 1
local value = 0
local shift = 1
while len > 0 do
value = value + (data[offset] * shift)
shift = shift * 256
offset = offset + 1
len = len - 1
end
setChannel(cid, (value * mult) + add)
end
--Map CAN channel, big endian format
function map_chan_be(cid, data, offset, len, mult, add)
offset = offset + 1
local value = 0
while len > 0 do
value = (value * 256) + data[offset]
offset = offset + 1
len = len - 1
end
setChannel(cid, (value * mult) + add)
end
map_chan = (be_mode == 1) and map_chan_be or map_chan_le
initCAN(CAN_chan, CAN_baud)
setTickRate(tickRate)
Hi - Sorry, your KPro won't won't work with the USB connction.
But, with some Lua scripting you can connect an RS232 serial device to the aux serial port of the MK2 (next to the bluetooth port) you would have to translate the KPro data format, extract data and map them to virtual channels like one would typically do with the CAN bus mapping.
This would be a project, but definitely doable. See the lua scripting examples in our wiki to see how that might work.
But, with some Lua scripting you can connect an RS232 serial device to the aux serial port of the MK2 (next to the bluetooth port) you would have to translate the KPro data format, extract data and map them to virtual channels like one would typically do with the CAN bus mapping.
This would be a project, but definitely doable. See the lua scripting examples in our wiki to see how that might work.
Unfortunately no. RCP's USB is a client device, meaning it must be connected to an active host controller (like your computer) to work.Can RCP work with the usb connection of the KPro?
Also no I'm afraid. Our Bluetooth device is only capable of connecting to one device at a time, and our firmware expects it to be a device running RaceCapture app to work properly.if I upgrade to KPro4, will the bluetooth will work with the KPro and the tablet at the same time
Andrew Stiegmann (Stieg)
Principal Engineer
Autosport Labs Inc.
Principal Engineer
Autosport Labs Inc.