Izze Racing Temperature Sensors

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Izze Racing

Izze racing tire temperature seinsor.jpg

The Izze Racing tire temperature sensor provides up to 8 channels of temperature per sensor and transmits via CAN bus.

See the Izze Racing documentation for wiring recommendations.

  • CAN baud rate: 1MB
  • Data format: Big Endian
  • Update rate: Up to 32Hz

Lua Script

To enable telemetry channels, import this script into the RaceCapture/Pro Lua scripting window.


--This example is configured for IzzeRacing CAN-bus TireTemp-Sensors
--by www.race-electronic.com

tickRate = 30
CAN_baud = 1000000
CAN_chan = 0 --CAN channel to listen to 0=first CAN channel, 1=second
be_mode = 1 --1 for Big Endian (MSB) mode; 0 for Little Endian mode (LSB)

--add your virtual channels here - format is:
--addChannel( name, sampleRate, [precision], [min], [max], [units])

TiTmpLF1Id = addChannel("TireTmp_LF1", 10, 0, -20, 300, 'degC')
TiTmpLF2Id = addChannel("TireTmp_LF2", 10, 0, -20, 300, 'degC')
TiTmpLF3Id = addChannel("TireTmp_LF3", 10, 0, -20, 300, 'degC')
TiTmpLF4Id = addChannel("TireTmp_LF4", 10, 0, -20, 300, 'degC')
--TiTmpLF5Id = addChannel("TireTmp_LF5", 10, 0, -20, 300, 'degC')
--TiTmpLF6Id = addChannel("TireTmp_LF6", 10, 0, -20, 300, 'degC')
--TiTmpLF7Id = addChannel("TireTmp_LF7", 10, 0, -20, 300, 'degC')
--TiTmpLF8Id = addChannel("TireTmp_LF8", 10, 0, -20, 300, 'degC')

TiTmpRF1Id = addChannel("TireTmp_RF1", 10, 0, -20, 300, 'degC')
TiTmpRF2Id = addChannel("TireTmp_RF2", 10, 0, -20, 300, 'degC')
TiTmpRF3Id = addChannel("TireTmp_RF3", 10, 0, -20, 300, 'degC')
TiTmpRF4Id = addChannel("TireTmp_RF4", 10, 0, -20, 300, 'degC')
--TiTmpRF5Id = addChannel("TireTmp_RF5", 10, 0, -20, 300, 'degC')
--TiTmpRF6Id = addChannel("TireTmp_RF6", 10, 0, -20, 300, 'degC')
--TiTmpRF7Id = addChannel("TireTmp_RF7", 10, 0, -20, 300, 'degC')
--TiTmpRF8Id = addChannel("TireTmp_RF8", 10, 0, -20, 300, 'degC')

TiTmpLR1Id = addChannel("TireTmp_LR1", 10, 0, -20, 300, 'degC')
TiTmpLR2Id = addChannel("TireTmp_LR2", 10, 0, -20, 300, 'degC')
TiTmpLR3Id = addChannel("TireTmp_LR3", 10, 0, -20, 300, 'degC')
TiTmpLR4Id = addChannel("TireTmp_LR4", 10, 0, -20, 300, 'degC')
--TiTmpLR5Id = addChannel("TireTmp_LR5", 10, 0, -20, 300, 'degC')
--TiTmpLR6Id = addChannel("TireTmp_LR6", 10, 0, -20, 300, 'degC')
--TiTmpLR7Id = addChannel("TireTmp_LR7", 10, 0, -20, 300, 'degC')
--TiTmpLR8Id = addChannel("TireTmp_LR8", 10, 0, -20, 300, 'degC')

TiTmpRR1Id = addChannel("TireTmp_RR1", 10, 0, -20, 300, 'degC')
TiTmpRR2Id = addChannel("TireTmp_RR2", 10, 0, -20, 300, 'degC')
TiTmpRR3Id = addChannel("TireTmp_RR3", 10, 0, -20, 300, 'degC')
TiTmpRR4Id = addChannel("TireTmp_RR4", 10, 0, -20, 300, 'degC')
--TiTmpRR5Id = addChannel("TireTmp_RR5", 10, 0, -20, 300, 'degC')
--TiTmpRR6Id = addChannel("TireTmp_RR6", 10, 0, -20, 300, 'degC')
--TiTmpRR7Id = addChannel("TireTmp_RR7", 10, 0, -20, 300, 'degC')
--TiTmpRR8Id = addChannel("TireTmp_RR8", 10, 0, -20, 300, 'degC')


