Question on tyre pressure monitoring system

Not forgotten about your messages, just not had time to answer them or arrange a remote session. All you need is the correct coding to be made.
Wrong module...mmi screen is from a prefacelift and the 8S modules is only for facelift cars. So he needs a 5Q module. Coding is correct.

A3 8V Facelift Limousine
 
  • Like
Reactions: Rcord
Will leave this in your hands then :)
What you supplied was/is correct for the facelift models. But when i saw the mmi screenshots it is clearly a prefacelift model. It uses a different module (5Q), the same in the Passat and Golf 7 prefacelift. Thats why it can't show the temperatures in the MMI.

Edit:

did some research. You need the 5Q module, however the 5Q module cant display temperatures. Only pressure. Only the newer 8S modules can show both.


A3 8V Facelift Limousine
 
Last edited:
What you supplied was/is correct for the facelift models. But when i saw the mmi screenshots it is clearly a prefacelift model. It uses a different module (5Q), the same in the Passat and Golf 7 prefacelift. Thats why it can't show the temperatures in the MMI.

Edit:

did some research. You need the 5Q module, however the 5Q module cant display temperatures. Only pressure. Only the newer 8S modules can show both.


A3 8V Facelift Limousine
I did not supply anything thanks. Was only requested to parameterise and post the module in question.
 
I did not supply anything thanks. Was only requested to parameterise and post the module in question.
Then what you did is still my same answer: it was correct.

A3 8V Facelift Limousine
 
Finally got it sorted. After talking to RJ-8V (thanks mate) and others who tried to help I've found out that there's no easy way to make the MMI1 display tyre temperatures. Parts suppliers in China and Europe also said it's not possible and that the 5Q0 module makes the TPMS screen to be displayed, but without the temperatures, and the 8S0 module handles temperatures but it only displays the screen on MMI2. But since there were temperature fields in the MMI1 screen, I supposed that they were designed to be filled one way or the other, so I began to work with the CAN bus signals transmitted from and to the 8S0 TPMS module until I found a set of messages that have to be suppressed and added. After many hours of reverse engineering the messages, I built a filter module with an Arduino and two CAN bus transceivers that I've inserted between the TMPS module and the car's extended CAN bus. The project is still unfinished and under development but today I got a fully working screen.

