<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">I’ve been spending the last month or so hacking away at TPMS. This has been an ongoing project for the Tesla Roadster that is finally coming to fruition.</div><div class=""><br class=""></div><div class="">About a year or so ago, we already made changes to:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">Modify the Tesla Roadster cable to connect the k-line pin on the diagnostic connector through to the DB9 connector on OVMS. We labelled this cable ‘OVT1’.</li><li class="">Modify the OVMS module to connect that k-line pin to GEP7.</li></ul></div><div class=""><br class=""></div><div class="">I’m now working on an optional expansion board that will include a little TJA1027T transceiver and map it to EXP1 and EXP2 (for async comms) and EGPIO8 (for enable/disable) on the ESP32 and MAX. This board will include a jumpered option for K-line master (one diode + one resistor), as well as jumpered powered selection (5v from usb, 5v regulated from car 12v, or direct car 12v) for the K-line bus.</div><div class=""><br class=""></div><div class="">The hand-soldered prototype, using our breakout boards, works well and the K-line async comms works. The screenshot shows <span style="color: rgb(2, 2, 2); font-family: Roboto, sans-serif; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(254, 254, 254);" class="">OVMS sending a 19 byte request to the ECU (0x0f 0x04 .... 0xf0) and the ECU responding 19 bytes (0x0f 0x05 ... 0xf0) with the 4 tyre IDs. There is a similar command to re-program the ECU with new IDs.</span></div><div class=""><div style="orphans: 2; widows: 2;" class=""><font color="#020202" face="Roboto, sans-serif" class=""><span style="caret-color: rgb(2, 2, 2); background-color: rgb(254, 254, 254);" class=""><br class=""></span></font></div><div style="orphans: 2; widows: 2;" class=""><font color="#020202" face="Roboto, sans-serif" class=""><span style="background-color: rgb(254, 254, 254);" class="">On the firmware side, I am implementing a new vehicle independent ’tpms’ subsystem within OVMS (enabled via </span><span style="caret-color: rgb(2, 2, 2);" class="">configureable option). </span></font><span style="color: rgb(2, 2, 2); font-family: Roboto, sans-serif; background-color: rgb(254, 254, 254);" class="">This will allow sets of tyres to be maintained in the config and read/written to the car's TPMS ECU.</span><span style="color: rgb(2, 2, 2); font-family: Roboto, sans-serif; background-color: rgb(254, 254, 254);" class=""> </span><span style="caret-color: rgb(2, 2, 2); color: rgb(2, 2, 2); font-family: Roboto, sans-serif;" class="">The following commands will be available:</span></div><div style="orphans: 2; widows: 2;" class=""><font color="#020202" face="Roboto, sans-serif" class=""><span style="caret-color: rgb(2, 2, 2);" class=""><br class=""></span></font></div><div style="orphans: 2; widows: 2;" class=""><font color="#020202" face="Roboto, sans-serif" class=""><span style="caret-color: rgb(2, 2, 2);" class=""><div class=""><ul class="MailOutline"><li class="">tpms status - show status of the system</li><li class="">tpms list - list tyre id sets in config</li><li class="">tpms read <set> - read IDs from tpms ecu and store in config tyre set</li><li class="">tpms write <set> - write IDs to toms ecu from config tyre set</li><li class="">tpms set <set> {<id>} - config a set of IDs manually</li><li class="">tpms delete <set> - delete the specified tyre set</li></ul></div></span></font></div><div class=""><br class=""></div><div class="">The initial version will support Tesla Roadster, but the functionality is there for other vehicles to use if they need it (in particular for standard K-line implementations).</div><div class=""><br class=""></div><div class="">Comments/suggestions welcome.</div><div class=""><br class=""></div><div class="">Regards, Mark.</div><div class=""><br class=""></div><div class="">+++Attachments+++</div><div class=""><br class=""></div><div class=""><div class="">Bench setup, showing (from left to right):</div><div class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><ul class="MailOutline"><li class=""><span style="font-size: 11pt;" class="">Tesla Roadster TPMS ECU opened up</span></li><li class=""><span style="font-size: 11pt;" class="">Breakout board (power, k, Lin, and can)</span></li><li class=""><span style="font-size: 11pt;" class="">OVMS for can decode</span></li><li class=""><span style="font-size: 11pt;" class="">Usb logic analyser</span></li><li class=""><span style="font-size: 11pt;" class="">Power supply (12v)</span></li><li class=""><span style="font-size: 11pt;" class="">K-line analysis tool (9010)</span></li><li class=""><span style="font-size: 11pt;" class="">Windows laptop running k-line software</span></li><li class=""><span style="font-size: 11pt;" class="">Mac running logic analyser and terminal to OVMS.</span></li></ul></div></div></div><div class=""><br class=""></div></div><div class=""><img apple-inline="yes" id="7E056C5E-ADDC-41F6-887A-20D5126996AE" src="cid:0CFCD2F3-E68A-4399-96D7-0FE7815288AD" class=""></div><div class=""><br class=""></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Hand-soldered prototyping board</span></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><br class=""></span></div><div class=""><img apple-inline="yes" id="FECAA958-0A8A-4815-91EB-09DD3AA4FF19" src="cid:1602E91C-CCE1-407B-BFA5-99F5668CBF1E" class=""></div><div class=""><br class=""></div><div class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Async comms over k-line.</div></div><div class=""><br class=""></div><div class=""><img apple-inline="yes" id="2F4CA904-1D3E-4CC2-B4D6-6607FE9BBA22" src="cid:DC12D4CE-5389-455D-BA7E-34A2D73B4016" class=""></div></div><div class=""><br class=""></div></body></html>