Category: Teaser

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.

Edit: released in 1.45

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!!

More to follow soon…….

No, we’re not talking about Renault Connected Services, we are talking about CanZE. Let me start straight off the bat with this: we always have been, and still are, extremely reluctant to add any sort of Internet based logging or data transfer, even with your, the users, consent. That stance has not changed. Anything written in this post is, at most, dipping a toe in the water and no indication, let alone promise that we will implement any of this in this branch of CanZE. Our reasons are twofold: we don’t want to be responsible for your data, and there are possibly serious legal risks associated, depending on country of driver, home country of developer and/or country where the data is stored, again, even with your consent.

That doesn’t mean we haven’t had requests of various kinds. And actually, there is a lot to gain from it too. For instance, if we collect State of Health data from a couple of hundred cars, we could give you a lot of feedback on battery degradation. We have an idea floating around the developers to maybe make this possible after all. Not only that, maybe to make it in a way that anyone can make such analysis if he prepared to invest a little bit in a couple of tools. Let me explain.

Using a protocol called MQTT, you, the driver, could publish a data stream coming from your car through CanZE. That encrypted data stream would be sent to an MQTT broker service of your own choice. In fact, an MQTT broker can be your own, i.e. on a Raspberry Pi, but there are also cloud based brokers, such as Adafruit.io and Amazon CloudMQTT. In configuring this, you can decide who can subscribe to your car’s data stream. Maybe you don’t want anyone to, and that is fine. Or maybe the entire world, and that is fine too. Services that are allowed to your data can subscribe to it and from that moment on, they receive updates as they are pushed from CanZE. For arguments sake, lets say this is once every 10 minutes while CanZE is running.

An MQTT subscriber can be anything. It can be a small micro-controller that only enables your home charger if your battery is more than 50% empty. It can be a fancy dashboard on your tablet. It can be a data logger. It can be the light-switch of your living room (I wouldn’t hook that up to the data from your car really!).

There is no inherent storage (unless you tell your broker it should), and there is no ownership and responsibility of the data but yours. Of course anyone who is allowed to subscribe to your stream could decide to log it themselves, but the matter of fact is: we neither operate the broker (you do!) nor do we want to. We, the CanZE team, can only subscribe to a data stream that you would have made public and are therefor already, by definition, public. Anyone could check if what we are sending is what we promised to send and not more too. The only thing we would appreciate is any sort of mechanism to be informed if a driver decides to create a public stream of her data. I am not saying this should be automated. Maybe just courtesy based, we don’t know.

MQTT is not very complex. Bare minimum you would need an account from a broker provider, fill in half a dozen fields in CanZE, and then most providers will allow you do start making web or app based dashboards.

We would like to know if people are interested in this approach, again without any commitment from our end. If you want to know more about the nitty gritty of MQTT, here is part one of a quite detailed description.

Top