<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5586334205306250157</id><updated>2011-11-27T15:38:28.621-08:00</updated><title type='text'>Running Near Empty</title><subtitle type='html'>Here is where I will chronicle my adventures driving (and fixing) my Nineteen-Ninety-Three Honda Accord. It is here, that I will also present possible gadgets to help inform and entertain the Honda enthusiast. This site is really dedicated to the engineer/hacker (like me) type. Folks that may want to have more than just fun with electronics--- that through their imagination and persistence some greater good might just result.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-185762295540493253</id><published>2010-10-22T07:08:00.001-07:00</published><updated>2010-10-22T07:09:43.821-07:00</updated><title type='text'></title><content type='html'>Technical details of the VID and more is now available at the following website:&lt;br /&gt;&lt;br /&gt;http://www.riverstoneembedded.zxq.net&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-185762295540493253?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/185762295540493253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2010/10/technical-details-of-vid-and-more-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/185762295540493253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/185762295540493253'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2010/10/technical-details-of-vid-and-more-is.html' title=''/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-1595730365979789206</id><published>2010-06-09T10:03:00.000-07:00</published><updated>2010-06-09T11:27:07.395-07:00</updated><title type='text'>June 8, 2010</title><content type='html'>I see it has been sometime since I last posted here.  During that interval a lot has happened.  The VID project has spawned from a single minded application to a general appreciation  of a number of other environmental (or green) issues. I seems that when I sat down to actually design a PIC based card to formalize that Vehicle Information Device---- I ended up with a system that could (and will) be useful in other areas of energy conservation.&lt;br /&gt;&lt;br /&gt;The VID (Vehicle Information Device) application is now simply a PIC based C program that is installed on a general purpose micro controller card. IN fact, the VID application can now be used in several ways depending on the needs of the user.  One way is to use the RF features of the boards would be to divide the application between a sender and reciever/display board. The sender card is powered by the vehicle's 12 volt system. It connects directly to the vehicle's fuel injection and speed measurement system  While the receiver card is battery powered--allowing the user to place it any in the passenger compartment in a position  that is most convenient. While both sender and receiver cards are electrically identical to the other--- the embedded software on this card performs high level functions required to process data coming from the other card via &lt;span style="visibility: visible;" id="main"&gt;&lt;span style="visibility: visible;" id="search"&gt; IEEE 802.15.4&lt;/span&gt;&lt;/span&gt; radio system. This board interacts between the user and the sender card----sending the user requested information to a LED display mounted near the user. Via the switches mounted on  reciever card, the user can request information on the engine economy functions, the electrical system output, and the temperature of both inside and outside of the passenger compartment-- as well as have access to a very precise real time clock mounted on either the sender or receiver card. Given the open design concept of this device--- new devices can be added interface with any foreseeable future need.For example, vehicle handling dynamics can be monitored via accelerators, vehicle position can be computed via GPS add-on devices. This is made possible by a I2c inteface provide on both cards.  &lt;br /&gt;&lt;br /&gt;The final configuration is really just a matter of what software is installed on the boards(or board). For instance--- if a potential user only wanted one board---but also wanted to be able to receive vehicle information via his PC--- he could opt for bring the Fuel Injector and Vehicle Speed Sensor information into the sender board as before. Expect, that instead of broadcasting the information to the receiver card for display to to the user--he could simply attach the I2C display board to the sender card----and be done with it. The unit would also come with a USB attachment and software for the user's PC. Vehicle information could then be viewed and/or saved to the PC harddisk.&lt;br /&gt;&lt;br /&gt;At any rate, this application is but one of many possible applications for RF remote sensing and control type projects.&lt;br /&gt;&lt;br /&gt;In fact, the same PIC/RF technology is about to be deployed to create a system of remote controlled thermostats in our home.  Since the card was originally designed for the automotive application, it also includes temperature sensing and real-time clock--- it was a natural step to move this device to monitoring and controlling the temperature in each of the (many) rooms in this house.  I will get into the technical specifics of this application later-- but in general using these boards will allow us to manage the electrical use during the winter months with the eventual goal of time-sharing KWHs used as alternative heat source to the oil-fired boiler.&lt;br /&gt;&lt;br /&gt;With the ability to centrally monitor and up to 10 thermostats distributed throughout the house, the temperature in those areas(zones) can now be optimized for the exact use required--according to the time of day, and the number of people occupying that space. Assuming that the R value factors are in order---- it is now possible to install by each zone, a single 120 vac, 1500 watt electrical heater for use as supplemental heating.&lt;br /&gt;&lt;br /&gt;The astute reader would immediately question exactly how potentially 15000 watts of load attached to 120 volt circuits would be useful when having more than one unit on at a given time would likely trip the 15 amp breakers. And so that is the point--- by finding a proper balance point between heater on time (for each zone) and the requested room temperature-----and the heat loss characteristics of this house. it may be possible to keep a large (and largely unoccupied) house such as this from freezing using a round-robin approach to the several 1500 watt heaters--without (immediately) resorting to the use of a 2.5+ gallon/hour oil fired boiler. (I might add-- that we have a 75 KBTU wood stove that is used to handle most of the living space heat requirements during the waking hours.)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt; In other words, the basic goal is to keep the huge oil fired boiler OFF for as long as possible during the coldest NE nights of the winter.   Of course the boiler also constitutes a heating zone of control--the PIC based system can also trigger it into operation when the temperature finally drops below a point where the heaters are not adequate..  However, having a system that would automatically adjust all zones for real-time conditions---just barely keep the unoccupied rooms in this house from freezing without the boiler would save the large cost of developing a head of steam for no particular reason other then to keep pipes from freezing in the outlaying areas of the house..   Of course depending on the  load on each 15 amp circuit some heaters on different circuits could be triggered on together--but the general goal is to run each heater for just long enough to satisfy a constantly variable set point and then move on to the next---until the cycle is repeated---perhaps each hour.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So---with a RF networked group of remote sensor/thermostats (each controlling one heater), the hour-by-hour requirements of each zone can be managed from a central-led PC running Windows XP.  In addition , each zone station can be set either remotely or at the station to maintain a specific temperature if it receives no countervailing commands from the central thermostate program.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok--- I have said enough for now... just in case anyone is reading this-- drop back soon for more details on these cards and the general progress of things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-1595730365979789206?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/1595730365979789206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2010/06/june-8-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/1595730365979789206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/1595730365979789206'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2010/06/june-8-2010.html' title='June 8, 2010'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-2208245380280870249</id><published>2009-12-05T11:08:00.000-08:00</published><updated>2010-06-09T10:03:26.172-07:00</updated><title type='text'>1993 Accord LX</title><content type='html'>The old car is back.  I finally got it all back together and in road worthy shape.  To do it myself turned out to be quite an adventure.  I have to admit at one point I had it towed to a place that could deal with a very dysfunctional ball-joint. But other then that "minor" deviation, I completed about $2500 worth or repair work for about 1/5 that amount, and the car rides and runs great. The VID device is now laying loose on the passenger side rug... it reports a nice 34 MPG average during my drives. Apparently the GD front driver side brake rotor has been completely dysfunctional for a long time. While working on the other issues,  I think it was pushed into to complete failure.. I finally had to replace everything on the driver's side wheel assembly, except the steering knuckle itself. But that turned out to be very inexpensive---thanks to ebay etc.   Along the way,, i also replaced the front coil springs, and the entire exhaust system south of the catalysis converter. At any rate, the only thing remaining on my list--- for long term stability is the timing belt..  I believe with the amount of information I have on this subject, and the tools I have.. it would be feasible to do the job myself. I am however, worried that unforeseen problems might prevent me from getting to the core of the issue.  For instance, the engine mount on that side must be removed.. and it is a bear...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-2208245380280870249?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/2208245380280870249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/12/1993-accord-lx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/2208245380280870249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/2208245380280870249'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/12/1993-accord-lx.html' title='1993 Accord LX'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-2374671281097293315</id><published>2009-12-05T10:41:00.000-08:00</published><updated>2009-12-05T11:04:35.992-08:00</updated><title type='text'>Update</title><content type='html'>If anyone requests information on the original design of the VID, I would be happy to assist them.  However, I have sent this over all design back to be repacked.  The current VID software and hardware supports most pre-1996 fuel injected automobiles--the functionality of the fuel economy hardware and algorithms are solid. The problems lies in the device mounting and packaging.  In my case, the 1993 Honda Accord has a dash mounted clock. I recently removed this item (it was not working).. and realized that building the clock function into the VID and then installing it in the existing clock (footprint--if you will) might be a good way to finally get some use from the device. I have started to select a I2C based Real time clock chip to provide this feature.  Now---that I have a  I2C bus--- i am adding temperature sensors for both inside and outside the cab.. I am also adding analog monitoring capacity for other things. i.e. battery voltage measurement etc.&lt;br /&gt;&lt;br /&gt;Bottom line.. (in case anyone is reading) the VID is going to be redesigned to work with multiple cpus. It will also be configured to run at 20 MHZ (not 8 MHZ) The clock chip will provide the main processor a reliable source of 32.768 KHZ---This means that fuel measurement system accuracy will no longer depend on the cpu's  instruction clock and the timer divider, currently used to achieve 125 microsecond measurement granularity.  The other feature needed was the addition of non-volatile  static ram. The clock chip will provide about 56 bytes of static ram This storage will replace the flash storage currently used. One of the issued uncovered during long term testing was that flash can wear out-- since a some sort of non-switched power will be required for the clock--- it will also keep TRIP and TANK data alive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-2374671281097293315?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/2374671281097293315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/12/update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/2374671281097293315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/2374671281097293315'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/12/update.html' title='Update'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-7417536686202015933</id><published>2009-10-25T09:55:00.000-07:00</published><updated>2009-10-26T07:15:58.352-07:00</updated><title type='text'>Update</title><content type='html'>It has been a while since I last posted to this blog. During that time, VID (Yet another gauge) testing has continued off and on.  When the test reached about 10,000 miles the Microchip F182520 failed to accept flash programming and had to be replaced. The only thing I can relate this to is the fact that I was updating internal flash memory at a rate that "might" have exceeded the specification for read/write cycles.  At any rate, the on board flash is now NOT updated unless it is absolutely necessary to do so. This should ensure a long useful product life.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Because this project is moving toward a static point, I will soon release as open source all of the software source code for this project. I will also make available any and all information on BOM list and electronic schematics.  I would enjoy seeing what improvements others might make on this device and  associated software.  Again, if anyone wishes to just build the hardware, and receive a  preprogrammed controller chip from me, that might also be arranged.&lt;br /&gt;&lt;br /&gt;So say tuned.  As for open source Linux fans, the laptop client application (host) runs equally well under Ubuntu, as it does Windows.  There is also a version of the application that is capable of running on Pocket PC type devices. I believe previous blog posts have documented all of these possibilities.&lt;br /&gt;&lt;br /&gt;Because I will soon be on the road traveling to remote customer sites for software contract work, I plan to have the opportunity to set up the VID on the old Honda Accord. This should make possible to supply periodic posts on exactly how the device is helping save me fuel---- and money.&lt;br /&gt;&lt;br /&gt;While feedback on the existing VID is/was lacking, I have received several messages regarding my comment that perhaps a CAM style interface for the VID would facilitate the use of commercial devices front ends (Scan Gauge) for user readout.  Obviously cars made before 1996 have no existing infrastructure for using any type of diagnostics readout device. It occurred to me (as it did others) that by building a relatively simple CAM node device and wiring the fuel injector inputs, VSS sensors, and varous analog signals from the vehicle to the its ( CAN node) inputs  would allow someone with OBDII devices to monitor these values. Some feedback has suggested as much. &lt;br /&gt;&lt;br /&gt;Building upon what I've already done, the actual task of building the NODE is not as challenging as being able to structure the data in a format that Scan Gauge would accept as valid information. It means having a some knowledge of exactly what information is derived directly from the vehicle and what information is inferred/computed from these readings.  With this knowledge, the designer of the CAN information tables could arrange things in a way the OBDII device would like to see it.  This means knowing exactly the CAN_ID for each of the required data elements. Using a u Processor with sufficient memory resources to interface with a dedicated CAN chip is one why to do this. The other way is to use a u Processor that has CAN facilities built in. Either way, there would be some interesting challenges to surmount--even with copious amounts of open source support software that currently exists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-7417536686202015933?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/7417536686202015933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/10/update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7417536686202015933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7417536686202015933'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/10/update.html' title='Update'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-409469310354466682</id><published>2009-08-18T06:37:00.000-07:00</published><updated>2009-08-21T09:36:02.435-07:00</updated><title type='text'>Honda Fuel Economy TRIP COMPUTER VID/YAG</title><content type='html'>&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on" style="display: block;" id="formatbar_Add_Video" title="Add Video" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addVideo();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Video" class="gl_video" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on" style="display: block;" id="formatbar_Add_Video" title="Add Video" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addVideo();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Video" class="gl_video" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on" style="display: block;" id="formatbar_Add_Image" title="Add Image" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addImage();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Image" class="gl_photo" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on" style="display: block;" id="formatbar_Add_Video" title="Add Video" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addVideo();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Video" class="gl_video" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on" style="display: block;" id="formatbar_Add_Image" title="Add Image" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="addImage();" onmousedown="CheckFormatting(event);;ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Add Image" class="gl_photo" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1f3c831d3ab52520" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v19.nonxt2.googlevideo.com/videoplayback?id%3D1f3c831d3ab52520%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330282246%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D25A62DF41D02F4F9F7B8EE4F76E7E2DD4AEADE8D.602BB2A7417E1439BB4AE2BDBB2C9402F79C7926%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1f3c831d3ab52520%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoOCq2sXO2W1nSmFio5M2P5uCGd4&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v19.nonxt2.googlevideo.com/videoplayback?id%3D1f3c831d3ab52520%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330282246%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D25A62DF41D02F4F9F7B8EE4F76E7E2DD4AEADE8D.602BB2A7417E1439BB4AE2BDBB2C9402F79C7926%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1f3c831d3ab52520%26offsetms%3D5000%26itag%3Dw160%26sigh%3DoOCq2sXO2W1nSmFio5M2P5uCGd4&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have prepared a brief video of the PC application I used to configure and interact with the Vehicle Information Device--VID.&lt;br /&gt;&lt;br /&gt;The video is without narration--but shows the three main tab/screens--- Main, TANK, TRIP. It also shows the dialog used to send configuration information to the device flash memory.Because the device has a dual port option of USB/Serial and Blue Tooth serial, the VID application can actually connect with the device using either of these two methods. In my video, I show the device attached via the USB serial port- In this configuration, the application can send information to the device. Currently, the Blue Tooth interface is receive only.&lt;br /&gt;&lt;br /&gt;In the mean time, I finally got the axle nut off from the driver side front wheel yesterday--with the help of my step-son Robert.  It seems that no matter what I did alone to feat, pound and turn the axle nut--nothing worked until I was able to devote my full attention to getting the nut hot with the torch and then while rob used a three foot extension 36mm socket/1/2 inch drive, I pounded on the socket and finally it let go.&lt;br /&gt;&lt;br /&gt;Now,, I am working to get the lower ball joint nut off.  Apparently the last person to take this apart stripped the edges from the nut, so now the only option is to try to drill and destroy the nut with a chisel.  I will let you know how this process is going.  Oh BTW, the reason I need to take it apart is to replace the left side CV joint/axle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-409469310354466682?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1f3c831d3ab52520&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/409469310354466682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/08/honda-fuel-economy-vidyag.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/409469310354466682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/409469310354466682'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/08/honda-fuel-economy-vidyag.html' title='Honda Fuel Economy TRIP COMPUTER VID/YAG'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-7071853155409394307</id><published>2009-07-30T05:53:00.000-07:00</published><updated>2009-07-31T09:45:44.396-07:00</updated><title type='text'>Honda Mileage Measurement Device  Firmware testing update</title><content type='html'>Today, the good news is that, after thousands of miles of simulated driving,  the VID's fuel mileage measurement algorithms prove to be very stable.  Indications on both the Blue Tooth and USB serial channels show complete complience with the established beta software testing standards.However, testing has   uncovered one firmware bug.  It is this type of bug that this test was designed to catch.&lt;br /&gt;&lt;br /&gt;From the beginning we've decided not to utilize the floating point libraries available with the development compiler, we have instead gotten around the precision issues associated with using 32 bit unsigned long variables to represent floating point elements by using scaling up (by some factor) any variable that when divided by something else would result in  round off errors.&lt;span style="font-style: italic;"&gt;  To use the floating point libraries too early would needlessly consume memory and processor bandwidth before we determined that we actually needed it.  At some point, we may use the libraries but not before we run out of other options.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At any rate, given the wide latitude of using non signed 32 bit words we (thought) were careful to scale everything enough range to cover all possible uses of the variables.&lt;br /&gt;&lt;br /&gt;For instance, the variable that stores the accumulated pulses for trip and tank is normally large enough to accommodate a trip of about 500,000 miles before that variable overflows. Similarly, the variable that holds the [accumulated gallons used] would handle 100,000 gallons before it overflowed.   The accumatged gallons used variable is pre-scaled by a factor of 10000. i.e. 1 gallons is stored as 10000.&lt;br /&gt;&lt;br /&gt;However, as we found out, while the variables are large enough to accumulate the specified range, certain functions used to convert accumulated pulses to accumulated miles,  can overflow because of additional scaling  used to avoid round off errors in these calculations.&lt;br /&gt;&lt;br /&gt;This problem was noticed only once the trip and tank miles exceeded 1050 miles.   A simple check of the process used to compute these numbers showed that  pre-multiplying the accumulated pulses by 1000 to avoid round off errors, actually resulted  in an overflow condition in a local unsigned long  variable.&lt;br /&gt;&lt;br /&gt;After following the general rule of THREES-- that is finding at least three ways to do something in embedded code, I have finally linked in the floating point libraries that came with this development system.  As I eluded to a few paragraphes ago, falling back on the floating point libreies too early in the process would not have been the right thing to do. However, now that we are almost done-- with a lot of flash memory availabe-- it would be just as wrong not to include them now.&lt;br /&gt;&lt;br /&gt;So.. without having to worry (so much) about the range of variables--- the device outputs the correct MPG to both the BCD display and the devices connected via the serial port(s).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-7071853155409394307?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/7071853155409394307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-measurement-device.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7071853155409394307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7071853155409394307'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-measurement-device.html' title='Honda Mileage Measurement Device  Firmware testing update'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-8650626297380306826</id><published>2009-07-23T12:00:00.000-07:00</published><updated>2009-07-25T12:14:50.782-07:00</updated><title type='text'>Honda Mileage Device VID</title><content type='html'>This morning I finally  implemented the changes required to fully make it possible to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;programmaticlly&lt;/span&gt; alter the fuel injection edge detection levels. I installed a divider resistor on the injector input line. I then wired the output of the CPU reference voltage circuit to pin 7 of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;LM&lt;/span&gt;339 voltage comparator.  Along the way, I had to make a small change in the program. In two places in the code, the program was blocking on [while] loops while waiting for the injector input line to go either high or low. Normally, when the injector comparator levels are set correctly, the resting voltage for the injector is 12 volts. However, if one or the other of the comparator reference voltages do not fall within the proper range, the interrupt line could get stuck in the wrong state--freezing up the program.I, therefore, added code to break out of the while loop after a 2 ms time  delay. So, with that fixed, I was able to alter the comparator voltage level (using the setup program) until the the device started to work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmnT4Ws9QsI/AAAAAAAAAFM/2yWjkcpQi4A/s1600-h/00.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 314px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmnT4Ws9QsI/AAAAAAAAAFM/2yWjkcpQi4A/s320/00.bmp" alt="" id="BLOGGER_PHOTO_ID_5362049796481565378" border="0" /&gt;&lt;/a&gt;In this image, the scaled injector signal is shown in blue. The CPU voltage reference signal is in red. The voltage scale is 2 volts per unit. The time units is 500 microseconds.  Notice, how the voltage reference signal moves to a low value ahead of the falling edge of the scaled injector signal. This shows how the device captures the leading edge of the injector signal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/SmnUCN-T9KI/AAAAAAAAAFU/1LhLGt0deHw/s1600-h/01.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 314px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/SmnUCN-T9KI/AAAAAAAAAFU/1LhLGt0deHw/s320/01.bmp" alt="" id="BLOGGER_PHOTO_ID_5362049965937128610" border="0" /&gt;&lt;/a&gt;This image shows the trailing edge of the injector signal. Notice how the voltage reference has assumed a value of around 2.75 volts before the injector signal begins to turn off--then goes low to wait for the next injector pulse. Note: the voltage reference level is capable of being programmed through the entire range of the injector signal swing. In this example, it was set for about 0 volts and 2.75.&lt;br /&gt;&lt;br /&gt;Obliviously, this simulated injector signal is derived from a resistor and not an inductor. Had this been a real fuel injector, the (falling) leading edge would have taken almost  a millisecond to reach full saturation-- meaning that the falling edge would have followed the characteristic exponent charging curve of an inductor. If this had been a peak-&amp;amp;-hold fuel injector type, it would have reached saturation sooner because it would have been of a lower impedance than saturated types. Once it reached full saturation, the ECU would have then reduced the current flow. The  voltage reading at the  injector would have responded by moving to a higher resting (2/3 point) level. It would have then remained at this higher plateau for the duration of the pulse, before being turned off completely and going to 12 volts.  Obviously,the two step nature of the peak&amp;amp;hold injector presents certain challenges to any measurement circuit.&lt;br /&gt;&lt;br /&gt;Therefore, for this particular measurement circuit to work, I decided that the the CPU controlled reference voltage would need to actually track the injector pulse by setting itself at a relatively low value during injector off time, and then moving to a point higher than the injector plateau level ahead of the injector current reduction commanded by the ECU.&lt;br /&gt;&lt;br /&gt;Therefore by using the provisions of the 18F2520 programmable  internal reference voltage, the user is now able to program the device to track these two levels with two injector comparator constants.  For example, in a typical saturated type fuel injector system, the ECU pulls current through  each injector by forward biasing an open collector power transistor. This collector  is tied to one end of the fuel injector. The other end is ether tied directly to 12 volts, or, to a ballast resistor that is in turned tried to 12 volts.  The measurement point for the VID is usually a point common to the open collector of the ECU transistor.  If one puts a scope on this point, he would see that the transistor is pulling the line down from 12 volts  zero volts each time it fires..&lt;br /&gt;The VID injector input sees this same signal except that due to the input voltage divider it sees a scaled down version of it-i.e  the signal now swings from 3.2 down to 0 volts.&lt;br /&gt;&lt;br /&gt;The internal voltage reference has 16 possible programmable voltage levels. (0-15) The transfer function is therefore&lt;br /&gt;&lt;br /&gt;Vout = (  (4 bit value) / 24) * 5;&lt;br /&gt;&lt;br /&gt;low range = 5 * (0x00vref/24) = 0 volts&lt;br /&gt;&lt;br /&gt;high range = 5 (0x0Fvref/24) = 3.15 volts&lt;br /&gt;&lt;br /&gt;Example 1:&lt;br /&gt;&lt;br /&gt;if the desired unscaled voltage threshold for this case is 6 volts and the scaling factor is 4.4 then&lt;br /&gt;the actual scaled voltage is 1.36 volts. To make this happen with a VCC of 5 volts:&lt;br /&gt;&lt;br /&gt;(4 bit value) =  (1.36vref / 5vcc) * 24&lt;br /&gt;                    = (6.52)&lt;br /&gt;                    = (7)&lt;br /&gt;&lt;br /&gt;We can program a value of 7  into both constants for the device and all will be well for this saturated type device. Reference_L(ow) and Reference_H(high) would be set to 7.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example Two:&lt;br /&gt;&lt;br /&gt;A peak and hold type injector with an open collector type ECU. For the falling edge, 6 volts might also be adequate so we already know that Reference_L would be set to 7.&lt;br /&gt;&lt;br /&gt;The value of the rising edge should be somewhatlower than 12 volts but higher than the highest plateau voltage we could expect to see.  For this example, lets use a value of 10 volts.&lt;br /&gt;&lt;br /&gt;10 volts / 4.4 scaling factor = 2.27 volts&lt;br /&gt;&lt;br /&gt;4 bit binary value =  (5vcc/2.27) * 24&lt;br /&gt;                             =  10.9&lt;br /&gt;ReferenceH   = 11&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmtShy9rq9I/AAAAAAAAAFc/VbGYctN9kJA/s1600-h/55.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 308px; height: 320px;" src="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmtShy9rq9I/AAAAAAAAAFc/VbGYctN9kJA/s320/55.jpg" alt="" id="BLOGGER_PHOTO_ID_5362470521884355538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We have now talked about computing comparator levels. But how does the user program different comparator levels into the device? The answer: By using the Windows interface program, the user can now set the two reference levels at the same time he/she sets the Fuel and Distance Constant.  In the lower left portion of this dialog box are two entry boxes labeled Reference_L and Reference_H.  In this image, they are set for 1 and 10 respectively. &lt;span style="font-size:85%;"&gt;The reader may notice that other two entry boxes labeled ECU_type and Timebase.  For most vehicles, the ECU_Type will be set to 0. In some rare cases, this could be changed to 1.  Setting ECU_type to 1  tells the VID that the vehicle's ECU is pulling the injectors to 12 volts from zero volts, instead of pulling them down to zero volts (from 12 volts) as in most vehicles.Timebase is set to a divider of 1.0. Since the basic time base of the VID is 1 second.. setting time base to 1 sets the VID time base to 1 second. A value of 2 here would set the VID time base to 500 milliseconds.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For information about Fuel and Distance Constants, please refer to an earlier blog entry.&lt;br /&gt;&lt;br /&gt;The VID comes programmed with Reference_L and Reference_H programmed with values corresponding to 6 volts. That should satisfy most of the saturated type fuel injector vehicles. However, if it does not, then the user would experiment with these two constants until the VID readings (at idle) make sense.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-8650626297380306826?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/8650626297380306826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-vid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/8650626297380306826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/8650626297380306826'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-vid.html' title='Honda Mileage Device VID'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmnT4Ws9QsI/AAAAAAAAAFM/2yWjkcpQi4A/s72-c/00.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-6756004008010138913</id><published>2009-07-22T12:02:00.000-07:00</published><updated>2009-07-23T04:47:34.476-07:00</updated><title type='text'>Honda Mileage Device   Regession Testing update.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmdiqDcGcZI/AAAAAAAAAEc/Wdz-rzloWGE/s1600-h/DashBoard.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmdiqDcGcZI/AAAAAAAAAEc/Wdz-rzloWGE/s320/DashBoard.jpg" alt="" id="BLOGGER_PHOTO_ID_5361362356025061778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The image above shows the Simulated Honda Dashboard connected to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VID&lt;/span&gt; as it undergoes bench testing.  To the right is the MPH gauge showing 10 mph. To the left is the engine RPM gauge showing about 1400 rpms. In the center are two pointer style gauges showing 10 MPG for both trip and tank. Below, are the odometer style indicators showing miles traveled and gallons used for both tank and trip totals. Note the reset switches are currently cross wireed--so resetting trip-- reset tank instead.&lt;br /&gt;&lt;br /&gt;Regression testing of the software changes is going well.  The device has run for several days without a repeat of that issue I talked about in the last post. It now seems that the periodic upward variation in injector pulse width and therefore caused by an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;interrupt&lt;/span&gt; synchronization. g issue has been corrected by changing the order of certain instructions in the injector interrupt routine. These changes also resulted in minor code size reduction.&lt;br /&gt;&lt;br /&gt;This  test also demonstrates the system's reaction to having a Blue Tooth module &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;broadcasting&lt;/span&gt; in close &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;proximity&lt;/span&gt; to other &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;circuits&lt;/span&gt; on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VID&lt;/span&gt; board.   &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;However&lt;/span&gt;, the operation of both the Blue Tooth and RS-232 communication channels is flawless at 57600 &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;baud&lt;/span&gt;.   I am currently &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;receiving&lt;/span&gt; a steady stream of data from the device via the serial to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;USB&lt;/span&gt; device on this laptop and the program shown above. While a HP Pocket Pocket PC &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;receives&lt;/span&gt; the same stream via the radio based Blue Tooth interface.  I would have to rate the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;performance&lt;/span&gt; of the overall device (in the environment) as excellent.&lt;br /&gt;&lt;br /&gt;Below are images of the Pocket PC VID interface program.  When this program is involved, it requests the user select a Blue Tooth device from the list of available devices. It then connects and starts displaying data sent from the VID via the Blue Tooth connection. The data is updated each second and sent at about 7000 characters per second-- 57600 baud.&lt;br /&gt;&lt;br /&gt;Note that the steady state GPH is about 1.054 gallons. While the speed is about 11 mph. Leading to a MPG of about 11.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmdnwSKL8ZI/AAAAAAAAAEk/tpQVygXTcTE/s1600-h/CRW_1993.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 320px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmdnwSKL8ZI/AAAAAAAAAEk/tpQVygXTcTE/s320/CRW_1993.jpg" alt="" id="BLOGGER_PHOTO_ID_5361367960613810578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This image shows the Pocket PC VID program main screen.  The main screen shows RPM, MPH, GPH, and MPG.  At the bottom of the main screen is the tab component selector bar. The user interacts with the tab control by simply clicking on the desired tab--- the screen the changes.&lt;br /&gt; Below the tab control is the dialog menu which has three items. Exit, Connect, and Disconnect. Connect and Disconnect refer to the Blue Tooth Device. When the program first starts, the user is required to click on Connect-- this leads to a system screen for Blue Tooth device Selection. The user can click Disconnect or simply click Exit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn0QxcaLI/AAAAAAAAAEs/-zS4ktSNZkU/s1600-h/CRW_1994.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 320px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn0QxcaLI/AAAAAAAAAEs/-zS4ktSNZkU/s320/CRW_1994.jpg" alt="" id="BLOGGER_PHOTO_ID_5361368028961073330" border="0" /&gt;&lt;/a&gt;This image shows the Tank Screen: Tank Miles, Tank Gallons, Tank Seconds, and Tank MPG.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn5wB9_CI/AAAAAAAAAE0/Rk6zszZ-rRc/s1600-h/CRW_1995.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 320px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn5wB9_CI/AAAAAAAAAE0/Rk6zszZ-rRc/s320/CRW_1995.jpg" alt="" id="BLOGGER_PHOTO_ID_5361368123251227682" border="0" /&gt;&lt;/a&gt;This image shows the RAW screen. Raw screen shows the current injector pulse and period width, along with the computed duty cycle percentage.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn-V1MuQI/AAAAAAAAAE8/4lbSeX_QLoY/s1600-h/CRW_1996.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 320px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Smdn-V1MuQI/AAAAAAAAAE8/4lbSeX_QLoY/s320/CRW_1996.jpg" alt="" id="BLOGGER_PHOTO_ID_5361368202117691650" border="0" /&gt;&lt;/a&gt;This image shows the Trip screen. Same items at the Tank Screen. Notice the crowding of&lt;br /&gt;characters bug.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmdoDGGA_xI/AAAAAAAAAFE/W33w8HYRsqw/s1600-h/CRW_1997.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 213px; height: 320px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SmdoDGGA_xI/AAAAAAAAAFE/W33w8HYRsqw/s320/CRW_1997.jpg" alt="" id="BLOGGER_PHOTO_ID_5361368283792604946" border="0" /&gt;&lt;/a&gt;Finally, this images shows the Port setup screen. Blue tooth COM6 and 57600 baud rate are defaults here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-6756004008010138913?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/6756004008010138913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-regession-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/6756004008010138913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/6756004008010138913'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-regession-testing.html' title='Honda Mileage Device   Regession Testing update.'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmdiqDcGcZI/AAAAAAAAAEc/Wdz-rzloWGE/s72-c/DashBoard.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-7712880420670177767</id><published>2009-07-19T07:42:00.000-07:00</published><updated>2009-07-19T12:53:00.390-07:00</updated><title type='text'>VID/YAG update</title><content type='html'>Good Morning.&lt;br /&gt;&lt;br /&gt;I am still testing the changes  I made the other day in regard to the bug I reported. However, I also decided I better get some of code changes entered to support peak&amp;amp;hold type injectors.  Of course this compounds the testing effort. However, it is interesting how fixing a bug leads to other improvements in the program. It is of course, still one step forward, 1 1/2 steps back. most of the time.&lt;br /&gt;&lt;br /&gt;The Windows host configuration dialog now allows the user to select whether the VID responds to negative going or positive going fuel injector pulse information. In most cases, the vehicle's ECU pulls the injector to ground.-- so the VID's default for this, is negative going. In some cases, however, (I understand that some) ECUs  pull the fuel injector up toward battery voltage.&lt;br /&gt;This change, handles that contingency.&lt;br /&gt;&lt;br /&gt;Both the VID and Windows host program also now  allows the user (me) to enter values for the high and low limits for the injector input comparator.  Again, in most cases both values would simply be set to mid-range and forgotten. However, in peak and hold cases, the values entered would be more like  1 and 15.  This effectively,  allows the VID to alter the input switching threshold from about 2  volt (for the negative going edge) up to about ( 10 volts actual) volts for the positive going edge. (Internally, the actual injector voltage level is scaled down into a range of about 1-3.3 volts to comply with CPU voltage reference constrains.) I believe this would allow the device to accurately profile the two step pulse width of the peak and hold type fuel.injectors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/SmM5nGFFrRI/AAAAAAAAAEM/YfQWxUbkhlQ/s1600-h/falling.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 314px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/SmM5nGFFrRI/AAAAAAAAAEM/YfQWxUbkhlQ/s320/falling.bmp" alt="" id="BLOGGER_PHOTO_ID_5360191325310659858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In this shot, the blue trace represents the CPU controlled reference voltage--ranging from about 3  up to  about 10 volts. The blue line illustrates the falling edge of the injector input--ranging from 12 down to about 0 volts. Notice how the blue trace changes from low state to high state following the transition of the injector trace.   I don't have a trace of what an actual peak&amp;amp;hold injector would look like (in real life). However, an educated guess is, that once the ECU pulls the injector line to hard ground, unless the comparator reference voltage is immediately switched to a much higher level, the output pulse width (seen by the CPU) will be truncated when the ECU relaxes its hold on the injector--and not, when the injector is switched off. Therefore, in my application, the reference voltage moves up to above the "hold level" of the injector, and waits for the ECU to switch the injector--fully OFF...i.e. returning to 12 volts. In this fashion, the entire pulse width of the peak and hold injector is captured.&lt;br /&gt;&lt;br /&gt;The design of the injector front end is trying to make it possible for the card to be adapted to almost any vehicle situation. I plan to make it very easy to change resistor and capacitor values in the field. This should--- make it flexible enough for most technical types to get this thing working with a minimum of fuss.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-7712880420670177767?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/7712880420670177767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vidyag-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7712880420670177767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7712880420670177767'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vidyag-update.html' title='VID/YAG update'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0nGx-XOZ_Yc/SmM5nGFFrRI/AAAAAAAAAEM/YfQWxUbkhlQ/s72-c/falling.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-3720151304478834451</id><published>2009-07-17T19:02:00.001-07:00</published><updated>2009-07-18T04:49:28.133-07:00</updated><title type='text'>Honda Mileage Device  YAG VID</title><content type='html'>Just a quick note to say that I think changes I made last night to the VID firmware correct a slight problem I've been seeing for a few weeks now.  As some might surmise, I have a vehicle simulator hooked up the device on the bench. I run this thing day and night-- accumulating hundreds of virtual miles each day. When the simulator is in the static mode, I expect to see the trip/tank averages remain constant PERIOD. However, I have recently noticed that the engine pulse width (that should remain constant) sometimes jumps about 50 percent several times per minute.  This leads to a lowered  average MPG. I checked and rechecked the incoming pulse width and could find nothing wrong. I then checked and rechecked the code--- also found nothing wrong.&lt;br /&gt;&lt;br /&gt;Last night, it finally dawned on me that due to the way I was averaging pulse width readings in the injector interrupt thread, the main thread was sometimes disabling the injector interrupt before it could complete the last  measurement cycle. So now by checking the completion status of the injector interrupt thread before halting the injector interrupt, the problem "seems" to be cured. While this appears to be the cure, I have now entered a new phase of regression testing to make certain that this change does not cause something else to break.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-3720151304478834451?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/3720151304478834451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-yag-vid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3720151304478834451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3720151304478834451'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-device-yag-vid.html' title='Honda Mileage Device  YAG VID'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-4209536154897866220</id><published>2009-07-16T08:06:00.000-07:00</published><updated>2009-07-19T12:47:19.471-07:00</updated><title type='text'>Honda Mileage Meter Update July 16, 2009</title><content type='html'>&lt;span style="font-style: italic;"&gt;Today is the 40th anniversary of the launch of Apollo 11 from Pad 39A at the Kennedy Space Center in Florida. I remember that day well. I was 17 at the time. I was working this particular summer at the local hospital as a combination grounds keeper / painter.   On this day, I commandeered one unused patient room on the third floor. I then setup my RCA cassette tape recorder on one of the bedside tables-- just barely in audio range of the black/white TV set hanging over head. I closed the door, and hang out up there until the Apollo 11 crew made it into  parking orbit..  Of course, some people heard the TV and before I knew it-- the room had a number of interested people standing around. I still have that recording---somewhere?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmHHXJR47EI/AAAAAAAAAEE/3les49oCrD0/s1600-h/2520_BTb.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmHHXJR47EI/AAAAAAAAAEE/3les49oCrD0/s320/2520_BTb.png" alt="" id="BLOGGER_PHOTO_ID_5359784231989472322" border="0" /&gt;&lt;/a&gt;Today I want to introduce the new version of the VID circuit board.  I also want to explain in detail, how it works.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pictured to the left is the latest [&lt;a href="http://www.cadsoftusa.com/"&gt;http://www.cadsoftusa.com/&lt;/a&gt;] schematic drawing of what I am currently calling the &lt;span style="font-weight: bold;"&gt;VID short for----Vehicle Information Device&lt;/span&gt;. It could also be called &lt;span style="font-weight: bold;"&gt;YAM&lt;/span&gt;-- for Yet-Another-Meter.&lt;br /&gt;&lt;br /&gt;The first thing the reader will notice about this design is my choice of an Microchip 18F2520 micro controller. Indeed, some might be tempted to question why I did not use a smaller processor for this "simple application."  When I started this project, I used a 16F648A.  The first generation VID actually worked quite well running at 4 Mhz and constrained by the 4 K limit on program memory.&lt;br /&gt;&lt;br /&gt;However, all things being equal, I decided to move up to the 18 series for this application---mostly to focus on getting things done- rather than worrying about running out of memory at any second. In this application, the 18F2520, runs on its own internal 8 MHz clock.&lt;br /&gt;&lt;br /&gt;Looking at the circuit diagram the reader will  notice that I am using four  connectors to tie the VID to the world.  There is one connector called X4 for power/ground/and vehicle signals.  X1 is the in circuit programming connector (ICP) used for in-circuit programming--allowing the user to eventually modify the VID firmware. X3 is the BCD connector is used to connect the VID to the display card. Finally,  there is another four pin connector called X2. X2 is wired as a dedicated  RS-232 port.&lt;br /&gt;&lt;br /&gt;X4 is a four pin connector used to bring vehicle power, vehicle ground, vehicle speed sensor, and vehicle fuel injector signals on to the board.  The battery power pin is connected directly to the input of a LM7805 (IC3) 5 volt regulator. The ground pin is wired to the center pin of IC3-- this is the official ground point on this card.&lt;br /&gt;&lt;br /&gt;The vehicle speed sensor (VSS) pin is connected through  R6 series resister before connecting to (non-inverting) IC1A pin 5 of a LM339 linear comparator.  Pin 6 of IC1A is tied to resistors R2 and R12-- which together, form a voltage divider.  R2/R12 provide approximate 50 percent of the vehicle battery voltage level as a voltage reference for the VSS half of the circuit. The output of IC1A, being an open collector type,  is pulled up to VDD/VCC via R8.   This output line is then connected to pin 11 of the IC1.  Pin 11 of the CPU is the input to the  Timer1/Counter1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It can not be emphasized enough-- the series resistors on both the VSS and INJ line serve to limit the possible current that could be drawn should one or both of these lines go to ground.  Nevertheless, each of these lines should also feature an in-line fuse (positioned as close to the vehicle connection point as possible) of about 250 milliamp rating to protect things---just in case.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The (user) selected vehicle fuel injector  (INJ) is connected to the VID via a voltage divider formed from resistors R5 and R3. Together, they drop the maximum voltage seen by the inverting input of IC1B to about 3.2 volts.   The reason, the injector signal level is reduced is because this version of the VID features what I will call dynamic injector level sampling.   This means that I use the internally programmable voltage reference supplied by the CPU to provide a reference voltage for the external comparator.. Since,this reference voltage is only capable of being driven to some percentage of VDD/VCC, I ether had to amplify this signal, or scale down the other.  Therefore,  I  scaled down the injector input level to match this level.  Dynamic injector level sampling allows the user to configure the VID  to adapt to almost any vehicle fuel injector condition. For example, with vehicles with saturated type fuel injectors, the injector reference level can be set and forgotten, peak and hold types often require two different levels per pulse cycle. This circuit there, allows the CPU the option of managing the reference level on the fly. It can should,  therefore, handle most P&amp;amp;H type systems.   The reader will note, the divided signal injector input is also connected to pin 2 of the CPU. This (feature) will allow the CPU to read the analog level of the signal.  Thus, the operating battery voltage of the vehicle can also be ascertained and sent to the user. (I might note: this system is capable of reading up to a total of 4 analog voltages in this fashion.)  Having this analog input also allows the processor to potentially decide for itself what reference voltage levels to issue to the external comparator. The output from IC1B is pulled up to VCC though R7, and also connected to the CPU at pin 21. In this application, pin 21 is configured as a high priority interrupt. Each time, this pin changes logic state, the CPU generates an interrupt. This interrupt is used to either start or stop the 62.5- 125 microsecond clock. In this fashion, the device determines the pulse and period width of the fuel injector input  within less than 250 microseconds of precision. Using this measurement granularity, and taking into account other factors,  the device should  be able to measure fuel usage to within a few percent of actual.&lt;br /&gt;&lt;br /&gt;The other components on the VID are used to connect the VID with either the BCD display board, or to a host computer via either, the serial interface connector, or the on-board Blue Tooth module--by radio.&lt;br /&gt;&lt;br /&gt;IC2 provides the necessary interface between logic level serial signals provided by the CPU and the NRZ signals required by RS-232.  IC2 is a Maxim 232.  The 232 uses 4 polarized capacitors to produce the necessary voltage levels required by RS-232 interface&lt;br /&gt;&lt;br /&gt;The two-wire interface to the display board uses IC4C and IC4D. IC4 is a CMOS compatible AND gates of the 7400 logic family.  In this application, each of the four gates are simply used as buffers.  In addition to BCD_CLOCK and BCD_DATA pins, X3 also provides connections for three remote tactile switches.  The three switches are normally located on the display card. X3 also provides power and ground to the display card.&lt;br /&gt;&lt;br /&gt;The final element of this version of the VID is the [&lt;a href="http://www.connectblue.com/products/bluetooth-products/oem-modules/oemspa310/"&gt; http://www.connectblue.com/products/bluetooth-products/oem-modules/oemspa310/&lt;/a&gt;] Blue Tooth module. Shown at the bottom of this schematic.  In this configuration, the Blue Tooth module merely copies all outbound serial traffic and relays it to any compatible Blue Tooth device within range.  The VID Connect Blue module is configured as a server. Other Blue Tooth devices will connect as clients.  The default baud rate for the VID is set at 57600.  (The Blue Tooth module will currently function at only 57600 baud.)  The reader may also notice a jumper labeled: SJ1. This is left open unless the IC2 is removed from the board. At that time, the Blue Tooth device can be configured to receive commands and traffic from the Blue Tooth client. IC4A and IC4B and gates are used to interface the 3.3 volt [Connect Blue] module with 5 volt logic circuits.&lt;br /&gt;&lt;br /&gt;The final version of the VID will feature full-duplex communications via the Blue Tooth interface. But at the present time, the VID Blue Tooth communications is outgoing only.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Sl9jkZt4GPI/AAAAAAAAAD8/d0R5ezjPY0k/s1600-h/boardlayout1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Sl9jkZt4GPI/AAAAAAAAAD8/d0R5ezjPY0k/s320/boardlayout1.png" alt="" id="BLOGGER_PHOTO_ID_5359111558623926514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Final note: The latest VID design features provisions for adding filter capacitors and protection diodes to the  two signal input lines.  While, in my case, the signal lines were clean, I wanted to add these to the design in case others did not fair as well.&lt;br /&gt;&lt;br /&gt;One possible PCB layout is shown above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-4209536154897866220?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/4209536154897866220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-meter-update-july-16-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/4209536154897866220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/4209536154897866220'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/honda-mileage-meter-update-july-16-2009.html' title='Honda Mileage Meter Update July 16, 2009'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0nGx-XOZ_Yc/SmHHXJR47EI/AAAAAAAAAEE/3les49oCrD0/s72-c/2520_BTb.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-3047368428557792422</id><published>2009-07-13T08:51:00.000-07:00</published><updated>2009-07-17T19:01:49.028-07:00</updated><title type='text'>Honda Gas Mileage Device:July 13 2009</title><content type='html'>I am writing this from the local MacDonalds  in northern NY state.   Today, I volunteered to take my wife's 2005 Accord in for its 70K mile checkup. So, I have some time to kill before 2 pm. &lt;span style="font-style: italic;"&gt;Actually, I had plenty of time to kill over 2 pm as well.  I have to say, the folks at the Honda dealer have a good reputation around town. However, they may need to "stick to the knitting" as they say when it comes to making sure their customers don't get the idea that they (the dealer) thinks their time is worth nothing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I made some progress during the weekend toward the (more) final VID design.  As I said last night, I finally recognized the need to extend VID to support folks with peak-and-hold injector systems.  And, while I think that many people who drive higher performance cars using P&amp;amp;H wouldn't care one way or the other--- some might.   I,therefore, decided the small cost of putting this capability into the design now, out weighted other factors.  And, so now the design allows the device to be configured to meet the requirements of over 85% of pre-1996 vehicle users.&lt;br /&gt;&lt;br /&gt;The other important development was the recent addition of wireless output capability for the VID.  One of the things that has bothered me from the start of this project was the prospect of having all of those unsightly wires running around the vehicle dashboard.   For, it seemed that no matter in which direction the hard wired design went,  there would always be a need to have something (in view) with wires sticking out of it..  Now--maybe certain hacker types like having wires running around-- but I get the impression that this would be frowned by most their friends. Besides that, all of those wires and connectors are one of the great negative  factors in overall system reliability.  I think that when the device is first installed it might be necessary to use the supplied RS-232 hard wired interface to configure it. But once that is done,  the laptop should never again need to be connected directly to the device.&lt;br /&gt;&lt;br /&gt;Taking all this into account ,  I first roughed out the basic wired design. Once that was done, I decided to try to obviate the need to  have the VID circuit card/box exposed to general view.  The only viable mechanism for getting information from the box to the user is by using some sort of radio based interface.  I have looked at general purpose radio modems. However, they all seem to operate in the licensed region of the spectrum-- and therefore  would  require ultimate FCC approval. Since, the idea here is not to send these signals thousands of feet--but only about 10 feet.  Blue Tooth serial is designed as a cable replacement medium-- so that is what I decided to focus on, for this application.&lt;br /&gt;&lt;br /&gt;At any rate, at first I toyed with the idea to transmit raw injector pulse/period information from under the hood to a box  located in the passenger compartment containing the VID/CPU. But doing this (alone) would not completely address the issue of wires inside the car.  So,I decided   the first revision  of the wireless system would  involve  wiring the signals to the VID, and then sending processed information from the VID processor box to one of three types of  display devices. The first two of these options were easy choices:(both to build and use) Blue Tooth equipped laptops , and certain  BT enabled PDAs.  The third Blue Tooth option, involves actually developing a custom Blue Tooth enabled display card. Equipping the display card with a wireless interface and LCD display would allow it almost autonomous--- and  battery powered.  In fact, doing this would allow it to be  so thin and tiny, it could be mounted anywhere.  Since all   wiring would be hidden under the dashboard (along with the VID card itself), the display box would be so compact, it could be Velcro-ed almost anywhere.&lt;br /&gt;&lt;br /&gt;So.. here is the plan:   I will first concentrate on building a reliable VID box. A box that handles virtually all types of fuel injectors, and vehicles.  This particular version of the VID will have no built-in display. Instead it will transmit all acquired vehicle data  to  any compatible Blue Tooth  device, or to a laptop, via the wired serial interface. Since there is very little extra cost involved-- the VID will also feature a two-wire display interface. In the event someone wants wires, this interface would make it easy to connect a hardwired display directly to the VID.&lt;br /&gt;&lt;br /&gt;Currently, the data transmitted by the VID is sent in binary form--c structures. Future modifications would allow it to send data to devices that have no knowledge of this, or any format.  To this end, the device could stream straight text or XML formatted text to programs like Hyper-Terminal etc.&lt;br /&gt;&lt;br /&gt;This morning, I roughed out the interface for PDA device I already own. A device that  has not gotten a lot of use during the past few years.  With the help of Visual Studio 2008, I created the rudiments of a program that allows me to connect the PocketPC2003 to the VID. After the connection is made, it receives a continues stream of engine data from the VID. I can easily see this device placed in a cradle on the dashboard---and connected once the engine is started.   The user would not necessary have to watch this device constantly--but could refer to it occasionally.  Using the HP device's stylus, the user could also easily manipulate the VID. For example, it could reset the trip/tank totals-- or just set it to display trip data as he/she wishes. To me this is the least expensive route toward the goal of getting a handle on fuel mileage and economy. Of course all of the existing Windows vehicle monitoring software works equally well with a Blue Tooth dongle installed on the laptop.&lt;br /&gt;&lt;br /&gt;Beyond this, the next processor based project will involve the development of a BLUE TOOTH enabled LCD/BCD display unit for a more unified approach to the overall problem.  However, the nice thing about having an easily programmed display platform like the POCKET-PC PDA, is that it can be easily adapted to display any information that VID is eventually configured to acquire. Nevertheless, other mileage meters have LCD/LED displays--so this one will too. The only difference is--this one will be without wires.&lt;br /&gt;&lt;br /&gt;More technical details of the Blue Tooth interface will be forthcoming. I have to get a little test time on the design before I release the information.  Within a few days I will release information on the type of Blue Tooth module I selected for this project--and the issues I faced getting it to work.  At this time the device works in non-duplex mode. Meaning that the data flows out of the VID only.  Soon, I hope to have complete two way communications between the Blue Tooth Client ,and the Blue Tooth Server (located on the VID) working.  At this time, I can say the baud rate is quite acceptable--i.e. 57600.&lt;br /&gt;&lt;br /&gt;I believe we are approaching feature freeze on this thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-3047368428557792422?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/3047368428557792422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-13-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3047368428557792422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3047368428557792422'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-13-2009.html' title='Honda Gas Mileage Device:July 13 2009'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-9145170701279385292</id><published>2009-07-12T08:39:00.001-07:00</published><updated>2009-07-14T06:37:10.642-07:00</updated><title type='text'>Honda Mileage:VID Update July 12</title><content type='html'>Since my last post (over a week ago) I've been busy with a number of things .  But, even while I rebuilt our front steps--- and other duties, I still found a time to do some thinking about modifying the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VID&lt;/span&gt; design to handle both "saturated" and "peak and hold" type injectors.&lt;br /&gt;&lt;br /&gt;This morning I completed changes to the prototype board addressing this---and other issues.  While, I am currently testing the changes, I have hopes that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;VID&lt;/span&gt; can now be user programmed to handle any type of fuel injector, or fuel injector system.&lt;br /&gt;&lt;br /&gt;As the readers may recall, I originally configured my  YAM "yet another (meter)" to handle only saturated type fuel injectors.  After researching the issue, I discovered that other meters/devices offered for this purpose, also do not claim to be able to handle anything but saturated type fuel injectors.&lt;br /&gt;&lt;br /&gt;So, that got me thinking: I surmised that in order to handle the saturated type, the input threshold could simply be statically assigned to one voltage---and that would be good enough. (and experience proves this to be correct) However, because of the way peak-and-hold fuel injectors work, assigning a unitary voltage to work with saturated types almost certainly would not work  (correctly) for peak and hold types.&lt;br /&gt;&lt;br /&gt;So, I took a look at the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;specification&lt;/span&gt; for the PIC 18F2520 CPU and found the device could be configured to provide a (16 step) variable reference voltage output at one of its analog pins.&lt;br /&gt;BTW--the 18F2520 also has two internal linear comparators--but they do not offer the kind of flexibly i needed--so, I use my own.)  However, since the range of this voltage reference is limited to a maximum of about 3.3 volts (using a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Vcc&lt;/span&gt; of 5 volts) --- the injector voltage would also have to be scaled down to match this voltage range.&lt;br /&gt;&lt;br /&gt;By installing the appropriate voltage divider on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;INJ&lt;/span&gt; input, and rewiring the comparator to accept the reference voltage provided by the CPU, the program can now adjust the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;INJ&lt;/span&gt; reference voltage on the fly.  With a maximum of 14.5 (high alternator output) voltage at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;INJ&lt;/span&gt; input, the scaled output  reads about 3.3 volts. The  processor is now able set &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;the comparator&lt;/span&gt; threshold to any value the range of 0 to 3.3 volts. With the 4.4 gain factor this represents a 0 to 14.5 volt adjustment range.&lt;br /&gt;&lt;br /&gt;What does this mean?  It means that unlike when I used fixed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;zener&lt;/span&gt; diode to provide a constant/stable reference voltage,  the user can now set one threshold for the fuel injector current rise time and anther for the fall time.  This is most important for the peak and hold type fuel injectors. Because P&amp;amp;H types employ a two step fall time. Obviously, if we did not adjust the threshold to accommodate the two-step-nature of S&amp;amp;H injectors, we might  get a very rosy (but inaccurate)  impression of the amount of fuel they were allowing to pass.. However, in this way, we will be able to detect exactly the correct pulse  for both types of fuel injectors.&lt;br /&gt;&lt;br /&gt;I realize the wiring in most cars is designed to allow the ECU to drive one end of each fuel injector to ground while the other is held at battery voltage.  I also understand that some cars tie one end of the peak-and-hold type injector to ground, while using the ECU to drive the other end to battery voltage.  In either case, the (newly redesigned) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VID&lt;/span&gt; will accommodate either voltage polarity.  In  rare cases, certain jumpers would need to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;reconfigure&lt;/span&gt;/switched. As an added benefit, the new design allows the CPU to monitor the analog voltage level on the INJ input, this means that it is (theoretically) capable of automatically setting the appropriate threshold levels itself.&lt;br /&gt;&lt;br /&gt;In summary, the changes I made to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;VID&lt;/span&gt; design this morning allow the user (via the host software) to configure the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;INJ&lt;/span&gt; thresholds levels to match (almost) any requirement. For instance, if the vehicle uses situated fuel injectors, the user might simply enter the number &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;representing&lt;/span&gt; 6 volts for both values--- and be done. (Better, yet, the device would simply default to 6 volts.) If, on the other hand, the user needed to configure for peak-hold type fuel injector system, he/she might decide to enter 3 volts for the injector charge time value and 10 volts for the injector off  time value. In any case, this design allows the user the flexibility to just "make it work."&lt;br /&gt;&lt;br /&gt;I mentioned other changes: In this REV, I have added other features to make it possible to do on the fly &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;communications&lt;/span&gt; with laptops and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;PDAs&lt;/span&gt; without having to hook up either a serial or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;USB&lt;/span&gt; cable to the VID.   I will be releasing more information on this development as my testing continues.  But suffice to say,  the final design of the device will provide both wired and wireless &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;communication&lt;/span&gt; options.  For those who still have their handy HP-Pocket PC with Blue tooth, they may finally have found something they are good for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-9145170701279385292?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/9145170701279385292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-update-july-12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/9145170701279385292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/9145170701279385292'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-update-july-12.html' title='Honda Mileage:VID Update July 12'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-652728559760990624</id><published>2009-07-03T10:46:00.000-07:00</published><updated>2009-07-19T13:05:06.590-07:00</updated><title type='text'>Honda Mileage: VID constants</title><content type='html'>&lt;span style="font-weight: bold;"&gt;This provides a little background on the calibration constants used by the VID&lt;br /&gt;&lt;br /&gt;Fc-----Fuel Constant&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As we have already discussed, Fuel Injectors are sized according to how many cc (cubic centimeters) of fuel they spray per minute of full-on operation. For example, the fuel injectors I use, emit 240 cc per minute  of operation. What does that mean to people who think  about gasoline in terms of gallons:&lt;br /&gt;&lt;br /&gt;240 cc/min is the number used by for just one cylinder. For the total amount of gasoline consumed by the engine we multiply this by the number of cylinders.  Again, in my case, that number is 240 * 4 cylinders = 960 cc/min/engine.&lt;br /&gt;&lt;br /&gt;960 cc/min/engine * 60 min/hour  = 57600 cc/hour/engine&lt;br /&gt;&lt;br /&gt;1 gallon of  any liquid contains: 3785,51 cubic centimeters&lt;br /&gt;&lt;br /&gt;Therfore: 57600 cc/hour/engine  *  3785 gallon/cc = 15.217 gallons / hour / engine&lt;br /&gt;&lt;br /&gt;To eliminate the decimal point, the number the VID uses internally is :&lt;br /&gt;15.217 * 100 = 1522&lt;br /&gt;&lt;br /&gt;Therefore Fc = 1522&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dc ----Distance Constant&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Typically, vehicle Speed Sensors (VSS) change logic state (counts) between 4000 and 10000 times per  mile (5280 feet) of travel. My vehicle happens to send about 4000 counts/min  (PPS).&lt;br /&gt;&lt;br /&gt;The VID, however, prefers the number be in another form:&lt;br /&gt;&lt;br /&gt;So... to create that constant the program  first divides the &lt;br /&gt;&lt;br /&gt;PPM by 5280  = 4000/5280 = 0 .757575. &lt;br /&gt;&lt;br /&gt;Fps_mph =   88 fps / 60 mph = 1.46666&lt;br /&gt;&lt;br /&gt;Then, it multiplies  Fps_mph * 0.757575     = 1.111&lt;br /&gt;&lt;br /&gt;Therefore : Dc = 1111 = (1.111 * 1000)&lt;br /&gt;&lt;br /&gt;Dc = 1111&lt;br /&gt;&lt;br /&gt;The three numbers required by the VID  are :&lt;br /&gt;&lt;br /&gt;1. Pulses per mile PPS&lt;br /&gt;&lt;br /&gt;2. Fuel Injector  cc/ minute&lt;br /&gt;&lt;br /&gt;3. Number of Cylinders&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-652728559760990624?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/652728559760990624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/math-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/652728559760990624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/652728559760990624'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/math-review.html' title='Honda Mileage: VID constants'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-7180656697191758450</id><published>2009-07-03T05:26:00.001-07:00</published><updated>2009-07-18T05:13:11.459-07:00</updated><title type='text'>Honda Mileage:  VID installation</title><content type='html'>In the last post, I talked about VID calibration. Perhaps,  what I should have talked about was how I installed the VID device in a pre-1996 automobile in the first place.  Since I started with nothing but a voltmeter and oscilloscope, I may have had a slight advantage over someone simply trying to hook this thing up to some anonymous type of automobile. However, anyone that is capable of building this device (from the schematics)  is more than capable of figuring out how to hook it up.&lt;br /&gt;&lt;br /&gt;At any rate, I did not want to take any chances with the ECM wiring in this car.  I therefore, stayed completely away from that part of the electrical system.  Instead, I found the fuel injector ballast resistor block under the hood--this indicated to me that I had a &lt;span style="font-weight: bold;"&gt;saturated&lt;/span&gt; type injector system. In this case, the ballast resistor block is located on the driver's side of the engine--mounted near other electrical components  near power steering reservoir. (I talked about the two types of fuel injectors in my past post.)&lt;br /&gt;&lt;br /&gt;I nicked into one of the black wires connecting the ballast block with one of the fuel injectors. ( I think it was #1 cylinder--but it does not really matter.) I connected  this with another wire of sufficient size and specification to ensure its wear resistance integrity as it passed through the fender wall and across the rubber door mounting, and into the passenger compartment. (&lt;span style="font-style: italic;"&gt;I found no easy way to pass the wire through the firewall&lt;/span&gt;).  The fact that this wire passes across metal door parts almost demands that a small fuse be installed in series near the tap in point--i.e. a short to ground here could affect the output transistor in the ECM. &lt;br /&gt;&lt;br /&gt;As  for the VSS:   I am lucky to have a vehicle with a conveniently  located cruise control box (CCB). In my case, the CCB is located under the dash directly below the steering wheel.   I first removed the CCB from the connector. Then, while referring to the electrical schematic of the vehicle, I located the VSS wire. (In this case, this is a orange  wire coming from the speed sensor.)&lt;br /&gt;&lt;br /&gt;The next thing was to find a suitable source of power and ground for the VID.  The CBB connector also provided a convenient place to make these connections as well. For  me, this setup was ideal, because I wanted to be able to control the power to the VID by the same switch that controls power to the cruise control.   So I tapped into  three  wires   near the CBB connector with a  type of connector that allowed me slip the connector over the target wire, and close them with a pair of pliers. Doing this, laces the target wire, creating  a reliable, but 'semi-easily removable   attachment point for the wire attached to the other half of the connector. I then installed three 18 guage wires into the three CCB attachment point connectors. The three wires from the CBB jointed the wire coming from the fuel injector connection under the hood. I then brought all four wires out from below the dash and into to a 9 pin molex style  power connector. I finished connecting the wires to the VID by using the mate to the 9 pin molex connector.  When I was finished, I could remove the VID from the vehicle by detaching one end of the molex connector.  Since for development purposes, I used a vehicle simulator, this connector arrangement made it convenient to attach the VID to either system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;At any rate, this is what I did. What someone else  would  do depends on his/her particular vehicle.&lt;/span&gt; Obviously&lt;span style="font-style: italic;"&gt;, the &lt;/span&gt;vehicle&lt;span style="font-style: italic;"&gt; must be fuel injected. And, i&lt;/span&gt;&lt;span style="font-style: italic;"&gt;f the fuel injector system turns out to be a saturated type,  this device design would most likely work--as is.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;NOTE: Most &lt;/span&gt;ECMs&lt;span style="font-style: italic;"&gt; will have connection points for both the VSS input and the fuel injector outputs. However, it might be better to NOT disturb the &lt;/span&gt;ECM&lt;span style="font-style: italic;"&gt;, if that can be avoided.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In all cases, I would recommend  that 1/4 amp &lt;/span&gt;inline&lt;span style="font-style: italic;"&gt; fuses be installed in series with both signal lines (VSS &amp;amp; INJ) The  &lt;/span&gt;VBATT&lt;span style="font-style: italic;"&gt; line could also be fused. However, in most cases, as long as the power source is already fused, this may be unnecessary. In my case, the fuse that controls the cruise control box also protects for the &lt;/span&gt;VID&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-7180656697191758450?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/7180656697191758450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-installation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7180656697191758450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7180656697191758450'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-installation.html' title='Honda Mileage:  VID installation'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-7263440725012076812</id><published>2009-07-02T13:12:00.000-07:00</published><updated>2009-07-18T05:19:24.327-07:00</updated><title type='text'>Honda Mileage:VID Calibration</title><content type='html'>Currently, the only way to enter calibration information into the VID is via the Windows based VID monitor program.  To calibrate the VID, the user of this device would first have to obtain the specification on the type of fuel injector his/her vehicle uses.  Somewhere, there is a number for every type of fuel injector made that specifies the number of cubic centimeters of fuel the device emits while being held fully on for one minute at the vehicle's specified fuel pressure. In my case, that number is 240 cc/min. The program also requires the user specify the number of cylinders the engine uses.Note:&lt;span style="font-style: italic;"&gt;The program will automatically convert this number to gallons per hour for the engine as a whole, i.e. about 15.20 gallons/hour for my Honda Accord.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Because the VID was designed to expect a certain type of measurable injector pulse width, it is therefore assured to work with so-called "saturate and hold" type fuel injectors.  Further investigation is needed before I can say for sure how the device will function with "peak and hold" type fuel injectors.&lt;/span&gt; See NOTES.&lt;br /&gt;&lt;br /&gt;The other important constant needed by the VID is the number of counts the Vehicle Speed Sensor (VSS) sends for each mile the vehicle is driven. In my case, the number turned out to be about 4000 counts/mile. However, once the VID is installed, the user can easily determine the correct number for his/her type of vehicle by simply driving it for one measured mile and using the host PC software to note the number of actual counts the device received.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Sk3paSDWV1I/AAAAAAAAADc/cwy51p8Zkc8/s1600-h/CRW_1991.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 297px;" src="http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Sk3paSDWV1I/AAAAAAAAADc/cwy51p8Zkc8/s320/CRW_1991.jpg" alt="" id="BLOGGER_PHOTO_ID_5354192169745143634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The picture above shows the calibration dialog box of the VID monitor program. After the program establishes a connection with the VID, the user invokes this dialog box. The user then enters the pulses per mile for distance and cc/minute for fuel, number of cylinders and pushes the corresponding button to convert the values. Then the user pushes send button.  The user can then push "get" to confirm the VIM values.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once the user knows what these two numbers are, it is a simple matter to start the program and connect to the VID.  Then, open up the calibration dialog box in the Windows program and enter the three numbers.  Pushing the send button transmits the numbers down to the VID where they are stored in flash memory.Once the unit is powered off and on, it should be ready to make use of the new constants.&lt;br /&gt;&lt;br /&gt;And that is about all there is to calibrating the VID.  For additional precision, the user should now drive about 10 miles and check the amount of error in the distance traveled.  He should recompute the pulses per mile count and enter that number. In this fashion, the device will eventually know the exact numbers for this vehicle. If after driving the vehicle for some distance and computing MPG by hand, the user determines that the MPG calculation is off by some percentage, he can then recalibrate the fuel constant accordingly using the empirical data--by adding to, or deducting  the percent error to/from from the cc/min constant.&lt;br /&gt;&lt;br /&gt;The final version of the device will allow the user to enter these calibration constants using the UP/DOWN/ACTION switches and the BCD display.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NOTES:&lt;br /&gt;&lt;br /&gt;Peak and Hold verses Saturated:&lt;br /&gt;Peak and hold type injectors usually are of lower coil resistance than saturated-- around 2 ohms. P&amp;amp;H type injectors require the ECM to first turn on the injector using one current level, and then switch to another current level to maintain the injector  on-state.  This implies that the energy required to energize the fuel injector coil is higher than that required to keep it turned on. The , the maker is therefore able to reduce power dissipation  across the fuel injector while improving performance and dynamic response time by overcoming the inductive reactance of the coil with higher current.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saturated types usually feature higher coil resistance than P&amp;amp;H.  The ECM turns them on for the full duration of the fuel injector pulse. In my case, the coil resistance is about 4 ohms with a series ballast resister of about 7 ohmes resistance.  &lt;span style="font-style: italic;"&gt;The inductive reactance (X sub L) of the coil, dictates the rise/fall time that can be expected of the fuel injector. &lt;/span&gt;My measurements shows that the typical rise time is around 500-1000 microseconds for this particular coil. The only outstanding question  I had was exactly when the fuel starts to flow during the transition from fully off to fully on.  Currently, the VID currently assumes that some fuel starts to flow once the voltage across coil reaches the 1/3 point. This is the reason  the comparator reference voltage  is set to 9.1 volts.  Of course,  the value of the zener diode can be changed very easily. In any case, any error generated would be swamped by other factors--i.e. the user simply adjusting the device until his/her reading agreed with empirical measurements.&lt;br /&gt;&lt;br /&gt;Fuel Injection Resources:&lt;br /&gt;&lt;br /&gt;http://www.robietherobot.com/Storm/fuelinjectorguide.htm&lt;br /&gt;&lt;br /&gt;http://users.erols.com/srweiss/tableifc.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-7263440725012076812?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/7263440725012076812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-calibration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7263440725012076812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/7263440725012076812'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/vid-calibration.html' title='Honda Mileage:VID Calibration'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0nGx-XOZ_Yc/Sk3paSDWV1I/AAAAAAAAADc/cwy51p8Zkc8/s72-c/CRW_1991.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-617665750962428627</id><published>2009-07-02T07:07:00.000-07:00</published><updated>2009-07-04T07:39:35.807-07:00</updated><title type='text'>Why the future electric vehicle economy depends on fission.</title><content type='html'>During the past few days I have made several posts containing technical material concerning one of my "pet" projects aimed at energy/environment &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;conservation&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Today, I plan to express some of my opinion/feelings regarding the future of the nation's dependence on fossil fuel and how it seems that we are in such a no-win situation with regard to our reluctance to forgo the very thing that will eventually alter our ability to have any &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;future&lt;/span&gt; options in this regard.&lt;br /&gt;&lt;br /&gt;To paraphrase John F. Kennedy in a speech to the UN on another subject: "&lt;span style="font-style: italic;"&gt;either we put an end to nuclear weapons, or they will put an end to us&lt;/span&gt;."  As some will recall, at the time, there was a very real chance that this statement would be proven correct.  Fortunately, the world got through this era without the worst happening.   Now, over 50 years later, we stand at another even more perilous crossroad.&lt;br /&gt;&lt;br /&gt;Ironically, back then, nuclear power seemingly threatened our existence, today if allowed to flourish, nuclear power may well be our only salvation.  Indeed, the people of this country seem almost unable to overcome their fear of what COULD happen, to open their eyes to what WILL happen.  As everyone knows by now, the forces that shaped our world into a place capable of supporting life as we know it, also locked away millions (if not billions) of years worth of a typically benign element, we call carbon.&lt;br /&gt;&lt;br /&gt;It has been only about 200 years since mankind discovered the "wonders" of removing this carbon in the form of coal or &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;liquid&lt;/span&gt; oil in large quantities. But in that "cosmic nanosecond" of time, man has already reached that point where half of the carbon sequestered by nature is now in our environment. No one could have known the consequence of being so greedy. But,&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;nevertheless&lt;/span&gt;&lt;/span&gt;, now those &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;consequences&lt;/span&gt;&lt;/span&gt; are becoming real.&lt;br /&gt;&lt;br /&gt;So, as a people what are we going to do?  Do we continue on this course without abatement? Or, do we alter that course just in the nick of time to avoid world wide &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;displacement&lt;/span&gt;, death and destruction.  Either way, I assure you, the earth will continue on.  The earth is not in any real danger. It has seen it all before. In its' brief (6 billion) year history, the earth has stood witness to many many similar upheavals--and as we can see, it has endured.&lt;br /&gt;&lt;br /&gt;There are those out there right now who preach that what we are seeing is merely the end or beginning of a cyclical temperature change. Nothing to be alarmed about--because it has happened before. And, taken in that context, they are right.  I guess the only thing we differ upon is what happens to mankind, and the world we have all grown to love?  Unlike the earth, mankind has not be around long enough to see the end or beginning of any geological cycle.  So--it begs the question: do we really want to find out the hard way, what happens while the earth sorts out these issues over a period longer than man can ever imagine?&lt;br /&gt;&lt;br /&gt;I think we know about one  group among us that really accepts the end of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;civilization&lt;/span&gt;&lt;/span&gt; as we know it. But then there are those of use who haven't read that chapter. Perhaps, we would like to go on living as before. Then, of course there are those who want to go living as before, but don't want to give up anything to achieve that goal.  These are the folks who get in their cars every day and drive to the local gas station and expect the gas to be there for them. They are not worried about tomorrow--because today "is hard enough."  Hard or not, as long as they can afford gasoline and home heating oil, they choose not to worry---too much.&lt;br /&gt;&lt;br /&gt;In the past few years, that is up until about October of 2008, we watched people flock to the showrooms to buy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SUVs&lt;/span&gt;&lt;/span&gt;.  Ironically, they say they wanted these vehicle because they someone said to be safer than &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;conventional&lt;/span&gt;&lt;/span&gt; sedans. And, as it turns out, when pitted against one of these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SUVs&lt;/span&gt;&lt;/span&gt; the "poor fools" who continued to drive their sedans died at a higher rate than those "smart folks" who proudly drove, to prove what they could purchase.  However, when pitted against just the road, people also died in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SUVs&lt;/span&gt;&lt;/span&gt; because of their less than excellent stability at any speed. It also does not help that some people just drive SUV more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;aggressively&lt;/span&gt;&lt;/span&gt; because they are "SAFER"-- you see.&lt;br /&gt;&lt;br /&gt;I sometimes wonder exactly what odds SUV owners give themselves for being a victim of an automobile accident if they continued to drive smaller more fuel efficient automobiles.  The fact of the matter is that while they are more massive-- and there is some safely in size--- SUV were popular to the BIG-3 because they were cheaper to produce. Why were they cheaper? Because they did not require compliance with the same safety standards as the sedans and compact cars.&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Nevertheless&lt;/span&gt;&lt;/span&gt;, the BIG-3 made it almost a requirement of life to own one of these monsters.&lt;br /&gt;&lt;br /&gt;Now, as we all know, that changed last fall when gasoline prices topped $4.00 per gallon. All of a sudden, the new car lots where awash with unsold &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SUVs&lt;/span&gt;&lt;/span&gt;.    As a result, GM and one  competitor are now coming out of bankruptcy as a result of both their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;miscalculation&lt;/span&gt;,&lt;/span&gt; and the government's charity.&lt;br /&gt;&lt;br /&gt;I remember watching a show last summer about the "FUTURE of automobiles," on PBS. The "car talk" brothers were at the Detroit auto show &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;interviewing&lt;/span&gt;&lt;/span&gt; a certain person from GM. When asked why GM insisted on making 500 hp automobiles--- in this day and age, the women laughed and said "well---this is what the people want?".   To which, one of them said under his breath--but want about what they will want tomorrow? And, can you respond that fast?&lt;br /&gt;&lt;br /&gt;During the winter and spring of 2009, gasoline prices dropped back to below $2 per gallon. And I detected some  return to old ways of thinking--but not obliviously  not enough to save the BIG-2. Now, with gasoline prices at almost $3 per gallon, Ford has recorded better sales numbers than Toyota for the first time in a while. This is based on the apparent fact that Ford has a few fuel efficiency models and people want to buy American. I must say, that I am not myself ready to leave Honda behind, but if I ever decide to buy American, it would be a Ford.&lt;br /&gt;&lt;br /&gt;So, now that the smile has finally been erased from the faces of those smug populous BIG-3 executives where do we go from here?Certainly that question is far to complicated for most people like me to answer. Because sometimes the most obvious answer usually is way to simplistic. But I guess if i had to guess. I would have to say that the efficient non-carbon dependent production of electricity is at least part of the solution.  Notice, I said non-carbon dependent.  That means that electricity produced by coal, and oil should be out of the equation. That leaves us with Hydro,  Solar, Wind, and Nuclear as our only viable long term energy sources.  &lt;span style="font-style: italic;"&gt;Oh, I almost forgot, one huge source of new energy, is in fact simply to stop wasting the energy we are already producing. This is why I think it is important to make even modest &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;improvements&lt;/span&gt; in the efficiency of the automobiles we already have on the road. i.e. my efforts to make it possible to know precisely how much fuel a car is using in real-time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of the four, Solar and Wind are now being addressed. But like hydro, they are at best only capable of filling a small percentage of our needs.&lt;span style="font-style: italic;"&gt;  Also, many smart people point out that solar is good only when the sun shines.&lt;/span&gt; That leaves the only 80 plus percent on-line source as nuclear. Naturally, just like everything else, nuclear power has its own unique set of problems. Moreover, unlike the long term problems caused by the others, its drawbacks can lead to major immediate &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;consequences&lt;/span&gt;&lt;/span&gt; if not handed correctly.  The other major problem with nuclear power is in the long term disposal of the spent fuel.  &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;These important issues &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;notwithstanding&lt;/span&gt;&lt;/span&gt;, I for one believe that nuclear power, is our only real option. Coupled with the other three non-carbon sources of power, it will provide enough power to see this country through this period of transition. It will power our homes, our factories, and, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;indirectly&lt;/span&gt;, our automobiles.&lt;br /&gt;&lt;br /&gt;Speaking again of automobiles: The trend in automobiles these days is toward plug-in hybrids. Hopefully, within a few years, battery technology will obviate the need for the gasoline assist engine and they will become all electric. That is good except:  where is that electricity going to come from?  Certainly, we can not pay the cost of this transition, plus continue to burn coal to power these electric cars.  I believe we must therefore push wind and solar to the hilt.  But, we must also license and build many more "inherently safe canned design" nuclear power plants. We must also solve the long term waste problem. Perhaps, one way  would be to find some way to use the residual  heat from this waste to power &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;applications&lt;/span&gt;&lt;/span&gt; requiring lower grade heat.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Unfortunately&lt;/span&gt;&lt;/span&gt;, the era of not-in-my-backyard (NIMBY) may need to be pushed aside to keep the wishes of a few from detailing the dreams of the many.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-617665750962428627?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/617665750962428627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-2-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/617665750962428627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/617665750962428627'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-2-2009.html' title='Why the future electric vehicle economy depends on fission.'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-3475389762290926878</id><published>2009-07-01T16:14:00.001-07:00</published><updated>2009-07-18T05:21:11.809-07:00</updated><title type='text'>Honda Mileage: July 1 2009 Update 3</title><content type='html'>Here, I have uploaded the schematic for the custom 2-wire BCD seven segment card.  The reader will notice that this card uses up to four Microchip PIC 16F627/648a CPUs for interface and seven segment decoding function.  Originally, I used these processors because they were all I had in stock.In other words,  I had no seven segment latch/decoders.  However, as it turned out using $2 CPUs actually lowered the cost and complexity of this card. It also allows me to customize the decoding function enough to invert the display output--just in case I want to try to read the display off from the windshield while keeping my eyes on the road. The primary drawback to this is actually seeing the displays in bright sun light.&lt;br /&gt;&lt;br /&gt;The reader might also notice that this drawing shows the board with its own 5 volt regulator. A prudent design would isolate the power requirements for this card from the VID--given the relatively high current requirements of these seven segment displays. In my prototype, I used u the 5 volts from the VID card.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SkvuAdZzjcI/AAAAAAAAACA/TVoTzt0WqCY/s1600-h/BCD_SCHEMATIC.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 258px; height: 320px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SkvuAdZzjcI/AAAAAAAAACA/TVoTzt0WqCY/s320/BCD_SCHEMATIC.png" alt="" id="BLOGGER_PHOTO_ID_5353634273720241602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Unlike the VID card, this (3*4 inch) card is  densely populated. It is, however, quite simple to understand.  From the schematic the reader can see that I used a total of four PIC 16F627 class CPU devices to drive three common cathode seven segment LED devices and discrete LEDs.   In this application, each processor's interrupts are connected  to allow them to all process all  transitions on the BCD_DATA and BCD_CLOCK input lines.&lt;br /&gt;&lt;br /&gt;In essence, they are all looking for something specifically addressed to them.  To configure their address, Each processor has three input lines tied to either logic high or low.  For example IC1 has all of its address inputs tied to ground. It, therefore,  processes all messages sent over the BCD_DATA and BCD_CLOCK lines, but looks for messages  addressed to device zero. In a like fashion the other devices listen for their unique address and respond accordingly.&lt;br /&gt;&lt;br /&gt;IC1- IC3 contain the exact same program. (IC4 is the voltage regulator.)IC6 contains a program that responds to address 3 but instead of driving a seven segment display it drives the decimal points on the other seven segment LED devices, or one of several status LEDs.&lt;br /&gt;&lt;br /&gt;As in the case of the VID, the code for these chips will also be available to anyone that requests it via email.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Preliminary parts list for BCD Display Card&lt;br /&gt;&lt;br /&gt;C1       0.1uf          C5/2.5     ceramic capacitor &lt;br /&gt;C2       .1uf           C5/2.5      ceramic capacitor&lt;br /&gt;C3       .1uf           C5/2.5      ceramic capacitor&lt;br /&gt;C5       .1uf           C5/2.5      ceramic capacitor&lt;br /&gt;C6       0.1uf          C5/2.5    ceramic capacitor  &lt;br /&gt;C8        10 uf        polarized capacitor 25 volts&lt;br /&gt;D1       PCB LED different colors&lt;br /&gt;D2      "&lt;br /&gt;D3      "&lt;br /&gt;D4      "&lt;br /&gt;D5      "&lt;br /&gt;D6      "&lt;br /&gt;IC1      PIC16F627P     PIC16F627P        DIL18      microchip      1&lt;br /&gt;IC2      PIC16F627P     PIC16F627P        DIL18      microchip      1&lt;br /&gt;IC3      PIC16F627P     PIC16F627P        DIL18      microchip      1&lt;br /&gt;IC4      7805T          7805T             TO220H     linear         1&lt;br /&gt;IC6      PIC16F627P     PIC16F627P        DIL18      microchip      1&lt;br /&gt;R1       2K             1/8 watt carbon&lt;br /&gt;R2       33K          1/8 watt carbon&lt;br /&gt;R3       33K          1/8 watt carbon&lt;br /&gt;R4       33K          1/8 watt carbon&lt;br /&gt;R5       33K          1/8 watt carbon&lt;br /&gt;R6       33K          1/8 watt carbon&lt;br /&gt;R7       33k           1/8 watt carbon&lt;br /&gt;RN1                     8R-N              DIL16&lt;br /&gt;RN2                     8R-N              DIL16&lt;br /&gt;RN4                     8R-N              DIL16&lt;br /&gt;RN6                     8R-N              DIL16&lt;br /&gt;S1                      10-XX             B3F-10XX   switch-omron   1&lt;br /&gt;S2                      10-XX             B3F-10XX   switch-omron   1&lt;br /&gt;S3                      10-XX             B3F-10XX   switch-omron   1&lt;br /&gt;U$2      1INCHLED       1INCHLED          LQ5        stanleyled     1&lt;br /&gt;U$3      1INCHLED       1INCHLED          LQ5        stanleyled     1&lt;br /&gt;U$4      1INCHLED       1INCHLED          LQ5        stanleyled     1&lt;br /&gt;X2       22-23-2081     22-23-2081        22-23-2081 con-molex      1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is one possible PCB layout for this circuit. Here I am using 1 inch high LED display units from Stanley Electric.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/SkvuGF_7rzI/AAAAAAAAACI/gA4mn1PwHbo/s1600-h/BCD_BOARD.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 156px; height: 129px;" src="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/SkvuGF_7rzI/AAAAAAAAACI/gA4mn1PwHbo/s320/BCD_BOARD.png" alt="" id="BLOGGER_PHOTO_ID_5353634370516922162" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-3475389762290926878?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/3475389762290926878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-1-2009-update-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3475389762290926878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/3475389762290926878'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/july-1-2009-update-3.html' title='Honda Mileage: July 1 2009 Update 3'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0nGx-XOZ_Yc/SkvuAdZzjcI/AAAAAAAAACA/TVoTzt0WqCY/s72-c/BCD_SCHEMATIC.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-681790690151132448</id><published>2009-07-01T09:54:00.000-07:00</published><updated>2009-07-14T06:35:26.263-07:00</updated><title type='text'>Honda Mileage:Update 2 July 1 2009 (VID Schematic)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/SkuV0N47gKI/AAAAAAAAABg/r9yoaT6xjjk/s1600-h/VIDImage.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/SkuV0N47gKI/AAAAAAAAABg/r9yoaT6xjjk/s320/VIDImage.png" alt="" id="BLOGGER_PHOTO_ID_5353537306374144162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In the last post, I said I would release the schematic of the devices I am working on.&lt;br /&gt;&lt;br /&gt;I am now releasing a very preliminary schematic drawing (Eagle CAD) of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VID&lt;/span&gt; card featured in yesterday's post. The only variation is the physical location of the tactile UP/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DN&lt;/span&gt;/ACTION switches. This drawing  shows the resister pull-ups for the switches only. In fact, the switches are (currently) located on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VID&lt;/span&gt; card.&lt;br /&gt;&lt;br /&gt;As the reader can see,  the circuit is really quite simple and straight forward. It consists of a total of three &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ICs&lt;/span&gt; and one 5 volt regulator.  There are a three &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;molex&lt;/span&gt; style header, and one DB-9, connectors on this card.  The three &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;molex&lt;/span&gt; connectors are designated as X3,X1, and X4. The DB-9 is shown as X2.&lt;br /&gt;&lt;br /&gt;Starting with the power/signal connector: X4.   Connector X4 brings vehicle power from a switched connection point near the cruise control card (CC) to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VID&lt;/span&gt;.  The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;VID&lt;/span&gt; vehicle ground connection is also obtained at the CC card, as is, the vehicle speed sensor input. The other connection point on X4 is the fuel injector input (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;INJ&lt;/span&gt;). In this application, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;INJ&lt;/span&gt; signal is obtained from tapping one of the fuel injector signals near a block ballast resister device located under the hood, and delivered to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VID&lt;/span&gt; card via X4.  The decision to tap the the ballast resistor  was made for purposes of expedience. In most &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;applications&lt;/span&gt;, the best place to obtain this signal is at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ECM&lt;/span&gt; connector--- located below the front seat passenger's feet.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Electrically&lt;/span&gt;, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;VID&lt;/span&gt; input circuit will respond to the signal from either location. Also tapping at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ECM&lt;/span&gt; would eliminate the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;postive&lt;/span&gt; 4 volt offset that is seen when tapping at the ballast resister.&lt;br /&gt;&lt;br /&gt;From connector X4, vehicle power is converted to logic +5 volts by the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;LM&lt;/span&gt;7805 regulator called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;IC&lt;/span&gt;3.  Logic ground is also established at pin 2 of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;IC&lt;/span&gt;3 by way of connector X4.  On the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;VID&lt;/span&gt;, both engine signals are each buffered by two 1K resisters.  In any PCB layout, the input resistors should be placed in such a way so as to limit the chance that any short circuit condition could affect the integrity of either signal. I would recommend that one resister (for each signal) be placed at the connector, while the other as close to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;IC&lt;/span&gt;3 as possible. My tests have shown that 2K in addition the the input impedance of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;IC&lt;/span&gt;3 works well.  Also, by splitting the resistance here, it would be possible to add filter capacitance-- if that became necessary.&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;VSS&lt;/span&gt; signal is fed to one the high impedance non-inverting inputs of the quad comparator: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;IC&lt;/span&gt;1. While, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;INJ&lt;/span&gt; signal is fed to another  inverting input of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;IC&lt;/span&gt;1.  The reference voltage for both comparators is established by dropping vehicle power down to about 9.1 volts using a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;zener&lt;/span&gt; diode and a 100 ohm resistor.  The outputs from each of the comparators are pulled up to logic &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;VCC&lt;/span&gt; by 3.3 k resistors. In this way both 12 volt signals are converted to proper logic 5 volt levels. When the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;INJ&lt;/span&gt; signal is inverted by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;IC&lt;/span&gt;1, both output levels are active high at the CPU inputs.  The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;schmitt&lt;/span&gt; trigger inputs of the comparator also define sharper rise and fall times for the CPU edge sensitive interrupt inputs.&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;VSS&lt;/span&gt; output from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;IC&lt;/span&gt;1 is connected to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;PIC's&lt;/span&gt; timer1/counter1 via pin 11 on the 18F2520. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;INJ&lt;/span&gt; output from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;IC&lt;/span&gt;1 is connected to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;PIC's&lt;/span&gt;  via pin 21 of the CPU. The processor monitors the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;INJ&lt;/span&gt; signal  using one of its high priority interrupt inputs. Using it to constantly compute the ratio of pulse on-time to the total period duration. In this application, PIC Timer 1 is used as a counter. Using Timer 1, the program merely reads the count total each second, reset it, and and allows the count to build up again. For each second of operation,  the processor tabulates  both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;INJ&lt;/span&gt; duty cycle and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;VSS&lt;/span&gt; counts  The results are placed in one of four internal data structures after it finishes computing RPM, MPH, distance traveled, and gallons used, and the like.&lt;br /&gt;&lt;br /&gt;The other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;IC&lt;/span&gt; on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;VID&lt;/span&gt; card is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;IC&lt;/span&gt;2. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;IC&lt;/span&gt;2 is a Maxim 232 RS-232 interface chip.  Four, 1.0 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;uf&lt;/span&gt; capacitors allow &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;IC&lt;/span&gt;2 to provide the necessary negative going signal voltage to make the output signals comply with the RS-232 standard.  The RS-232 signals can connected to the host computer via connector X2. NOTE: the published picture of the prototype card features a standard PCB DB-9 style connector, the proposed PCB might opt for a header style connector instead.&lt;br /&gt;&lt;br /&gt;Upon, start up, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;VID&lt;/span&gt; is programed each second (by default) to  compute the necessary data elements and send the contents of data structure #1 to the host through the serial port as message #1.  If a proper request is initiated from the host software, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;VID&lt;/span&gt; can also send one of the other (requested) data structures as messages 2,3, or 4 before resuming default operation.&lt;br /&gt;&lt;br /&gt;Data Message #1 consists of the following data items: MPH, RPM, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;GPH&lt;/span&gt;(gallons per hour) and preliminary MPG. Message #2 sends accumulated tank information: gallons used, distance traveled. Message #3 sends raw data on injector pulse on time and period width information.&lt;br /&gt;Message #4 sends accumulated trip information. (the same as message 2--but for trip)&lt;br /&gt;&lt;br /&gt;Future versions could also provide additional messages. Such as the status of the analog inputs on the PIC18F2520.  With the extended memory capability of this chip, there is almost no limit to the vehicle data acquisition capability of this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_50"&gt;architecture&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In addition to the serial port, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;VID&lt;/span&gt; provides a custom two-wire output format via connector X3 to either a LCD or LED display card.  In its' current state, the two-wire interface connects to a LED based card. Connector X3 also provides connection points for  the status of three tactile switches for UP/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;DN&lt;/span&gt; and ACTION to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;VID&lt;/span&gt;. While the pull-up resistors are located on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;VID&lt;/span&gt;, the switches will be located on the display card.&lt;br /&gt;&lt;br /&gt;The two wire interface consists of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;BCD&lt;/span&gt;_DATA line and a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;BCD&lt;/span&gt;_CLOCK line.  This two wire interface is very similar to well known I2C style interface, except that it does not provide for read back capability. The two-wire interface in this application sends one eight bit byte for each digit used on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;BCD&lt;/span&gt; card.  Embedded in each byte is a four bit address and four bits of actual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;BCD&lt;/span&gt; data. Using this format, allows the device to send up to 16 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;BCD&lt;/span&gt; digits of data to any properly equipped card.  In the proposed application, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;VID&lt;/span&gt; would send 3-4 digits of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;BCD&lt;/span&gt; data along with one byte of status and decimal point information.  Please refer to the writeup on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;BCD&lt;/span&gt; card for more information on the two-wire format used here.&lt;br /&gt;&lt;br /&gt;Connector X1 provides for In Circuit Programming capability for the PIC 18F2520.&lt;br /&gt;&lt;br /&gt;Below is a preliminary &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;BOM&lt;/span&gt; or parts list for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;VID&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;9.1V 1/2 watt &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;zener&lt;/span&gt; diode&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C1       1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;uf&lt;/span&gt;  20 v polarized capacitor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C2       1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_67"&gt;uf&lt;/span&gt;  20 v polarized capacitor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C3       1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;uf&lt;/span&gt;  20 v polarized capacitor&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C4       1 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_69"&gt;uf&lt;/span&gt;  20 v  polarized capacitor&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C5       0.1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_70"&gt;uf&lt;/span&gt; ceramic capacitor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C6       0.1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_71"&gt;uf&lt;/span&gt; ceramic capacitor&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C7       0.1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_72"&gt;uf&lt;/span&gt; ceramic capacitor&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C8       10 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_73"&gt;uf&lt;/span&gt; 25 v polarized capacitor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;C10      0.1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_74"&gt;uf&lt;/span&gt; ceramic capacitor&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;U$1 PIC18F2520 28 pin &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_75"&gt;cpu&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_76"&gt;IC&lt;/span&gt;1      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_77"&gt;LM&lt;/span&gt;339N Quad comparator  14 pin dip&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_78"&gt;IC&lt;/span&gt;2      MAX232  RS-232 interface chip 16 pin dip&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_79"&gt;IC&lt;/span&gt;3      7805T 5 voltage regulator&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R1       3.3K 1/8 watt resistor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R2       2.2K 1/8 watt resistor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R3       1K  1/8 watt resistor&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R4       100 Ohms 1/2 watt resister&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R5       1K 1/8 watt resister&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R6       1K  1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R7       2.2K  1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R8       3.3K 1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R9       2.2K 1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R10      15K 1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;R11      2.2K1/8 watt resister&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;U$1      PIC 18F2520 28 pin dip&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;X1       22-23-2041 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_80"&gt;molex&lt;/span&gt; header&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;X2       22-23-2041 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_81"&gt;molex&lt;/span&gt; header&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;X3       22-23-2081 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_82"&gt;molex&lt;/span&gt; header&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;X4       22-23-2041 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_83"&gt;molex&lt;/span&gt; header&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skvtg3ZIg3I/AAAAAAAAAB4/p7hmR3xCDeY/s1600-h/VID_BOARD.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 264px;" src="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skvtg3ZIg3I/AAAAAAAAAB4/p7hmR3xCDeY/s320/VID_BOARD.png" alt="" id="BLOGGER_PHOTO_ID_5353633730940928882" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;The image above represents one possible PCB layout for this card.As I said before, the code for the PIC 18F2520 can be obtained by contacting me via email.&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span style="font-size:78%;"&gt;KEYWORD:&lt;span style="font-style: italic;"&gt; Mileage, Fuel, Trip Computers&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span style="font-size:78%;"&gt;References:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;span style="font-size:78%;"&gt;wiki:&lt;span style="font-style: italic;"&gt; http//ecomodder.com/wiki/index.php/MPGunio&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-681790690151132448?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/681790690151132448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/update-2-july-1-2009-vid-schematic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/681790690151132448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/681790690151132448'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/update-2-july-1-2009-vid-schematic.html' title='Honda Mileage:Update 2 July 1 2009 (VID Schematic)'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0nGx-XOZ_Yc/SkuV0N47gKI/AAAAAAAAABg/r9yoaT6xjjk/s72-c/VIDImage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-4444182866684309325</id><published>2009-07-01T07:05:00.001-07:00</published><updated>2009-07-14T06:35:41.727-07:00</updated><title type='text'>Honda Mileage:Update July 1, 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skvl3n7aeII/AAAAAAAAABw/J88yeTaBWek/s1600-h/Overall.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 194px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skvl3n7aeII/AAAAAAAAABw/J88yeTaBWek/s320/Overall.png" alt="" id="BLOGGER_PHOTO_ID_5353625325833713794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After posting yesterday, I decided to create an overview drawing of the VID connection schema.&lt;br /&gt;The vehicle's connection points are to the left. the VID and the Display box are to the left. The Vehicle Speed Sensor (VSS) connects near the cruise control box (located under dashboard). The VID box receives the same power and ground as does the cruise control box. The device can therefore be restarted by cycling the power to the cruise control via the switches on the steering wheel.  The injector pulse is connected (in this case) at the junction of the injector ballast resistor and the wire running to one of the fuel injectors in this engine. The display box is connected via a four conductor cable that currently terminates on the VID board as a 8 pin dip header/socket. The serial port connection to the USB and the laptop connects at the DB-9.&lt;br /&gt;&lt;br /&gt;I have tentatively decided to soon release all electrical schematics for these devices. The idea being to encourage other interested folks to build such devices to aid in saving energy resources over the long run.  And, if there turns out to be some interest in using the existing PIC18F firmware, I will make that available in the form of pre-programmed chips with the right to trade up to take advantage of periodic updates. Included with the chips will be open-source copies of the Windows based interface programs. As time goes on, and as the firmware for the various modules becomes more stable, I &lt;span style="font-weight: bold;"&gt;may&lt;/span&gt; release the PIC code as open source.  For now, however,  I will for a small handling charge (in addition to the cost of the chip itself), provide the pre-programmed PIC 18F series chip(s) to anyone who asks for them via email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-4444182866684309325?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/4444182866684309325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/after-posting-yesterday-i-decided-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/4444182866684309325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/4444182866684309325'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/07/after-posting-yesterday-i-decided-to.html' title='Honda Mileage:Update July 1, 2009'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skvl3n7aeII/AAAAAAAAABw/J88yeTaBWek/s72-c/Overall.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-1958008245056581206</id><published>2009-06-30T09:59:00.000-07:00</published><updated>2009-07-14T06:35:57.672-07:00</updated><title type='text'>Honda Mileage:Vehicle Information Device(Introduction)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skp5ptvq8II/AAAAAAAAAAw/23VJZBRKIBA/s1600-h/CRW_1984.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 229px;" src="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skp5ptvq8II/AAAAAAAAAAw/23VJZBRKIBA/s320/CRW_1984.jpg" alt="" id="BLOGGER_PHOTO_ID_5353224864644395138" border="0" /&gt;&lt;/a&gt;The other day, I started to discuss my project to construct my own Vehicle Information Unit (trip computer). Today, I will share a few photographs of both that device, and the NET application I use to debug and calibrate it. Because of the grainy nature of these images, I plan to replace these photographs very soon with better shots of each subject.&lt;br /&gt;&lt;br /&gt;This image (to the left) shows the layout of the prototype CPU card. The CPU (located along the top edge of this card) is a Microchip 18F2520. The two other chip components on the card are a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;LM&lt;/span&gt;&lt;/span&gt;339 comparator, and a Maxim 232 RS-232 converter chip. Shown at the bottom edge is the RS-232 DB-9 connector. The RS-232 interface allows the device to be connected to a laptop via a serial &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;USB&lt;/span&gt;&lt;/span&gt; device.&lt;br /&gt;&lt;br /&gt;The device works by constantly monitoring the voltage across one of the transistors controlling the  fuel injector for engine cylinder one. (see image below) Each time the transistor fires the injector, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VID&lt;/span&gt;&lt;/span&gt; measures the exact amount of time, that particular fuel injector remains on relative to the off time. For each second of operation the device determines an average on/off (Duty Cycle) time for that cylinder.  Because the device knows the amount of fuel the fuel injector would emit if it was held on for one full minute, the CPU can  extrapolate the amount of fuel the engine consumed that past second by multiplying the value for this cylinder by four. &lt;span style="font-style: italic;"&gt;In my case, each fuel injector emits 240 cc per minute-- the engine there would therefore use about 15.5 gallons per hour. (I am glad the injector ON time is measured in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;milliseconds&lt;/span&gt;&lt;/span&gt;.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/Skp58cyCeZI/AAAAAAAAABA/wexaOZbdl8s/s1600-h/CRW_1824.CRW.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 133px;" src="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/Skp58cyCeZI/AAAAAAAAABA/wexaOZbdl8s/s320/CRW_1824.CRW.jpg" alt="" id="BLOGGER_PHOTO_ID_5353225186508437906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This image shows what a typical injector pulse looks like hear the injector side of the resister ballast resister in the Honda Accord. Notice that, the ECU controller is not able to being this point to ground. Since this is where I am tapping in, I need to level shift this signal to ground using a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;LM&lt;/span&gt;&lt;/span&gt;339 comparator. The approximate on time shown here is about 2 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;milliseconds&lt;/span&gt;&lt;/span&gt;. The comparators' &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;schmitt&lt;/span&gt;&lt;/span&gt; trigger inputs are also useful for squaring up the signal for the CPU.&lt;br /&gt;&lt;br /&gt;While all that is going on, the device is also counting the number of Vehicle Speed Sensor pulses (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;VSS&lt;/span&gt;&lt;/span&gt;) it is receiving from the sensor attached to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;transmission&lt;/span&gt;&lt;/span&gt;. Again, the device knows how many pulses the vehicle produces each mile--so it can easily compute the number of feet (or miles) the vehicle has traveled during the past second.&lt;br /&gt;&lt;br /&gt;So--knowing the distanced traveled this past second, combined with the amount of gasoline consumed allows the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;VID&lt;/span&gt;&lt;/span&gt; to compute MPG (miles per gallon), M.P.H., G.P.H. (gallons per hour) and so on. The device has flash memory built in--so all accumulated numbers are saved to flash, allowing the device to be used across engine starts as a real trip computer.&lt;br /&gt;&lt;br /&gt;The device can (if requested) send a complete packet of data to the host PC. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VID&lt;/span&gt;&lt;/span&gt; always sends two characters of data to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;BCD&lt;/span&gt;&lt;/span&gt; display. When the new display is complete,, the device will have four digits plus status &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;LEDs&lt;/span&gt;&lt;/span&gt;--each digit will be at least 1 inch tall. &lt;span style="font-style: italic;"&gt;And they will be the same color--the two shown were drawn from my sparsely populated parts box. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following four images show the four main screens of the Windows C# program used with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;VID&lt;/span&gt; for debug and data logging. This program is used in the lab and the vehicle to verify software changes made to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;VID's&lt;/span&gt; firmware. It can also be used to actively record all received data for later playback. These simulated drives are sometimes useful for spotting spurious events that are not noticed as the vehicle is being driven.  Future versions of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;VID&lt;/span&gt; software will allow use of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;PDA&lt;/span&gt; platforms for this purpose.  In most cases, there is no need to constantly watch these parameters. As the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;VID&lt;/span&gt; stores the fuel/distance state to flash every time it either times out or notices the vehicle about to come to a stop.  The prototype &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;BCD&lt;/span&gt; display is displayed here showing the TANK miles per gallon of 18.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8MQAyXzI/AAAAAAAAACk/fLX5yDCyi7I/s1600-h/CRW_1986.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8MQAyXzI/AAAAAAAAACk/fLX5yDCyi7I/s320/CRW_1986.jpg" alt="" id="BLOGGER_PHOTO_ID_5353931344423575346" border="0" /&gt;&lt;/a&gt;This image shows the default screen. The default screen displays &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;preprocessed&lt;/span&gt; data from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;VID&lt;/span&gt; such as MPH, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;GPH&lt;/span&gt;, RPM and all of the error and status code transmitted by the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;VID&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8nMJO4BI/AAAAAAAAAC8/uHEM27DL2lY/s1600-h/CRW_1990.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8nMJO4BI/AAAAAAAAAC8/uHEM27DL2lY/s320/CRW_1990.jpg" alt="" id="BLOGGER_PHOTO_ID_5353931807241723922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This image shows the TANK Status screen. Here the program displays accumulated tank data such as distance traveled in both total number of pulses and Miles. This screen  also shows accumulated fuel used since tank reset, and the number of running seconds on this tank. See trip screen.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_4kMPjCqJ3GA/Skz-1hld9EI/AAAAAAAABso/oWidwVsc-Z4/s1600-h/CRW_1989.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_4kMPjCqJ3GA/Skz-1hld9EI/AAAAAAAABso/oWidwVsc-Z4/s320/CRW_1989.jpg" alt="" id="BLOGGER_PHOTO_ID_5353934252538721346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This screen shows the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;VID&lt;/span&gt; output for the current Fuel Injector pulse and period width.&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8YOQl0JI/AAAAAAAAACs/wJCLwV1p0jo/s1600-h/CRW_1988.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_0nGx-XOZ_Yc/Skz8YOQl0JI/AAAAAAAAACs/wJCLwV1p0jo/s320/CRW_1988.jpg" alt="" id="BLOGGER_PHOTO_ID_5353931550111420562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Similar to the Tank screen, this screen shows the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;accumlated&lt;/span&gt; data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;assocated&lt;/span&gt; with this TRIP.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The image  above shows the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;VID&lt;/span&gt;&lt;/span&gt; with a 2 digit version of the two-wire &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;BCD&lt;/span&gt;&lt;/span&gt; card. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;VID&lt;/span&gt;&lt;/span&gt; card has just been removed from the vehicle and is still displaying the tank mileage figure of 28 MPG. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;BCD&lt;/span&gt;&lt;/span&gt; card (&lt;span style="font-style: italic;"&gt;currently&lt;/span&gt;)uses two 16F series processors to ( interface with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;VID&lt;/span&gt;&lt;/span&gt; via a custom two-wire interface and seven segment decoders. Because I am using 16F devices I also have the capability to mirror the segment display output--allowing it to be positioned on the dashboard and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;LED's&lt;/span&gt;&lt;/span&gt; reflected on to the windshield--- a HUD effect--if you will.&lt;br /&gt;&lt;br /&gt;Located in the lower right corner of the board are a series of tactile switches. One switch is called UP, one called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;DN&lt;/span&gt;&lt;/span&gt;(down) and the other is labeled "action."It is by using these switches the user can select a parameter for display, or reset either tank or trip numbers. If the user selects either Trip or Tank MPG and then pushes the Action button, the all data for that entry will be cleared to zero. The user can clear the Tank, Trip data--or both. Later the Action switch will allow the user to change calibration constants for fuel and distance without using the laptop. Currently that is all a function of the NET C# programs.&lt;br /&gt;&lt;br /&gt;Finally, in this picture, I show the Visual Studio 2008 produced C# program (with some open-source graphics support--see below) that provides me with a simulated Honda Accord Dashboard.  The the Speedometer is the large item to the left, the tachometer to the right. In the center are two gauges showing the trip and tank miles per gallon figures. The display also shows simulated odometers for tank and trip distance and gallons used. &lt;span style="font-style: italic;"&gt;Note: the 2 digit 2 wire &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;BCD&lt;/span&gt;&lt;/span&gt; display now reads 25 MPG. This is because while being attached to the vehicle simulator in my lab, it has not been treated as well  as when attached to the actual vehicle. The vehicle simulator sends pulses to the device showing about 10 MPH while sending fuel information showing about one gallon per hour,i.e 10 MPG.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NOTE: &lt;span style="font-style: italic;"&gt;As stated before, the Windows interface is not normally required while out driving. However,  it is useful sometimes for logging vehicle driving habits etc. Using &lt;/span&gt;&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;xml serialization&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, I can easily log all data coming from the &lt;/span&gt;&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;VID&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; for later playback.  The &lt;/span&gt;&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;VID&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; normally stores accumulated miles driven and gallons used in flash memory. It can also store information on maximum vehicle speed, maximum engine &lt;/span&gt;&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;RPMs&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, and &lt;/span&gt;&lt;span style="font-style: italic;" class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_38"&gt;acceleration &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;and braking habits. While I am sure that anyone using such a device would never be caught breaking the law, it is remotely possible that if the ticket was for a speed greater than the VIM recorded as maximum for that trip that you might be able to use this as evidence in your defense. In the future certain real-time markers can be added to the stored data to make it possible to legally correlate such things.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skp50q4bO2I/AAAAAAAAAA4/TuP1uvXCTEo/s1600-h/CRW_1980.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 412px; height: 366px;" src="http://2.bp.blogspot.com/_0nGx-XOZ_Yc/Skp50q4bO2I/AAAAAAAAAA4/TuP1uvXCTEo/s320/CRW_1980.jpg" alt="" id="BLOGGER_PHOTO_ID_5353225052854369122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this point in this project, I am almost satisfied with how the device works with the engine and the vehicle simulator etc. It has passed tests concerning electrical noise-- the two-wire &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;BCD&lt;/span&gt;&lt;/span&gt; device is works well enough that the length of wire between the master and the slave does not produce measurable error.  I was impressed that the wire length grew to four feet without negative &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_40"&gt;consequences&lt;/span&gt;&lt;/span&gt;. &lt;span style="font-style: italic;"&gt;I did  add 10 K termination resistors to the receiver end, before the display settled down, however.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As I said the other day, I am making plans to produce two PCB for a full-up test of both sub-systems.  In the meantime, I will continue to field test the device whenever the Accord is driven.  In fact, it is nearing that point where a full tank test is called for. I will therefore be planning a trip to Vermont after the Forth Holiday.. I would go this weekend to my favorite remote camping location. However, experience tells me that the Forth of July is no time to expect any peace and quiet in that place.. not so remote after all.&lt;br /&gt;&lt;br /&gt;During the next week, it will be my goal to get the exhaust and the front half axle replaced. After 220000 miles, I can not complain about the CV joints-- that is for sure. The right side was replaced last month. As I have said, the driver's side would have been already been replaced but to do it myself, I an still unable to get the 32 mm axle nut loosened up. I have broken several 1/2 inch drive tools trying.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.0  Thanking,Guillaume &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;CHOUTEAU&lt;/span&gt;&lt;/span&gt; for open source Windows GUI support for custom controls&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-1958008245056581206?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/1958008245056581206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/06/other-day-i-started-to-discuss-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/1958008245056581206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/1958008245056581206'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/06/other-day-i-started-to-discuss-my.html' title='Honda Mileage:Vehicle Information Device(Introduction)'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0nGx-XOZ_Yc/Skp5ptvq8II/AAAAAAAAAAw/23VJZBRKIBA/s72-c/CRW_1984.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5586334205306250157.post-8936334391010281059</id><published>2009-06-26T07:32:00.000-07:00</published><updated>2009-07-12T12:22:07.036-07:00</updated><title type='text'>Honda Fuel Economy</title><content type='html'>The vehicle now has 220,000 miles on it. It does not use a drop of oil--and retains over 85 percent of its factory power. Currently, the vehicle is capable of 34-36 mph.&lt;br /&gt;&lt;br /&gt;In the meantime, I have been working on an engineering project to design, and build a Vehicle Information Device (VID), that would at least mimic---OBDII in regard to fuel mileage. In some ways the VID provides the essential features of commercial devices like ScanGauge, but for cars older than the model year 1996.&lt;br /&gt;&lt;br /&gt;At this stage I have settled on a PIC 18F2520 processor, and worked out the necessary algorithms to measure and/or record fuel usage and distance traveled. I've also developed an efficient method to transmit BCD data to a display board using a two wire interface. The display board can be configured as either an LCD module or a custom seven segment LED display.  The LED display is the most interesting as it allows me to mirror the seven segment display and thus create a device capable of being read indirectly from reflection off the windshield. A HUD display--if you will. I use 1 inch seven segment LEDs for this purpose.&lt;br /&gt;&lt;br /&gt;The existing VID currently monitors the duty-cycle status of one of four fuel injectors in this car. It also measures VSS (Vehicle Speed Sensor) pulse information. Combining the data allows the device to keep track of the number of gallons used over the distance traveled. It stores this accumulated data in internal flash memory and therefore forms the basics for a vehicle trip computer.&lt;br /&gt;&lt;br /&gt;The VID prototype also employs three tactile switches. These switches allow the user to select the type of data displayed. The user can view tank and trip mile per gallon and distance traveled. Currently the display also shows RPM and MPH.The user can use these switches reset trip and/or tank data whenever desired.&lt;br /&gt;&lt;br /&gt;The VID also includes an RS-232 interface. This allows the VID to send a constant stream of data to a Windows based program, located on a laptop.  The program can be configured to simply monitor and display data, or actually log the data in XML format--for later play back. This feature is useful in analyzing driving styles and locations. I have two windows C# based programs for the laptop. One is a simple graphical/text based program that allows the user to select one of four different data messages and watch the data as it changes. The other program features a nice application of the C#/NET drawing class. It uses bitmaps representations of both the actual vehicle's speedo and tachometer gauges. The application then rotates a bitmap of the pointer and paints it over the gauge display.&lt;br /&gt;&lt;br /&gt;Currently the actual device is a 3*3 inch wire wrapped prototype board. Soon i plan to move it toward a PCB prototype as the next step before having multiple PCBs built by a PCB vendor. In the meantime, I am exploring other avenues for simplifying the device design and usage. Currently the device requires the user physically tap into the vehicle's wiring--for power,ground, injector and VSS signals--in what I consider, a rather intrusive way.  And, while I don't see any way around taping the fuel injector signal, I am working on ideas to eliminate the need to tap into the VSS. I am also looking for options to eliminate most wiring to the the display Unit. My ultimate goal is to have a device that is battery powered and can be positioned anywhere--including flat on the dashboard--doing this would allow the user to view the mirrored information via the windshield---and thus--- not be accused to being distracted by electronic gadgets. This Heads up Display (HUD) would allow the device to be much more instrumental in assisting the drive with his driving habits.&lt;br /&gt;&lt;br /&gt;In my testing so far, the VID device has proven that using the vehicle specifications for the fuel injectors produces realistic fuel use data. (For this engine, the fuel injectors are specified to emit 240 cc/min of 100 percent operation. Or, about 15.48 gallons per hour.) By measuring the real-time fuel injector on time, the device can easily infer the fuel usage to within 5 percent of the actual usage.&lt;br /&gt;&lt;br /&gt;Practical use so far shows that by driving the vehicle very carefully around town, the device easily reaches 28-30 MPG. For more extensive drives---covering many more miles, the VID agrees with the numbers arrived by the old method of measuring vehicle mpg.(i.e filling up the tank and driving for n-miles) On a trip of 300 miles or more, the device shows the vehicle average over 34 mpg. Fuel measurement confirms these numbers.&lt;br /&gt;&lt;br /&gt;The extensible nature of the PIC/VID architecture will allow it to eventually monitor more vehicle information--- just as OBD does. For instance, the device will eventually provide (4) four, 10 bit analog to digital inputs--useful for monitoring any number of vehicle or environmental data. For example, engine or road temperature, O2 Sensor output, and the like.&lt;br /&gt;&lt;br /&gt;So.. please come back for further updates on my efforts to squeeze both more miles and less fuel from my old Honda Accord.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5586334205306250157-8936334391010281059?l=honda93-runningonempty2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://honda93-runningonempty2.blogspot.com/feeds/8936334391010281059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/06/honda-milage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/8936334391010281059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5586334205306250157/posts/default/8936334391010281059'/><link rel='alternate' type='text/html' href='http://honda93-runningonempty2.blogspot.com/2009/06/honda-milage.html' title='Honda Fuel Economy'/><author><name>Honda93</name><uri>http://www.blogger.com/profile/01947522354006640046</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
