PriiDash(TM) was registered on SourceForge.net on Jun 8, 2011.
The exact license terms used by this project are in the licensing documents LICENSE.txt and
GPL(v.3).txt (also included in the
- Originally designed for Gen 2 Prius (2004 ~ 2009). Now can be used for any car that supports standard OBD-II interface.
- Customizable commands and formulas to selectively decode and display data to suit individual user preferences.
- Each gauge displays min and max values logged.
- High precision speedometer (0.1 MPH) and odometer (0.01 mile).
- User selectable distance (mile/km) and fuel volume (US Gal/UK Gal/L) units.
- Roll mode display of recent history of temperatures, powers, and average MPG. Some examples:
In the last row of examples above, note that frictional loss only takes a very small fraction of the total braking energy for gental braking, but takes a significant fraction for hard braking.
previous 9 miles
previous 18 miles
Spike from hard braking
Spike from pulsing
gentle braking then pulsing
- "Green Zone" and "Red Line": Gauge changes color when the value crosses certain thresholds for easy visualization. Some examples:
for ICE Stop
No stop in S3
Can stop in S3
Has to spin
||Inverter 2 and MG 2 overheat|
Inverter 1, converter and
MG 1 OK
Info for Users and Contributors
Safety - Read Me First!
Hardware and Software Setup - Please read thoroughly!
Download PriiDash files
Pictures and Screen Shots
Data Logs and Analysis - Please contribute to the collective knowledge once you get the software working.
FAQs and Troubleshoot
Feature Suggestions and Bug Report
Project detail and discuss:
Project summary page |
Forum at PriusChat
Donate money - Please consider supporting the development of PriiDash(TM) if you find it useful.
Not what you're looking for?
SourceForge.net hosts over 100,000 Open Source projects. You may find what you're looking for by
searching our site
or using our
Safety - Read Me First!
Drive safely and responsibly.
Keep your eyes on the road at all times while driving.
You don't want to end up like this, do you?
Hardware and Software Setup - Please read thoroughly! Many changes in 2012/06 and 2013/07 releases. Windows native binary executable now included (2013/07).
- Hardware: We need a laptop or netbook, and an ELM327 compatible OBD-USB device. Connect the hardware and set the baud rate to 2M bps. (We need at least 500K bps and preferably 1 or 2M to fully utilize all data available for gen 2 Prius. For "query only" operation, updating fewer gauges and less frequently, the baud rate can be lower.) Just as an example and without any implied endorsement or promotion, I am currently using an Eee PC 1001PXD-EU17 10.1-inch netbook with Intel Atom N455 CPU, 1 GB RAM and Win7 Starter (as out of box without any upgrade), and an OBDLink device. (I have since upgraded to 2 GB RAM without any change in performance. OBDLink SX also works.) A Fujitsu Q702 tablet PC is used for recent development though I expect the old netbook to still work fine.
- Operating System: The software is being actively developed under Cygwin, a Linux environment for Windows, and MinGW, which generates Windows native binary that can be run by double clicking or from a Windows cmd window. It is also possible to compile from source code and link with X11, FLTK, Boost, and muParserX libraries to produce Linux executables. The download zip file includes two precompiled executables: "\PriiDash3\PriiDash3_MinGW\dist\Release\MinGW-Windows\priidash3_mingw.exe" for Windows and "\PriiDash3\dist\Release\Cygwin_4.x-Windows\PriiDash3.exe" for Cygwin. To run "priidash3_mingw.exe", simply double-click it or run from the Windows command line. (Two text files command.txt and formula.txt need to be in the same directory; see below "Directories and Files:" for details.) To run "PriiDash3.exe", first set up Cygwin with X11 and then run from an Xterm. To set up Cygwin, download and run the installer with the following components selected:
The installer will suggest some other dependent components - keep them selected. Then it will download and install all selected components. On my laptop Cygwin (with the components listed above) takes about 700 MB of disk space.
- devel/gcc ("gcc-core" and "gcc-g++")
- devel/subversion (just "subversion")
- Note to Contributors: To compile the project from source code, project files for the NetBeans IDE are included in the download zip file. In general, edit the "\PriiDash3\OSdep\xxx\OS.h" file according to your target operating system. The X11, FLTK and Boost libraries can be linked as is. The muParserX library needs a minor modification to add the "%" (modulo) operator and to change the default to non-complex. The files that need changing are included in the download in the "\Code\muparserx_v2_1_2\parser" sub-directory. The user interface is first constructed using Fluid which comes with FLTK. It is saved in Dash.fl. So please use Fluid to make any modification to Dash.fl. After that the two files "Dash.cxx" and "Dash.h" can be auto-generated by Fluid. Do not modify them directly. Please mark your changes to the code clearly before distributing any modified version.
- Directories and Files: The precompiled executables ("PriiDash3.exe" and "priidash3_mingw.exe") each needs two text files "command.txt" and "formula.txt" in the same directory. A set of text files for gen 2 Prius and another set for generic OBD-2 equipped cars (tested on 2003 Honda Odyssey) are included in the download. Another set of text files for gen 2 Prius for "query only" mode is also included for slower OBD-USB devices. There are two optional run-time files: "setBrightness.bat" can be used to set screen brightness and "nircmdc.exe" can be used to save screenshots. A few mandatory data log files are saved in the drive and directory "f:\OBDLog\" by default but can be changed. (To create the default directory, go to the Disk Management to either create a partition "f:" or change the drive letter of a disk to "f:", and then create a directory "OBDLog" under it.)
- Disk Space: The data logs are plain text and csv files and can take a lot of disk space, about 160 MB per hour of driving. It is probably wise to use a solid state device as opposed to a hard disk unless it's shock proof. For example I use an 8 GB HDSC card, set its drive letter to "f:", and create the OBDLog folder under it.
- Usage: To run "priidash3_mingw.exe", simply double-click it or run from the Windows command line. To run the program under Cygwin, first open an X terminal (Start | All Programs | Cygwin-X | XWin Server). Change directory (cd) to where the "PriiDash3.exe" file is and enter "./PriiDash3". If the program is run for the first time, then an "About" window will appear, displaying the license agreement. Please read the license agreement carefully and click the "Accept License" button. At a later time the "About" window can be opened by clicking the "About" button in the "Main Control" window. Select the OBD-USB port number and the baud rate to match your hardware settings. If you don't want to use the default "f:" drive and "OBDLog" directory, click "Set log filename" to navigate to your preferred directory and enter any dummy filename such as "foo.txt". Enter the fuel cost and initial Odometer reading and select desired units. Select car type and run type:
Click the "Go" button in either the "Main Control" window or the "Gauges" window to start data display and logging. Click the same button (text on the button should have changed to "Stop") to stop data display and logging. Click the "x" (close window) button at the upper right corner of the "Main Control" window to quit the program.
- "Normal": Alternates between passive listening and active querying;
- "Simulation": Check graphic display and see what you are missing without a Prius;
- "ATMA log only": Only passive logging and no decoding;
- "ATMA only": Only passive logging and decoding, no active querying;
- "query only": Only active querying, good for slow OBD-USB devices;
- "2 OBDUSB": Run 2 OBD-USB devices in parallel via a "Y" cable, one does active querying at max speed and the other does passive decoding to capture all the passive and active data - the ultimate setup within the limitation of the ELM chip.
- "read DTC": Read DTC (Diagnostic Trouble Code).
Pictures and Screen Shots
- Some older pictures of PriiDash(TM) in action:
Data Logs and Analysis
FAQs and Troubleshoot
Feature Suggestions and Bug Report
Features to be added
- Gary Briggs, author of obdgpslogger, who introduced me to FLTK and cygwin.
- Michael Pearce, who started the Fl_Gauge program, upon which I have expanded functionality and added many new gauges.
- Flyer at scantool.net, who came up with a brilliant method to toggle between passive and active CAN message handling.
- Attila Vass, who pioneered in cracking the Prius CAN codes.
- Planetaire at priuschat.com, and kinetik (kiki.netik at google.com) who provided many updated Prius CAN codes since Vass' work.
- The PriusChat forum community, that inspired my interest in the Prius technology.
- Many other forums that provided answers to various questions during the development of the software.
- SteveDH at PriusChat, who made the native Windows version working.
- Ingo Berg, author of muParserX, without which the customizable formula list won't be possible.
- Ian MacArthur, Greg Ercolano, and Albrecht Schlosser from the FLTK general discussion group, who helped to improve usage of FLTK.
Join this project:
To join this project, please contact the project administrators of this project, as shown on the
project summary page.
Get the source code:
Source code for this project may be available as
or through one of the SCM repositories used by the project, as accessible from the
project develop page.
is the world's largest provider of hosting for Open Source software development projects. SourceForge.net provides a variety of services to projects, including a download mirror network, collaborative development tools (like CVS and Subversion), and tools to support discussion and support. These services are provided to projects and their end-users free-of-charge.
About Open Source:
Of benefit to users,
software is licensed so you can download and use the software free-of-charge. The source code for this software is made available free-of-charge, you (or a programmer you hire) can make changes to this software to better meet your needs, and you can release your changed code back to the community passing the benefit on to other users.