fesch / CanZE

Take a closer look at your ZE car
http://canze.fisch.lu
Other
123 stars 70 forks source link

Overwriting TPMS IDs via CanZE #577

Closed minibiti closed 4 years ago

minibiti commented 4 years ago

Hi, I have the latest version of CanZE (1.45) on Android but when I try to overwrite the tires pressure sensors registered with new IDs so they match the winter tires ones, I get an error. "Could not read write valves: E-ISOTP tx flow error" Any idea?

minibiti commented 4 years ago

So I re-tested this morning with 1.49beta3. I tried to add 4 random values and then write the correct ones back. I did that 2/3 times. At least once or twice, the 4th values does not get written and ends up getting 000000 when I read again. I tried with and without ISOTP fields. I have the ELM327 Bluetooth dongle (Mini) (https://www.ebay.com.au/itm/113815327984) But otherwise it is working fine :)

yoh-there commented 4 years ago

Thank you for testing again! I have to say, that dongle, or I must actually say, most of those dongles, are awfully crappy and don't perform well at all. It's hard to say, because these blue shells are very generic and house many, many different designs. The other day I got one with a real PIC controller in it that was fine, but I had another with two stacked PCB's that was pure evil.

The code is 100% the same for each wheel (it's actually a loop), so there is not a lot I can do, other than write-read-compare maybe, retry once or twice if it fails. Hmmmm, let me think about that for a little bit.

softamateur commented 4 years ago

Hi there,

It works alright after 25 minutes of driving. Nothing to note at all. Perfect.

But some points just to remind and perhaps add/change:

  1. "Your cars has no TPMS" can be annoying for cars with TPMS :-)

  2. "Please don't write Valves etc" Don't forget to remove this text !

  3. Strictly, the correct denomination is "Sensors" not "Valves". There are TPMS sensors, from Continental, that are not in contact with the valves at all, they are glued on to the inside rubber of the tire. You read and write to the sensor, not the valve. (Just important for the nerds ;-)

  4. A note to the user about waiting with further actions until CanZE is communication correctly? Checking the battery map for instance? (This is perhaps overkill?)

  5. A note to the user not to have "Learning tyre pressure" activated ? Just to be sure things not mess upp. (This is perhaps overkill ?)

  6. Decide the spelling of "Tires" is not easy: Googled: "Tire and tyre both mean a covering for a wheel, usually made of rubber. Tire is the preferred spelling in the U.S. and Canada. Tyre is preferred in most varieties of English outside North America. Of course, all English speakers use tire in the sense to grow weary." No problem either way I think :-)

And again, thank you very much for the development of this very useful app, I will use it at least twice a year, changing the winter tires ;-)

softamateur commented 4 years ago

Important one almost forgot to mention is:

  1. In the display of pressures, Rear righ and Rear left still seem to be switched comparing to the Autel TS-401 reading.

Cheers!

yoh-there commented 4 years ago

Great news!

  1. Should be gone. I will upload beta4 in a few minutes
  2. Sure. This is fetched online and I will remove it as soon as this is in the production release
  3. Agreed and done in beta4
  4. I hear you loud and clear, but won't do. If one decides to mess with wheels, itś up to the user. I fif build in the compare thought (see comment @minibiti )
  5. Same ;-)
  6. I know. Consensus is: Tyres is UK spelling. Everywhere else and growing also in the UK is Tires. So as the code was inconsistent I had to do something and decided to go for Brexit Tires ;-)

Thank for testing and the heads up!

yoh-there commented 4 years ago
  1. Triple checked again with the docs, again now for the state and pressures too. Truth I guess is "in the middle"; either documentation or Autel is wrong :-( . I'll leave it for now.
yoh-there commented 4 years ago

Thinking about the swapping of pressures (ID is fine now I think?) some more. As said, I triple checked both the ISOTP as well as the free frame definitions, and they both are most definitely according to three sets of documentation.

If you have time, you might want to check pressures with Use ISOTP Fields setting off. I would suggest that:

softamateur commented 4 years ago

...or just drain Right Rear of 0.2 Bar and se what will be reported on the CanZE pressure display? :-) I am a little bit curious so I will try this in late evening....

yoh-there commented 4 years ago

Yes please!

yoh-there commented 4 years ago

But if you do, please check both with ISOTP on and off, because those are different queries to the car. Thanks!

minibiti commented 4 years ago

I have 0.2 bar diff between RR and RL. It looks to me that the readings switch places now that upgraded to 1.49b3 vs 1.48... Can it be? What is the recommended setting for ISOTP? on or off?

yoh-there commented 4 years ago

@minibiti The pressure readings have not switched between 1.48 and 1.49beta3, or I am totally crazy (please note that I uploaded beta4 this morning). The rear ID's have switched and I am pretty sure these are OK now.

