Skip to content

Instantly share code, notes, and snippets.

@brentpicasso
brentpicasso / shiftx2_afr_simulator.lua
Created February 12, 2017 23:21
ShiftX2 AFR simulator
slcan = 1
function splitWord(value)
return bit.band(value, 0xFF), bit.rshift(bit.band(value, 0xFF00),8)
end
function sl_cfgAlert(id, threshId, threshold, red, green, blue, flash)
local lowt
local hight
lowt, hight = splitWord(threshold)
txCAN(slcan, 744389 + 12, 1, {id, threshId, lowt, hight, red, green, blue, flash})
@brentpicasso
brentpicasso / OBDII_PID_query.lua
Created May 26, 2017 22:51
OBDII PID simulator in Lua, supports 29 bit mode and 11 bit mode
--500K baud. set your baud rate here.
initCAN(0, 500000)
--standard 11 bit PID request 0x7DF
--extended 29 bit PID request 0x18DB33F1
--standard 11 bit PID response 0x7E8
--extended 29 bit PID response 0x18DAF110
standard = false
--this function drains all pending CAN messages
@brentpicasso
brentpicasso / shiftx2_full_demo.lua
Last active June 17, 2017 21:05
ShiftX2 full demo including discovery and auto-configuration
shiftx_can = 1
shiftx_id = 0xE3700
function shiftx_tx(offset, data)
txCAN(shiftx_can, shiftx_id + offset, 1, data)
sleep(10)
end
function splitWord(value)
return bit.band(value, 0xFF), bit.rshift(bit.band(value, 0xFF00),8)
end
@brentpicasso
brentpicasso / shiftx2_pred_timer_simulator.lua
Last active June 17, 2017 21:45
ShiftX2 predictive timer simulator
--this script adequately simulates varying speeds and periodic pit stops
--disable all GPS channels
--disable lap timing
shiftx_can = 1
shiftx_id = 0xE3700
dist = 0
speed = 30
speedDir = 0
maxSpeedDir = 2
@brentpicasso
brentpicasso / shiftx2_obdii_stepped_shift_light.lua
Created June 17, 2017 22:00
ShiftX2 OBDII stepped shift light
shiftx_can = 1
shiftx_id = 0xE3700
function shiftx_tx(offset, data)
txCAN(shiftx_can, shiftx_id + offset, 1, data)
sleep(10)
end
function splitWord(value)
return bit.band(value, 0xFF), bit.rshift(bit.band(value, 0xFF00),8)
end
@brentpicasso
brentpicasso / shiftx2_obdii_smooth_shift_light.lua
Last active June 17, 2017 22:02
Demo script reading RPM from RaceCapture input, and updating the current shift light value
shiftx_can = 1
shiftx_id = 0xE3700
function shiftx_tx(offset, data)
txCAN(shiftx_can, shiftx_id + offset, 1, data)
sleep(10)
end
function splitWord(value)
return bit.band(value, 0xFF), bit.rshift(bit.band(value, 0xFF00),8)
end
@brentpicasso
brentpicasso / shiftx2_random_colors.lua
Last active June 20, 2017 19:35
ShiftX2 random colors
sxCan = 0
sxId=0
tickRate=30
sxBright=0
function rndc()
return math.random(0,255)
end
function sxOnUpdate()
@brentpicasso
brentpicasso / shiftx2_color_sweep.lua
Last active June 22, 2017 20:10
Cycles ShiftX2 through all colors
sxCan = 0
sxId=0
tickRate=30
sxBright=0
r = 0
g = 0
b = 0
step = 10
@brentpicasso
brentpicasso / 29_bit_obdii.lua
Created June 30, 2017 00:52
29 bit OBDII simulator
--500K baud. set your baud rate here.
initCAN(0, 500000)
--standard 11 bit PID request 0x7DF
--extended 29 bit PID request 0x18DB33F1
--standard 11 bit PID response 0x7E8
--extended 29 bit PID response 0x18DAF110
standard = false
--this function drains all pending CAN messages
@brentpicasso
brentpicasso / lap_simulator.lua
Created October 6, 2017 17:49
Lap simulator script. generates laps based on elapsed distance - useful in a non-circuit environment
--Lap simulator script
--Ensure GPS Distance channel is disabled
--Ensure Race Timing is disabled
--Requires a GPS lock for proper operation
--sets the length of the lap desired, in miles.
lapLength = 1
setTickRate(10)