There is confusion about how to obtain the IDs of TPMS sensors. goingelectric.de user E-Gerd-21 figured it out in this post, thank you! TL:DR Use only the last 6 hex characters of the IDs that came with the valves. Those are usually 8 characters. If the first of those 6 is between 0 and 7, add 8 (hexadecimal, so i.e. if it was 3, add 8 becomes B). In other words, the first character should always be between 8 and F. This bit manipulation will be added in the next release.

Since there are different types of sensors, some are not compatible with ZOE’s TPMS system at all, and I read somewhere success entering the first 6 characters of the supplied ID instead. In other words, your mileage may vary. Of course the most safe option is to have the sensors installed once by the dealer and then read them with CanZE.

Finally, in the next release there will be a helper function swapping the front and back axles, simplyfying wheel swaps.

Anyone who has played with the Research facility, or any log file really, knows the results can be massive and hard to process.

Massimo Ceraolo made a small post-processor that splits up the data per field, timestamped from start-of log. The output files (one per field) are pretty easy to convert into plots with Excel or other programs.

His software can be found here, the PDF has many more details.

In the upcoming release you can save and load two tire sets to phone storage. It was a deliberate choice not to store the sensor IDs in CanZE’s internal storage, because that disappears when uninstalling. The sets can be found as simple CSV files in the /CanZE/ folder on your phone. This addition should make it much easier to swap your winter and summer tires.

Note: to understand how the Research screen in the Experimental section works, see this post.

It is now possible to log positional data together with the other logged data. This functionality is only available in the Research screen. To use it, you need to manually give CanZE location permission in the App settings of your phone, enable location, and finally add the following line to your /CanZE/_Research.csv file

,800,24,31,0,0,0,,210e,610e,aff,GPS

Since GPS data are of course three numbers in one result, that result is presented in the log file as a string with the latitude, longitude and elevation separated with a /, for example

20191206160526974,800.610e.24,GPS,51.04594574/11.74158/407.0,

For the technically interested: this is a quite significant code change. Not only did we have to allow virtual fields in the Research screen, but also allow fields to be triggered externally. Normally, CanZE maintains a circular queue of fields it triggers to fetch from the car. In contrast, GPS events are triggered by Android itself, so instead of manipulating the queue and the process that handles that queue, now individual, virtual fields need to be enabled, started and stopped by screen starts, stops, pauses and resumes.

This feature is available in 1.50-beta3. I am pretty sure there are many kinks to iron out, so if you are interested, enroll in the Beta through the Play Store and put it to the test please.

Teaser alert: there is some exciting news coming up soon for the research and logger fanatics out there. But first, here is a recap of the permissions CanZE needs and why it needs it:

  • Bluetooth and BluetoothAdmin: needed to make a connection to the dongle. Access can be dis-allowed, but of course CanZE is useless.
  • WriteExternalStorage: needed to make log files and read the _Research.csv file. Can be disallowed, but then of course logging is not possible. Promise: We do not manipulate any files outside of the CanZE folder.
  • Internet: used to fetch the news bar in the main screen, and to send crash data to crashlytics. This can not be disabled. Promise: For crashlytics: we add no information that can identify the car or phone to crashlogs. For news: no information is sent, the news file itself is hosted on github and we have no access to their web-server logs
  • AccessFineLocation: has to be manually, explicitly allowed in Android’s permission settings if wanted and can be disallowed. Related to the teaser, stay tuned.

I have written quite often about our efforts to push back on crashes and ANRs (unresponsive screens). Up until now, and including the latest 1.49 release, our major tool for that has been the Google Play store. If enabled, your phone reports crashes and their call stack back to Google, where it is stripped from user identification and aggregated in our Play Store console. It works well, but it can give a massively false sense of comfort to the developers.

While not fully decided yet, we are implementing a Google product called “crashlytics” which goes a step further. When implemented, the crash reporting

  • is done by CanZE, not by Android
  • is still stripped from user identification
  • reports all crashes, not just the ones enabled in Android
  • can contain more information, such as the state of the application instead of just the call stack. This later works by the app saving some information to crashlytics. If the app runs fine, that info is discarded. If it crashes, it is send to the backend database together with the other crash info.
  • is presented to us in a comprehensive console, with tons of filters, sorting, tagging.

We’ve read posts where applications reported tens to even hundreds of times more crashes than those coming back to the Play store and thus stayed under the radar. Of course we hope and think that this is not the case for CanZE, but we want you to have a trouble free experience.

What will you notice? Nothing at all. But be assured if/once implemented that every single crash will be reported and looked at.

As a test, this is now in the Open Beta channel.

As announced. Two major changes:

  • serious rewrite and testing of Tires screen
  • cleanup of Bluetooth connection UI: title changes gone, BT icon now on all screens

Further details the change log and in the commit messages.

We might move to staged rollout in the future, meaning only a small, random percentage would get a new release first to allow a potential massive issue to show up and be addressed before a full rollout. With active user approaching 6000, this level of professionalism is becoming mandatory. As is the Open Beta of course for the daring.

It’s been almost a year since we rolled out TPMS ID writing in CanZE. To be honest, it has always been problematic. Time had come to either fix it for once and for all, or to put a bullet in it.

With a fresh idea from Frédéric Richard and fantastic testing effort from several people in the community (with a special heads up to Göran Nybom who did super detailed testing using his TPMS sensor programming tool) it has been totally overhauled. CanZE now uses a different writing method, fixed all the writing problems, does verity-after-write, checks if the car has TPMS at all and has 100% match between pressures and ID’s *) Oh and inconsistent language (tyres, tires) has been fixed to “tires”.

The latest code is already available in the Open Beta. It will go to production in a couple of days.

*) Remember, the car does not know the actual positions. It assumes the correct IDs are mounted on the correct wheel positions. If you notice a pressure problem but it is indicated in CanZE on a different wheel position, it’s simply a matter of reshuffling the sensor IDs.