----------------------------------------
--CAN channel mapping format is: 
--[CAN Id] = function(data) map_chan(<chan_id>, data, <CAN offset>, 
--<CAN length>, <multiplier>,<adder>, [filter])
----------------------------------------

CAN_map = {
[1200] = function(data) map_chan(TiTmpLF1Id, data, 0, 2, 0.1, -100)
                        map_chan(TiTmpLF2Id, data, 2, 2, 0.1, -100)
                        map_chan(TiTmpLF3Id, data, 4, 2, 0.1, -100)
                        map_chan(TiTmpLF4Id, data, 6, 2, 0.1, -100) end,
--[1201] = function(data) map_chan(TiTmpLF5Id, data, 0, 2, 0.1, -100)
--                        map_chan(TiTmpLF6Id, data, 2, 2, 0.1, -100)
--                        map_chan(TiTmpLF7Id, data, 4, 2, 0.1, -100)
--                        map_chan(TiTmpLF8Id, data, 6, 2, 0.1, -100) end,
[1204] = function(data) map_chan(TiTmpRF1Id, data, 0, 2, 0.1, -100)
                        map_chan(TiTmpRF2Id, data, 2, 2, 0.1, -100)
                        map_chan(TiTmpRF3Id, data, 4, 2, 0.1, -100)
                        map_chan(TiTmpRF4Id, data, 6, 2, 0.1, -100) end,
--[1205] = function(data) map_chan(TiTmpRF5Id, data, 0, 2, 0.1, -100)
--                        map_chan(TiTmpRF6Id, data, 2, 2, 0.1, -100)
--                        map_chan(TiTmpRF7Id, data, 4, 2, 0.1, -100)
--                        map_chan(TiTmpRF8Id, data, 6, 2, 0.1, -100) end,
[1208] = function(data) map_chan(TiTmpLR1Id, data, 0, 2, 0.1, -100)
                        map_chan(TiTmpLR2Id, data, 2, 2, 0.1, -100)
                        map_chan(TiTmpLR3Id, data, 4, 2, 0.1, -100)
                        map_chan(TiTmpLR4Id, data, 6, 2, 0.1, -100) end,
--[1209] = function(data) map_chan(TiTmpLR5Id, data, 0, 2, 0.1, -100)
--                        map_chan(TiTmpLR6Id, data, 2, 2, 0.1, -100)
--                        map_chan(TiTmpLR7Id, data, 4, 2, 0.1, -100)
--                        map_chan(TiTmpLR8Id, data, 6, 2, 0.1, -100) end,
[1212] = function(data) map_chan(TiTmpRR1Id, data, 0, 2, 0.1, -100)
                        map_chan(TiTmpRR2Id, data, 2, 2, 0.1, -100)
                        map_chan(TiTmpRR3Id, data, 4, 2, 0.1, -100)
                        map_chan(TiTmpRR4Id, data, 6, 2, 0.1, -100) end
--[1213] = function(data) map_chan(TiTmpRR5Id, data, 0, 2, 0.1, -100)
--                        map_chan(TiTmpRR6Id, data, 2, 2, 0.1, -100)
--                        map_chan(TiTmpRR7Id, data, 4, 2, 0.1, -100)
--                        map_chan(TiTmpRR8Id, data, 6, 2, 0.1, -100) end

}


function onTick()
    processCAN(CAN_chan)
end

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, filter)
    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
 local cv = (value * mult) + add
 if filter ~= nil then cv = filter(cv) end
    setChannel(cid, cv)
end

--Map CAN channel, big endian format
function map_chan_be(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


map_chan = (be_mode == 1) and map_chan_be or map_chan_le
initCAN(CAN_chan, CAN_baud)