With your dongle the recomended setting is absolutely ISOTP on.

Is it possible to know which tire is REALLY 0.2 lower/higher and verify (with ISOTP on, and if it works also with ISOTP off)? But remember, to do this test, you need to be 100% sure that the ID's of the sensors match the exact positions. The car does not know the real positons; if two IDs are swapped, the car is happy, but the pressures are swapped in CanZE too.

I know, it's complicated.

@softamateur Please realize (I forgot!) this can be your use case too and the Autel will not be of help unless you are 100% sure about which sensor has which ID. Edit: oh I think the Autel actually does help as it reads the actual sensor, not the car!

softamateur commented 4 years ago

TPMS tools, like the Autel Maxitpms TS401. works with an initial 150 KHz LF signal that activates the sensor. You hold the tool in contact with the tire as close to the inside sensor as possible during that procedure. The range is sad to be small for the LF signal. The system is designed not to be fooled by surrendering cars and tires and just activate,read and in cases, program, just one at a time.

A very good tutorial is given on youtube "Autel TS401, how to program MX sensors" https://www.youtube.com/watch?v=vwMxHx8WoYw And for the hardcore DIY "How to install a tps yourself! But should you?" also featuring a TS401 :-)

I will dig in to it and make sure how the displays are linked to the sensors and be back to night :-)

softamateur commented 4 years ago

Heavy shower and +4 degree. On Friday it will snow here...

Testing of the tire pressure displays mapping to the actual sensors/ wheels. Summary: CanZE is ok :-)

Method:

  1. Do a Write with CanZE. And a read. Leave Tire page and then go back. Now pressure fields are empty, waiting for the sensors to start transmit. Normally this will be when wheels are spinning above 40 km/h.
  2. Make the individual sensor send data by activating them one by one with the Autel TS401 service tool for TPMS working my self around the car clockwise.
  3. After each activation look on the CanZE Tire page and check in what position pressure is written from the activated tire (Sensors are activated by a weak LF signal and only the sensor in a close distance to the service tool will be activated )

Result: Rear Left and Rear Right sensor/Wheel positions are ......correct. It is the sensor IDs that have been switched in the write positions, by myself messing around.

Full report view from CanZE after working around the car: image

Full report view from Autel TS 401 (display view 2/(3)):

image

Noted a very small difference in pressure presentations between CanZE and the Autel (to left) and CanZE (to right) tool Note sensor ID positions corrected for CanZe in this table: FL 252 253,9 delta 1.9 FR 261 263,5 delta 2,0 RR 249 249,7 delta 0,7 RL 254 255,2 delta 1,2

CanZe reports a little bit higher but less than 1% in difference.

So the masterpiece is still perfect. Users with Autel will have to watch for the table order of IDs differ on the to last positions comparing to CanZE. That all.

Over and out.

yoh-there commented 4 years ago

You're a hero, thank you! I will merge the tires branch now in "development" (it has a few more changes), upload it to beta5, wait a few days and push that to production. Yay!

yoh-there commented 4 years ago

To all: thank you so much for all the testing and reporting. Community cooperation at it's best. 1.49Beta5 is now in the play store and will roll out in the next few hours. Unless there are unforeseen "disasters", this will go to production in a couple of days. I will close this issue shortly after that.

minibiti commented 4 years ago

@yoh-there Thank YOU for the great work!

redflo commented 4 years ago

Hi, just wanted to add another success report:

yoh-there commented 4 years ago

Great! Yes, >6 characters were reported earlier, but 3 bytes per sensor is the space in the BCM module. Good to know it's the first ones to use. If the print on the box is to be trusted at all (see softamateur's comment above)

yoh-there commented 4 years ago

@redflo I never realized rtl_433 could decode TPMS, but it makes perfects sense. I assume you simply waited until the valves transmitted? Because there is not LF transmitter to make the sensors bow to your will involved.

I really should order a digital radio stick ;-)

redflo commented 4 years ago

@yoh-there Just put the stick into a notebook in your car and run rtl_443. I had to add the switch "-G" because i have Jansite TPMS sensors. Simply drive one minute, the sensors should send almost every second if your speed is > 20km/h. Note that you may see other things too like TPMS from other cars or other devices in the area. So in case you are unsure, make a trip to the countryside :-)

DompaEV commented 4 years ago

