Range Display

Trying to create a better range estimator. It's an evolution of my SOC Display project

See also: who already have a more sophisticated solution.

27 Aug 2020

OK - here's what I have so far:

  • the hardware is a duplicate of my SOC Display project (although I'd like to switch to a higher-res and colour display)
  • it's connected to the Car-CAN bus rather than the EV-CAN bus
  • it reads the Gids to provide the current battery capacity

I'm calculating my range estimate based on;

  1. Gids in the battery right now
  2. Turtle mode offset - I have my range reach 0 km when there are 8 Gids, which is about when Turtle mode kicks in (Turtle actually hits anywhere from 6 to 8 Gids depending on the voltage of the lowest cell).
  3. Max Gids based on my observations over the last month
  4. Watt-hours per Gids (I'm using 74.73 Wh/Gid) Note: the Open Vehicle Project uses 80, the 74.73 number comes from the early Leaf hacking days. I use this number to convert Gids to kWh. I may tweak this number later on to more accurately match my cars performance.
  5. average km/kWh
    • my 12 month monthly average is 6.9
    • my summer average is 7.3
    • my winter average is 6.7
    • my best month in 2019 was 7.7
      • my worst month in 2019 was 6.4
      • I'm using data from 2019 because my 2020 data has been screwed up by Covid19 lockdown(s)
      • I've been collecting monthly km/kWh numbers from my car as part of the Flip The Fleet project

Putting all that together my Range estimate formula is: km_per_kWh_12months * ((CarGids - Turtle_offset) * Wh_per_Gid)

For my range estimate example: = 6.9 * (Gids - 8) 74.73)

I've been collecting some data to see if my Range is any better than the standard GOM

This seems to indicate that my range estimate is better than the standard GOM, and maybe a little better than the secondary range estimate that the Leaf provides. [If you press the button on the steering wheel blue up arrow inside a blue circle - the center console will show a map with two range estimates; the optimistic GOM number and a more conservative number.] Cars with the cheaper center console won't get this though :(

Now I'm working on an option to display a range estimate graph that provides a visual projection of the range based on my best month, another line indicating the range based on my worst month, and then the actual range as it changes with battery SoC during the current drive. This provides an intuitive indication of (a) the likely upper and lower range possibilities and more importantly (b) how my current drive is tracking compared to those bounds. So if I'm driving 75 km from home to the Otaki fast charger I'll be able to gauge if I'm driving too hard or too easy.

At this stage the graph looks like this:

That's estimated range on the Y axis and km driven on the X axis. Then the top dotted line is the range projections based on my best months efficiency value from 2019. The bottom dotted line is the range projection based on my worst months efficiency value from 2019. And the line between them is based on the 12 month efficiency value from 2019. I'm not using 2020 data because it's wildly a-typical (eg. Covid lockdowns). On top of all that I'll plot the actual Range values as I drive.

Of course - in the ideal world (i.e. a Tesla) the car would use a terrain map to plot how the capacity is going to be utilised along a particular journey. My chart will jut tell me how my current driving compares to the long term average. Then I can use my knowledge of the terrain on my journey to gauge the implications of that.

Once I've used it for a while we'll see if this is actually useful or not.

My prototype display is only 128 x 64 pixels so I'm limited to roughly 1 km per pixel on the X axis.

I'd love to double the resolution - but still fit it inside the dash housing. Other cheap TFT display options:

  • 128 x 128 px, 30 x 44 mm

** 128 x 160 px, 38 x 63 mm - see

A weird thing I found whilst working on this is that the Odometer values running along the Car-CAN bus are in Miles, not Kilometers. This is odd because mine is a Japanese Leaf (from late 2011) and Japan runs on the Metric system so I would have expected it to be a metric Odo. Also the Units on the dash are in km. The implications of this is the resolution for my range tracking graph is only 1.6 km :(


  • get the chart working to show the trail of range estimates for this drive session
  • auto adjust the scale on the chart to maximize visibility
  • switch to a colour display
  • switch to a higher-res display

2 Sept 2020

More fiddling to get the graph working in a way that is helpful.

Trip Odo top left, my Range estimate top right

The white dot indicates current range vs distance is well below the my projection for this ride (which was over the Wainuiomata hill and back - so that makes sense.)

  • The tiny size of this display makes this much less useful than it might be, so I need to address that.
  • I'll add a a tail to the dot so I can see what has happened during the drive. This will be more useful with a larger higher-res display
  • Might swap the Range number in top left and trip odo in top left around. Should try a smaller font.


Page last modified on 17 February 2021 at 10:58 PM