- The Hybrid 2004 Toyota Prius -
My CAN Project

High Quality, 21MB ( 640x480, 1276Kbps)
Medium Quality, 2.5MB ( 320x240 158Kbps)

Updated on 7/May/2006

Here is my software download page.

My initiative : to be able to squeze out more info from the
Prius than it is given on the standard display... Such as
amperage used, longer term MPG computation and more...
I work with a couple of talented gentlemen in one of the ...

So far I can ( or so I'd like to think ) read :
- Current-flow info, ICE RPM, ICE and coolant temperature
- Battery state of charge, voltage and temperature
- Gas gauge, Throttle, Speed.
- Acceleration sensors ( 2 deg freedom ).
- RPM on individual wheels.
- Brake, gas pedal and steering wheel values.
- EV mode indicator with cancel/override etc.
So, I have a new onboard computer and I can record "blackbox" style
and visualize the drive using the above parameters ( OpenGL ).

Jump to...
Connecting to the CAN port
Data collecting and analysis
My Realtime Analyzer
My Onboard Computer
Others using it

- Connecting to the CAN port -

First step was to hook up a scope to the service port.

After confirming connection and speed, I was ready to wire up...

Connecting to the CAN through the OBD2 connector under the dash,
twisted pair cable going to the passenger side,
where the CAN232 and USB-serial can be found...

Here is my page dedicated to the CAN232 dongle I am using.
It also has info on the CANUSB converter!
( It has most of my codes available for download. )

This is how I wired it up...

I put a switch on the connector to be able to disable the CAN232 without unplugging...

The passenger side with the CAN232 and USB-serial
converter running at 230Kbaud...

- My CAN data collecting and analysis -

Laptop connected, ready to sample... I had to recompile the Linux kernel
to enable USB-converter support, other than that, quite simple.

Just a quick test, it shows SOC and speed being read...

I also wrote a couple of tools to analyse the traffic, this shows the graph I used
on deciphering how EV mode confirmation was delivered...
A couple of screenshots helping to analyze the system :
Temperature measurements to see sensor location.
EV mode automatic cancellation based on speed.

Here is an old 30sec 2.8MB movie on an other quick
application I wrote utilizing my decoding results.
This was my very first visualizaton software on CAN.
The left bar shows the current, greenish is recharging.
The bar in the middle is the battery's state of charge ( SOC ).
The right bar is ICE rpm.
I started in Electric Mode, thus the heavy amperage usage
shown by the left bar being all red and the shrinking SOC...
At the 15th second the ICE came on, revved up, and charged.
Around the 21st second I let off the gas pedal and started braking...

- My Realtime CAN data Analyzer -

I wrote a quick program (ggana.c) to analyze the CAN traffic in realtime
complementing my other tools for historical analysis. After getting
hunches from the recorded data, I use this app to confirm my suspicions
on values and meanings. It works quite well, as this little movie shows :
Movie : 4 seconds, 405 KB...

Here is my excel sheet on the CAN messages I deciphered so far...
(Last updated on 6/May/2006)

- My Onboard Computer -
( Now with Voice Feedback )

This is my little "onboard computer", showing all the info I need.
It's a Zaurus SL-C700, running Linux Embedix, I ported one of my codes...
( I modified the Zaurus sync cable to accept serial input, the code is reading
the CAN232 on 115.2KBaud with acceptance filtering to reduce traffic,
data is collected, analysed, prep'd and written to the Linux framebuffer.)

Voice feedback is given for every 5% of battery status,
EV mode activation and deactivation,
fuel status ( less than 50 / 25 miles left )
and time ( every 10 minutes ).
( Voice is provided by me with my heaviest British accent, put through
'wahwah' and 'reverb' and mixed with chimes when appropriate,
saved in MP3 chunks and played back as managed sequences...)
* A truly 21st century car now... *

An older screenshot and explanations :
Top line shows :
- Time and mileage since trip started ( car powered on )
- Current Speed
- Current MPG
- Mean speed value for the trip
- Trip MPG indicator / Used fuel on trip

Info on the followings are provided only when actual :
- Last regen brake and acceleration info ( kW, speed range )
- Actual current vs. max [dis]charge current relations.

Below the battery indicator, the accumulated mileage
and the corresponding MPG is shown ( does not reset with fill-up ).

The fuel gauge also shows remaining driving distance with present fuel level;
left value is using overall, the right value is using trip fuel consumption value.
Below is information on last "trip" and/or since last refuel.

Some screenshots :

Left screen : Electric Mode Driving. Everything is still cold. There is 10.71 Gl fuel left.
Right screen : Electric Mode Cancelled due to Heavy Acceleration. 12% above suggested drawable
current ( 112% ). Since the ICE is off, the catalyzer temperature might not be valid.

Left screen : ICE utilized, running at 2848 rpm, electric motor drawing 29A. The coolant is
at 74C, engine block is 65C and the Catalyzer is 365/184 C. Engine is at optimal temperature.
Right screen : Light Braking. Recharge efficiency is 26%. The ICE is iddling at 1280 rpm.

Left screen : The ICE shut down, but ready to be started. Heavy breaking is in progress generating
95.6A at a recharge rate of 91%. Battery SOC is at 74.5%, battery temperature is 28C.
Right screen : When the car is turned off, we go to statistics mode.

"Driver-Side and Rear Doors Open" and "Passenger-Side Door Open".
(CAN ID = 0x5B6)

Here is a movie demonstrating this running :

High Quality, 21MB ( 640x480, 1276Kbps)
Medium Quality, 2.5MB ( 320x240 158Kbps)

I made a visor for it from aluminium for better visibility and screen protection...

Others using it :

Thank you for Fukuda-san, Hamada-san, Sato-san, Yokoi-san and Mimura-san
for emailing pictures on their setups...

These words are "fueling" my enthusiasm, thank you :

P.S.  Love your project!!  When my old clunker dies I
have another reason to consider buying a Prius.  -HS, USA

I'm a 2004 Prius owner and one of fans of your CAN
project site. Thank you very much for your openness.
We learn a lot from your site.  -YM, Japan

Your work with the Toyota Prius and web site are quite
impressive: I commend you on all this work.  -HG, USA

Just emailing to tell you how much I enjoyed your Prius
pages. The CAN hook-up looks splendid. This is something
I may try to do... I do want to compute a long term mileage.
It seems that Prius people are really enthusiastic.  -CP, France

I'm writing a short piece for The ### Magazine about
people who have made way cool modifications to their Toyota
Priuses. I loved what I saw on your website.  -AT, USA

I'd like to thank you for your very interesting
description of exploring the software / network
on your Prius. Fascinating stuff.  -GW, UK

I have started a project on decoding the CAN Bus... I was
wondering if you'd mind chipping in on our forum.  -MJK, USA

I just crosscompiled your source code and ran it.
It also displayed same picture in 6.4inch LCD display.
Quite cool~~ thank very much!  -Kim, Korea

Hello, I love your site, and I love your Prius,
just got an '05.  -AB, USA

I fan the software (graphcan) that you made. 
How wonderful graphcan is. -KF, Japan

I just found your remarkable Prius info site.
I wanted to let you  know that I added some
links to it from my Prius site...  -RF, USA

I've read your website with big interest. I have also
a CAN232 Dongle... I have a BMW Z3...  -FF, Germany

Iím writing an article on the Toyota Prius...
...In doing research on the Prius, I came across
your site. It looks like youíve gotten to know the
computer systems inside out. Iím wondering if you
would have some time to talk.  -MD, USA

Thank you very much for the revised
graphcan and for your kind instruction!  -YH, Japan

You have done a wonderful job on the Prius CAN project...
I am about to tackle my '05 prius with the intention
of learning and sharing.  -SW, USA

Attila, How hard would it be to port your
work to a Mini Mac running OS X?  -HD, USA

Great Site!  Thanks for the info on Prius. I love to tinker,
so your information is invaluable.  If I can ever find the
time I'd love to try out that dongle.  Perhaps someday I
can contribute to the fund of common, or uncommon,
knowledge regarding the Prius.  -RF, USA

"stumbled" onto your site...........Excellent!
I'm a new Prius owner and you seem to have found
a solution to one of my issues.  -Brad, USA

Attila, Some progress at last. I built my own
cable following your recipe exactly.  -JA, Luxemburg

I am working on using the CAN232 for my Audi TT. I am
currently evaluating your code :) I really appreciate
that you've place your code in the public domain.  -TKB, USA

Your site has been most informative. The Prius is
a fantastic looking piece of engineering...  -JW, USA

I just watched your new movie showing off your
CAN monitor.  VERY NICE!!!  -JBS, USA

...I now have a real appreciation for all the work you
must have put into deciphering the ID's.  I spent all
weekend looking for... Maybe you could check and
see if I'm close.  -GO, USA

Excellent job on the Prius. Really excellent. All this
information should already be in the owner's manual,
in my opinion.  Keep up the good work.  -DB, USA

"Thanks, thanks thanks a lot ' Oh you, great master-can'"
I can comunicate with my FIAT car body computer.  -MD, Italy

I am very interested in your project on your Prius. I
also have an '04 Prius, and I perform many alterations
to it. I have always wanted something to show me the same
thing that you made your screen show you. I really want
to make something just like what you have there.  -BK, USA

I work for #####-motor company in #### as a test engineer. 
While surfing the net, I found your "prius CAN" site.
It's rea~~~lly cool !!   -EL, Asia

- Salutation -

The more time I spend with studying this car, the more
amazed I am what a complex and fine-tuned machinery it is.
A truly magnificent car... I salute you, oh'engineers of the Prius!

Go back...