First of all, I would like to say big "Thank you!" to CanZe team for all those years of devotion to develop this very handy tool. I recently bought used blue ZE40 R90 from 2017 with 17kkm (which looks and feels like new) and immediatelly started to use CanZe with OBDII I already had at home (Panlong, https://www.amazon.co.uk/gp/product/B00PJPHEBO). That adapter might be good for some other cars, but definitelly not for Zoe.

Therefore I ordered recommended KW902 (I got black one from https://www.amazon.co.uk/gp/product/B0785F9P57), which so far seems to be working fine with CanZe. I faced same problem as @kler (Could not write valves:-E-message.isotp.startswith7f) with version 1.48, so after some Googling ended up here last night and joined test team this morning ;-) Now I'm waiting for installation of beta release in order to test myself writing of TPMS IDs.

yoh-there commented 4 years ago

Thank you for the heads up. You might want to try to set "Use ISOTP fields" with that dongle, though I see it is one with 2 PCB's stacked and must assume it is like one I bought a few years ago to no avail. While unrelated to this TPMS topic, I'd like to hear if that helps, as that mode soves a lot of "crappy dongle" issues. But not all. Happy driving (and CanZe-ing)

DompaEV commented 4 years ago

@yoh-there, thank you. FYI, I made tests with 1.49beta5 and KW902 adapter and now I can successfully write TPMS IDs into Zoe's memory. CanZe was complaining, but values were written (I confirmed by reading them), here are screenshots combined into one resized photo: 1 49beta5_TPMS_KW902

For KW902 it seems that "Use ISOTP fields" should not be checked (although I made successful TPMS test with both set and unset value of this parameter), since some other screens do not work ok (e.g. Charging prediction screen remains with empty values)

BTW, for some unknown reason to me, even Panlong is now able to write TPMS values, regardles of if "Use ISOTP fields" was checked or not.

yoh-there commented 4 years ago

Thank you for reporting back,appreciated. I will test KW902 on Charging Prediction with Use ISOTP fields, as that should work.

yoh-there commented 4 years ago

@minibiti I saw your comment under the release blog post. Can you elaborate?

DompaEV commented 4 years ago

I think that @minibiti had following in mind: Screenshot_1 49_main

Message "Please do not try to write Tyre IDs now" is still visible on main page after initially opening app. It stays there even if you go to "Tires" screen and read TPMS ID values and then you return back to main page. I suppose that message is gone only after you write TPMS ID values, but haven't checked that this time.

minibiti commented 4 years ago

Thanks @DompaEV, this is what I was referring to indeed :)

yoh-there commented 4 years ago

Ah right, thanks. Fixed. It will take a few minutes to propagate within the github ecosystem to githubusercontent.com. Closing this issue now.

yoh-there commented 4 years ago

As a little kind gesture for the hard work ;-) --> https://canze.fisch.lu/save-tire-set/

minibiti commented 4 years ago

What a great idea! :)

softamateur commented 4 years ago

I agree, very smart :-)

Thanks!

Den ons 11 dec. 2019 kl 13:07 skrev Jean-Marc Reymond < notifications@github.com>:

What a great idea! :)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fesch/CanZE/issues/577?email_source=notifications&email_token=ACOJRYR5BTRFOOTYUL3FPBLQYDJXNA5CNFSM4JF7JSXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGS4E3Q#issuecomment-564511342, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACOJRYWOQEMEYBSCTX4IB43QYDJXNANCNFSM4JF7JSXA .

--


Göran Nybom

JOIN Business & Technology AB Ideon Science Park Scheelevägen 15 223 70 Lund, Sweden

Phone mobile: +46 (0)708-75 19 25

www.join.se

yoh-there commented 4 years ago

Quick question to all participants. In Goeingelectric.de I read that ZOE seems to force/require bit 31 to be always on, IOW, the first digit never starts with 0-7. Can you confirm this? Thank you!

E-Gerd-21 commented 4 years ago

All, I wrote the mentioned article in goingelectric forum. I was explaining how to convert an 8-digit HEX ID from a TPMS-sensor to the 6-digit HEX ID, which CANZE is usiing to write ("ID Write") into the Zoe ECU. NB: 8-digit HEX is equivalent to 32 bits BINARY. 6-digit HEX is equivalent to 24 bits BINARY.

The conversion method is as follows: Take te lower 23 bits of the Sensor-ID, add "1" as bit 24 and convert into HEX. The higher bits 25 to 32 of the Sensor-ID will be ignored. Example: 8-digit ID printed on the the sensor: 3F3EA642 will convert to BEA642 to be used in CANZE. Setting bit 24 to "1" means that the 6-digit Hex ID for CANZE always needs to start with a hex digit from "8" to "F"; it never can start with a digit "0" to "7".

yoh-there commented 4 years ago

Thanks @E-Gerd-21 I already programmed it in the development version of CanZE. My question above was merely to see if we could ge more samples. But looking through the thread, all examples here have bit 31 set too, so I think your hypothesis is 100% right.

E-Gerd-21 commented 4 years ago