Basically, both the 5Q0 and 8S0 TPMS modules send only 4 different CAN bus message IDs, but only one contains pressure/temperature data. Current pressure, standard pressure, temperature, memory parameters are all sent in different messages (CAN bus messages are only 8 byte long, can't hold much data). As the message id is the same, the contents are identified by the first 2 bytes. The current pressure data message is identical for the 5Q0 and 8S0 modules, but only the 8S0 sends the current temperature message. The MM1 screen is ready to receive the temperature message, but since the 5Q0 doesn't send it, the value displayed is -60ºC, which corresponds to a binary zero value. The 8s0 sends a message with the second byte corresponding to 0xD2, the third byte containing "0" for Celsius degrees and the next four with the temperature in Celsius+60, so a temperature of 29º is stored as "89" in the message. The hardest part, however, was to discover the codes that make the TPMS screen be displayed.

IMG 20190806 160132481
 
  • Like
Reactions: RJ-8V, Khufu and jrumball
Finally got it sorted. After talking to RJ-8V (thanks mate) and others who tried to help I've found out that there's no easy way to make the MMI1 display tyre temperatures. Parts suppliers in China and Europe also said it's not possible and that the 5Q0 module makes the TPMS screen to be displayed, but without the temperatures, and the 8S0 module handles temperatures but it only displays the screen on MMI2. But since there were temperature fields in the MMI1 screen, I supposed that they were designed to be filled one way or the other, so I began to work with the CAN bus signals transmitted from and to the 8S0 TPMS module until I found a set of messages that have to be suppressed and added. After many hours of reverse engineering the messages, I built a filter module with an Arduino and two CAN bus transceivers that I've inserted between the TMPS module and the car's extended CAN bus. The project is still unfinished and under development but today I got a fully working screen.

Basically, both the 5Q0 and 8S0 TPMS modules send only 4 different CAN bus message IDs, but only one contains pressure/temperature data. Current pressure, standard pressure, temperature, memory parameters are all sent in different messages (CAN bus messages are only 8 byte long, can't hold much data). As the message id is the same, the contents are identified by the first 2 bytes. The current pressure data message is identical for the 5Q0 and 8S0 modules, but only the 8S0 sends the current temperature message. The MM1 screen is ready to receive the temperature message, but since the 5Q0 doesn't send it, the value displayed is -60ºC, which corresponds to a binary zero value. The 8s0 sends a message with the second byte corresponding to 0xD2, the third byte containing "0" for Celsius degrees and the next four with the temperature in Celsius+60, so a temperature of 29º is stored as "89" in the message. The hardest part, however, was to discover the codes that make the TPMS screen be displayed.

View attachment 187985

Fascinating I applaud your effort !!!
 
  • Like
Reactions: Reggieboy71 and Rcord
Fascinating I applaud your effort !!!
Thanks mate. Maybe I'll publish the whole project and list of CAN bus messages I've decoded when it's finished. What I still don't understand is why did those German engineers designed a MMI screen that doesn't work right with any available TPMS module. Maybe it was part of an abandoned project.
 
Hi all in the know can you clarify if this retrofit can be done to a facelift A3 s line 2016 without vc. Thanks in advance
 
Hi all in the know can you clarify if this retrofit can be done to a facelift A3 s line 2016 without vc. Thanks in advance
If your car is a FL and you have MIB2, there will be no problems.
 
As I promised in my last message to this thread, I'm posting here the details on the project I developed to convert signals from the TPMS module to the CAN Bus in order to make it possible to use the 8S0907273 ECU with a Pre-facelift MIB1 multimedia so it can display tyre pressures and temperatures on the screen. Earlier versions of the code worked intermitently and had problems with loss of CAN bus messages and communication with diagnostic tools. Current version solved these problems and seems to be very stable. I've been using it for about 2 months with no failures so I think it's time to make it public. Maybe someone finds it useful.

The circuit uses two CAN bus transceivers, one is connected to the ECU and the other to the car's extended CAN bus, both connected to an Arduino microcontroller. As a power supply I used 5v voltage regulator from a cigarette lighter socket charger, but any 5v regulator will do the job.

8S0 filter


Here is a picture of the circuit before mounted in a box. I've removed the header pins and screw terminal blocks from the CAN bus transceivers and replaced them with soldered wires for a reliable, permanent connection:
R IMG 20190816 174344566


This is how it looks like after installed in a box and connected to the TPMS ECU and CAN bus harness. The third cable is a USB connection I used to upload code and collect data while developing the converter.
R IMG 20200609 145913761


Finally, here is the code. Basically, it replaces one of the messages sent by the TPMS module in order to set the bits that allow the MMI to accept temperatura data and adds another message that is not sent by the 8S0 module which makes the display to shut down. It also filters the message coming from the CAN bus in order to keep only the relevant ones, avoiding the overload of the processor that can cause loss important messages. The replacement of the default values with zeros in the code is a matter of personal taste. If original messages were forwarded unchanged, the MMI would display 127.5 psi and -60º C while there is still no data identified from the pressure valves. The program replaces these values with zeros according to the units (psi, BAR, Celsius, Fahrenheit) used in the car.

/*
* TPMS CAN Bus filter
*
* Filters messages sent by a 8S0907273 VAG TPMS ECU in order to make it compatible with
* Audi A3 8V MIB1 Multimedia system
*
* Coded by Ronaldo Cordeiro - cordeiroronaldo@hotmail.com
*
* Uses MCP_CAN_lib-master - By Cory J. Fowler
* https://github.com/coryjfowler/MCP_CAN_lib
*/

#include <mcp_can.h>
#include <SPI.h>

long unsigned int msgId; // message ID
unsigned char msgLen=0, // message length
rxBuf[8], // message buffer
msgType; // message type: 0=standard, 1=extended

const long unsigned int tpmsDataId = 0x17330710;

unsigned char msgBuf128[8]={0x80, 0x08, 0x31, 0xC3, 0x38, 0x03, 0xF1, 0x00}, // msg0x80/0x90 (128/144) with modified byte 6
msgBuf211[8]={0x31, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // dummy msg xx 0xD3 (xx 211)

MCP_CAN ECU(9); // Set ECU CAN interface CS to pin 9
MCP_CAN BUS(10); // Set CANBus CAN interface CS to pin 10

void setup()
{
Serial.begin(115200);

ECU.begin(MCP_ANY,CAN_500KBPS,MCP_8MHZ);
BUS.begin(MCP_ANY,CAN_500KBPS,MCP_8MHZ);

ECU.setMode(MCP_NORMAL);
BUS.setMode(MCP_NORMAL);
}

void loop()
{
if(CAN_MSGAVAIL == BUS.checkReceive())
{
BUS.readMsgBuf(&msgId, &msgLen, rxBuf);

if((msgId & 0x80000000) == 0x80000000) { // Determine if ID is standard (11 bits) or extended (29 bits)
msgId = msgId & 0x1FFFFFFF;
msgType = 1;
}
else msgType = 0;

// Accept only: extended msgs IDs (BAP), TPMS ECU required msgs and diagnostic msgs (UDS)
// 0xFD (253) - ESP_21
// 0x30B (779) - Kombi_01
// 0x3C0 (960) - Klemmen_Status_01
// 0x585 (1413) - Systeminfo_01
// 0x643 (1603) - Einheiten_01
// 0x700-0x7FF - UDS diagnostics

if (msgType==1 || msgId==0x3C0 || msgId==0x30B || msgId==0xFD || msgId==0x585 || msgId==0x643 || (msgId >= 0x700 && msgId <= 0x7FF)) {
// Forward messages to ECU
ECU.sendMsgBuf(msgId, msgType , msgLen, rxBuf);
}
}

if(CAN_MSGAVAIL == ECU.checkReceive())
{
ECU.readMsgBuf(&msgId, &msgLen, rxBuf);

if((msgId & 0x80000000) == 0x80000000) { // Determine if ID is standard (11 bits) or extended (29 bits)
msgId = msgId & 0x1FFFFFFF;
msgType = 1;
}
else msgType = 0;

if(msgId==tpmsDataId && (rxBuf[0]==0x80 || rxBuf[0]==0x90)) { // Replace messages 128/144
msgBuf128[0]=rxBuf[0];
BUS.sendMsgBuf(msgId, msgType, 8, msgBuf128);
}
else if(msgId==tpmsDataId && rxBuf[1]==209) { // xx 209: pressure data
for(int i=3; i<=6; i++) if (rxBuf==0xFF) rxBuf=0; // Replace absent pressure values (0xFF) with zero
BUS.sendMsgBuf(msgId, msgType , msgLen, rxBuf);
}
else if(msgId==tpmsDataId && rxBuf[1]==210) { // xx 210: temperature data
for(int i=3; i<=6; i++) if (rxBuf==0x00) { // Replace absent temperature values (0x00) with values displayed as zero degrees
if (rxBuf[2]==0) rxBuf=60; else rxBuf=38; // (decimal 60 if Celsius; decimal 38 if Fahrenheit)
}
BUS.sendMsgBuf(msgId, msgType , msgLen, rxBuf);

msgBuf211[0]=rxBuf[0]; // Send xx 211 after xx 210
BUS.sendMsgBuf(msgId, msgType, 8, msgBuf211);
}
else BUS.sendMsgBuf(msgId, msgType, msgLen, rxBuf); // Forward all other messages
}
}

/*********************************************************************************************************
END FILE
*********************************************************************************************************/
 
  • Like
Reactions: JohnM100, AlS3BE, Khufu and 2 others
Will the 8S0907273 module display tyre temperatures on a 2015 S3 8V Pfl with a retrofitted MIB1?
 
Will the 8S0907273 module display tyre temperatures on a 2015 S3 8V Pfl with a retrofitted MIB1?
MIB1 is standard in PFL cars, right? If you meant you have a retrofitted MIB2, then it will display tyre temperatures. If it's a MIB1, then no screen will be displayed.
 
MIB1 is standard in PFL cars, right? If you meant you have a retrofitted MIB2, then it will display tyre temperatures. If it's a MIB1, then no screen will be displayed.

My PFL had the basic RMC fitted so opted for the cheaper option of retrofitting the MIB1 over the 2. Can the 8S0 unit still be used and display correctly but without temperatures?
Thanks
 
My PFL had the basic RMC fitted so opted for the cheaper option of retrofitting the MIB1 over the 2. Can the 8S0 unit still be used and display correctly but without temperatures?
Thanks
8S0 unit will shut down the tyre pressure screen on a MIB1 unit because it sends incompatible CAN bus messages, so it doesn't display anything. That's why I had to design and build the converter circuit I posted in the previous messages.
 
  • Like
Reactions: Gazpot0111645
Finally got around to have the sensors fitted and did the coding :) It's actually much more useful than I thought and displays nicely on the VC :)

View attachment 156126 View attachment 156127

Hello I have a question please..

I have to install this for a client and I have 2 questions. where should the wires be connected? I have the vcds, is that enough for encoding? do you have to go to address 5F? thank you very much for your answer ! goodbye mathieu