Some musings about the future

As mentioned a few times, the last few month lots of effort has gone into quality instead of features. And it has payed off. ANRs (App not responsive) and crashes levels are at or better than the average app. It seems dongle crashes have gone down too. Given the massive diversity in devices (dongles and phones/tablets), we consider this a great improvement, though admittedly you, the individual user, probably hardly noticed. A non-crash is and should be indeed a non-event.

This process isn’t finished. First of all it is something that we continuously monitor, especially after new features or fixes. Secondly and as announced earlier, we are in the process of sunsetting unmaintained languages as well as Fluence/Kangoo support to further cleanup code.

With this major effort behind us, this slowly gives space for functional development again. At this moment there are three issues that need our attention:

  • Resetting DTCs doesn’t work anymore (this seems to be a regression);
  • Setting TPMS IDs seems either buggy or not working at all (see next paragraph);
  • We need to make a version where all data is retrieved through ISO-TP commands. This requires lots of research but will enhance speed and stability on ELM type dongles a lot. For CanSee dongles, free frames are actually faster, so we try to use them as much as possible there.

Now features like TPMS are hard to implement and maintain. Being early adopters we don’t own cars with TPMS. It’s a bit hit and miss and politely asking for access to other people’s cars. And that issue is bound to get a lot worse soon: the new ZOE (nicknamed Gen 2) will be released in a few month. It will feature CCS, have a somewhat larger battery and I expect it will feature the same motor as the R110. Especially CCS will have significant impact on what we do with CanZE, notably of course in the charger sections.

We have no access to Renault’s designs, nor the Clip tool, nor a car to play with. Speaking for myself, I have no intention of buying a Gen 2 anytime soon. My 2013 Q210, which has done over 100.000 km now is trotting along quite nicely, showing 97% battery SOH (!!) and I sincerely hope it will for at least another 5.5 years.

We’ll have to see how we can keep up. With almost 5000 CanZE users on the current models, there is no reason for any immediate measures.

200.000 kms passed (not me)

Dutch Q210 driver “OlafH” just had his August 2014 ZOE pass 200.000 kilometers (about 125.000 miles). SOH 91%. Who would have thought.

Quick 4-weekly statistics post

  • Growth slowing down to 2.4% last month
  • ANRs have gone to zero!
  • Crashes have gone down further, but a nasty regression slipped in just a few days ago. Put here is a 180 days graph for your perusal.

The problem is known and will be fixed soon. If you ignore that spike, you will see we went from hovering around 20 to around 3. Be aware that this graph runs across all app versions and there are always a few hundred un-updated versions out there.

Crashes on Android 8.1

We receive crash reports on an issue specific for Android 8.1. If you are using CanZE on an Android 8.1 device and experience crashes, please contact us by commenting here or appending on the open issue

Please provide as much detail as you can such as what screen you had open, what you were doing i.e. editing a field, rotating the device, letting it go to sleep, etc.

It is very much appreciated.

Some more digging in the intestines (Q model)

Two very interesting videos about the inner workings. Even disassembly of a PEB.

Many thanks Dutch forum user “Riesbak”

Statistics revisited

Another episode of the 4-weekly statistics and some additional information

  • Growth is steady. Last month we’ve seen a 4% increase.
  • Crashes and ANRs (unresponsive screens) are again slashed. In the last 7 days (Taken because now most are on 1.37):
    • we have seen zero ANRs, cool!
    • we had 4 crashes, two were instances of the same problem.

The 30 days crashes and ANRs statistics now put us way above the “bad behavior thresholds” google has defined, and solidly into the second quadrile of all applications. We strive for the third quadrile, meaning less issues than the median of all applications in the Play Store. Though you might not notice “less crashes” actively as a user, it is improving the perception in the long run a lot. It is also bloody hard work!

ANRs and crashes are measured as percentage of affected daily sessions, where a daily session is defined as a day where an individual user used the app at least once. For example: suppose on Monday 20 users use the app once or more, and on Tuesday 30, then there are 50 daily sessions in those two days. If one user has 2 crashes on Monday, it counts as one affected session. If no crashes occurred on Tuesday, the crash rate over those two days is 2%. Google defines “bad behavior” for crashes as more than 1.09% over the last 30 days. Given that we see roughly 100 reported daily sessions per day, only one crash per day is “allowed”, though the median of all apps is 0.32%.

Now there are two important notes to address:

  • We only see total numbers. The reports are heavily anonymized and not generated at all if the total number of daily sessions for them is too low. This seems to be to avoid pinpointing users, which is a good thing. Though I admit I sometimes see errors where I think “how did the user manage to do that?”
  • Only users who allow sharing of usage and statistics provide this data, so we have no way of knowing how many actual daily sessions are operated. While we understand the privacy impact, especially towards google, we are very grateful to users who do have this option set to on as it allows us to notice issues and act fast on them. To check or change: Settings > Google > Three dots menu > Usage & Diagnostics > On / Off

Small UI changes coming up

In the next release you will notice some UI changes.

  • All screens will now have an Android style “Home” button, a left pointing arrow left of the title.
  • The main menu will no longer display the settings icon in the title. In line with conventions Settings has moved to the Three-dots menu.
  • The OK and Cancel buttons in the Settings screen are removed. Either pressing the Android return button at the bottom of the screen or the new “Home” button left of the title will save the settings and return to the menu screen. However, you can still Cancel using the Three-dots menu.
  • “Please wait” type of messages are being gradually replaced with a blue spinner, i.e. when opening the setting or when fetching all data.

This draws CanZE a little bit more into Android UI conventions and should make using it slightly more intuitive.

New release 1.37 is rolling out

Title says it all. The only thing you should notice is you can now transfer the app to SD memory. All other changes are technical fixes to further improve stability.

Statistics revisited, with a focus on fixing errors

Four weeks after the first statistics post, a short update on the subjects touched.

  • We’ve rolled out 2 new versions since. Well technically 3, but one was in error and superseded within an hour;
  • Growth the usual 4+% over the last month;
  • Massive (75+%) reduction in crashes and non-responsive states (ANRs).
  • I speculate April will see more of the same as the version released just 3 days ago tackles again 9 of those issues. Our goal is to at least half the crash and ANR rate again.
  • Three crashes after release are already fixed and committed for the next release, one of which is an issue that is very specific for Android 7.1. and one specific for Android 8.1.

We’re slowly heading into more esoteric territory where problems are less bug fixing and more avoiding platform issues on specific Android versions and/or on specific phones.

Please note that every single crash or ANR is anonymously reported through google *). While annoying do realize we investigate and almost always fix each and every one of them. The changelist is always available here.

*) if you didn’t disable that of course. Here’s Google’s wording on that verbatim:

You can view your app’s technical performance details collected from a subset of Android devices & OS versions, whose users have opted in to automatically share usage and diagnostics data. Learn more

Range screen

The Range screen has been fixed and needs some explanation. In essence it compares the available range calculated by the car to three different ranges:

  • The first number is a range based on the current energy content of the battery and the worst consumption;
  • The second number is the same, based on average consumption. One would expect this to be the same as the car reported range, but it isn’t;
  • The thirst number is the same but using the best consumption.

The consumption numbers are calculated by the car. The second number can made a bit worse using the slider to adjust for sporty driving. In my case, leaving it at -10% seems to be about right.