@yoh-there I understand. Question to you: Why do you write in your text "bit 31" and in the commit a83311f code "bit31on" ? I would have expected, that you write "bit24on", if we start counting with 1 or "bit23on", if we start counting with 0.

yoh-there commented 4 years ago

Haha, good catch. Brain fart. I programmed it OK though. Will correct and push

softamateur commented 4 years ago

Hi,

This "bit 24" explains why I earlier couldn't just truncate the first two digits on my new sensors, with their 8 digit hex code printed on them. I thought the sensors was marked wrong.... Zoe was not able to find the sensors.

Original the 8 digit number printed on to the sensors was:

3F91D426 4C682512 4C59284D 4C682563

But the correct ID 6 digits had to be input like this:

91D426 E82512 D9284D E82563

Now I can se that all the leftmost bit 24 is a "1" for all four sensors.

(I found out the correct codes by buying and using a professional tool, MaxiTPMS TS401. If you not have brain to se through things you can often get the result by burning some more money on equipment. Lucky now the CanZE users have it all served :-)

Tumbs up!

Den ons 25 dec. 2019 kl 17:24 skrev yoh-there notifications@github.com:

Haha, good catch. Brain fart. I programmed it OK though. Will correct and push

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fesch/CanZE/issues/577?email_source=notifications&email_token=ACOJRYWB7M6CK5B4IOOHPJDQ2OCLFA5CNFSM4JF7JSXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHUOZBQ#issuecomment-568913030, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACOJRYWMZP376LQOACHAHY3Q2OCLFANCNFSM4JF7JSXA .

--


Göran Nybom

JOIN Business & Technology AB Ideon Science Park Scheelevägen 15 223 70 Lund, Sweden

Phone mobile: +46 (0)708-75 19 25

www.join.se

DompaEV commented 4 years ago

Just to confirm, as it can be seen on screenshots I posted here on Dec 1st, all sensor-IDs on my ZOE start with "A", which is in line with "24th bit set to 1" theory.

SMCinc commented 4 years ago

Hello Everybody, Using the following tools reading TPMS sesor data wiht out driving is possible:

grafik

mishu28nmv commented 3 years ago

All, I wrote the mentioned article in goingelectric forum. I was explaining how to convert an 8-digit HEX ID from a TPMS-sensor to the 6-digit HEX ID, which CANZE is usiing to write ("ID Write") into the Zoe ECU. NB: 8-digit HEX is equivalent to 32 bits BINARY. 6-digit HEX is equivalent to 24 bits BINARY.

The conversion method is as follows: Take te lower 23 bits of the Sensor-ID, add "1" as bit 24 and convert into HEX. The higher bits 25 to 32 of the Sensor-ID will be ignored. Example: 8-digit ID printed on the the sensor: 3F3EA642 will convert to BEA642 to be used in CANZE. Setting bit 24 to "1" means that the 6-digit Hex ID for CANZE always needs to start with a hex digit from "8" to "F"; it never can start with a digit "0" to "7".

I am sorry to revive this thread but...I am stupid or I am stupid. I have the following codes: AD114712 AD10AA64 AD10AA6E AD10AA92 What are the correct 6 digit Hex I should insert in ddt4all?

E-Gerd-21 commented 3 years ago

All, I wrote the mentioned article in goingelectric forum. I was explaining how to convert an 8-digit HEX ID from a TPMS-sensor to the 6-digit HEX ID, which CANZE is usiing to write ("ID Write") into the Zoe ECU. NB: 8-digit HEX is equivalent to 32 bits BINARY. 6-digit HEX is equivalent to 24 bits BINARY. The conversion method is as follows: Take te lower 23 bits of the Sensor-ID, add "1" as bit 24 and convert into HEX. The higher bits 25 to 32 of the Sensor-ID will be ignored. Example: 8-digit ID printed on the the sensor: 3F3EA642 will convert to BEA642 to be used in CANZE. Setting bit 24 to "1" means that the 6-digit Hex ID for CANZE always needs to start with a hex digit from "8" to "F"; it never can start with a digit "0" to "7".

I am sorry to revive this thread but...I am stupid or I am stupid. I have the following codes: AD114712 AD10AA64 AD10AA6E AD10AA92 What are the correct 6 digit Hex I should insert in ddt4all?

AD114712 will be converted to 914712 AD10AA64 will be converted to 90AA64 AD10AA6E will be converted to 90AA6E AD10AA92 will be converted to ??????? You must be able to do it now by yourself :-)

mishu28nmv commented 3 years ago

Thank you! I found the excel formula on the thread you wrote. It works great!!! For others, English Excel version: A1 is your 8 digit Hex ID, for 6 digit Hex the formula is: =DEC2HEX(BITOR(BITAND(HEX2DEC(A1),HEX2DEC("7FFFFF")),HEX2DEC("800000")))