After the release of 1.54 the team is already churning on a couple of things that will be released soon on the beta channel, such as

  • a completely overhauled settings screen “Android style”
  • fairly significant performance increase for the ELM dongles
  • DC charging information!

And of course a few minor issues tackled. Keep reporting issues on GitHub please, it’s the safest way to get our attention, and for you to get feedback.

As a side project of CanZE “ZE50-ing”, team member Leopold Baillard took his CanSee dongle to get input from his ZOE, and fed it into Super Tux Cart, displayed on his garage wall with a laser based pico projector. I laughed so hard!

Please do forgive the dark, shaky and moiré patterned video as well as the wall crashes. Not easy to steer and use your phone at the same time filming. Oh, but that’s what the police says eh?

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.

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.

Ever been busted by an Average Speed Camera system, also called SPECS? They measure your average speed by recording the time difference of passage between two camera locations, either a relatively short distance apart (i.e. between traffic light complexes) or up to several kilometers. In the Netherlands it is called “Trajactcontrole” (Trajectory [speed] control).

We have added an experimental screen called Average Speed to help you avoid tickets for these types of speed infractions. Start the screen and tap on any text on screen to start the measurement, which will be updated in real time. Tap again and a new measurement will start.

But be careful. Keep your eyes on the road and realize some of these systems take both an average as well as spot speed measurements.

Good news for people who want to dig deeper into their ZOE data themselves. We have had several functions to peek into the car. For instance, you can switch on field logging and when on, all fields that are pulled from the car by CanZE are also logged in files in your phone’s memory.

Also, there is the “All Data” screen where you can get all known fields of a single ECU in a single shot. On screen, and simultaneously in a log file.

This does give limited control though on what is pulled while driving. In the next release not only have we improved the log format, there will also be an experimental screen which enables you to log anything you want, as fast as possible. To enable this function you need to create a simple text file called _Research.csv in the folder where CanZE stores it’s log files (usually something like Phone\CanZE\). This file should have the exact same format as CanZE’s internal field definition files. Here is an example:

,7ec,24,39,.02,0,2,%,222002,622002,ff,State Of Charge (SOC) HV battery
,7ec,24,47,1,0,0,km,222006,622006,ff,Total vehicle distance
,7ec,24,39,.5,0,1,V,223203,623203,ff,HV LBC voltage measure
,7ec,24,39,.25,32768,1,A,223204,623204,ff,HV LBC current measure

This will show these 4 fields when opening the Research screen and they will be refreshed (and logged) as fast as possible. The field definitions can be found in the Assets folder of our github repository. BTW, these will all be updated in the upcoming release.

Note: ELM327 based dongles do not handle free frames (UUDT) very well. It is far better to use the equivalent diagnostic field (using ISOTP or ASDT). For ZOE, those always start with a 7.

This is ample opportunity to drop a serious reminder, as displayed when opening the repository and starting the app for the first time. A partial quotation:

Before you download and use this software consider the following: you are interfering with your car and doing that with hardware and software beyond your control (and frankly, for a large part beyond ours), created by a loose team of interested amateurs in this field. Any car is a possibly lethal piece of machinery and you might hurt or kill yourself or others using it, or even paying attention to the displays instead of watching the road. Be extremely prudent!
By even downloading this software, or the source code provided on github, you agree to have completely understand this.

Working for over a year, we’ve been making slow but steady progress on changing the way how we fundamentally talk to the dongle. The cheap Chinese dongles are awful coping with what we call “Free Frames”, and especially the torque bars make extensive use of those. Reliability is low, delay is high and many dongles won’t work at all. Finally, since the ZE40 models came along, many dongles were overwhelmed by the busier traffic on that type’s CANbus.

We’re getting close to releasing a version of CanZE that tackles all of the above. The downside will be that we will need to drop a few fields but we regard then as rather unessential. Think of indications like cabin temperature set-point, flap open; things that are clearly visible on the dashboard anyway.

For the technically minded readers: if approved, the next version will have an alternate mode that will use only ISOTP request-response type of communications. Next to loosing mentioned fields, a ISOTP is by definition somewhat intrusive to the car compared to free frame “sniffing”. This is academical though.

We will encourage all users using and ELM327 type of dongle, such as the KONNWEI902, to try switching on “Use ISOTP fields” in the settings; things might improve significantly. For those who have build or want to build an CanSee dongle, we suggest to keep using free frames. It will beat the ELM dongles in speed hands down. After feedback, we might automate the switch based on dongle type.

Stay tuned, all coding is done and we’re now testing.

Edit: As silly cheap dongles sometimes have no secure Bluetooth capabilities, CanZE switches to an insecure Bluetooth connection when “Use ISOTP fields” mode is switched on.

In the next release, which we will try to push out really soon, the Tyres screen has been augmented with a section where you can read the IDs of your TPMS valves and write them back. So, if you have a second set of wheels with TPMS valves, simply make sure you know and remember the IDs of the valves, and can write them back in after a change.

At this moment we have no way to let the car reliable learn new valves with unknown IDs, so you need to visit the dealer once more to get to the IDs of your other set of valves, but from then on, you’re done. Also, if you happen to buy after market valves, check the packaging if there is a 6 hex digit ID printed. Might save you a dealer visit.

If you have TPMS, our advice is to read out the IDs as soon as the next release is out and store a screenshot somewhere.

Thanks bjaolsen for the information and Richard for letting me try this on your car.

Today I finally got some data from the BCB. I am not crying victory yet, but here are a few teasers. Screen-shots were taken close to the end of a charging session on my home single phase 16 amps charge-point.

Harmonic leak currents look fine, with only the LF one (that is 50 Hz) a bit on the high side. Maybe the scaling is not good. We don’t know what acceptable values are.

On single phase, the voltages on the BCB screen look a bit weird, but I will be working on that.

Progress!!