Well im just one guy with some time on the side of my day job as a programmer, one day I hope more will dive in to decode this stuff.
Here is a short snippet if you want to pull the VIN and hold it in a variable.
# Scripted version ======Get VIN ============
$ecuPort.open()
$ecuPort.writeline("0902" + [char]13) # Vin request
start-sleep -m 200
$input = $port.ReadExisting() # -split(" ")
$vin = $input.split(" ")[6,10,11,12,13,17,18,19,20,24,25,26,27,31,32,33,34] |
ForEach-Object { [Convert]::ToInt32($_,16) } |
ForEach-Object { [Convert]::ToChar($_) } |
ForEach-Object { $_ }
$vin -join ""