EcoModder.com

EcoModder.com (https://ecomodder.com/forum/)
-   OpenGauge / MPGuino FE computer (https://ecomodder.com/forum/opengauge-mpguino-fe-computer.html)
-   -   Questions about mpguino (https://ecomodder.com/forum/showthread.php/questions-about-mpguino-2438.html)

mhmitszach 05-19-2008 09:10 PM

Questions about mpguino
 
sorry if this is redundant, but I just have really been able to find answers.


Would an arduino board with usb work with the source code being developed?

Does the code specific the 16x20 lcd screen/could it easily be changed to work with a different sized screen?

Does it interface with the obdII port/how many different wires need to be spliced into from the car?

would it work with my 97 escort?

some of you seem to be powering it from 9v batteries or simliar, I could splice into power from somewhere else in my car, no?

Does it keep average/trip mpg along with current mpg?

I just really want to have a constant read out of my mpg, and I don't really want to spend 150-170 dollars on that.

Plus DIY or die.

keep up the great work.

thanks, zach.

DifferentPointofView 05-19-2008 09:24 PM

Well it's supposed to work with any car, even from the 50's and such, so the 97 escort would be covered. And I'm pretty sure it does the Average/trip mpg and current mpg, plus maybe a little more. As far as the power source, I don't know, but you could probably run it off of your cars power. It depends on whether or not it was designed for 9v or not, cause your car runs around an average of 13.7-14's-ish. So that's quite a bit more power to the gauge.

As for the rest, I'm not sure, someone else will have to chime in. The gauge from what I hear costs around 40 bucks or less to build.

AndrewJ 05-19-2008 09:28 PM

Quote:

Originally Posted by mhmitszach (Post 27076)
Would an arduino board with usb work with the source code being developed?

Yes, the USB (decimilia) board works, dcb is just using the serial to claim it's lower cost on the project total.

Quote:

Originally Posted by mhmitszach (Post 27076)
Does the code specific the 16x20 lcd screen/could it easily be changed to work with a different sized screen?

Yes, It'll work on a different screen, at least one with the same pinout.


Quote:

Originally Posted by mhmitszach (Post 27076)
Does it interface with the obdII port/how many different wires need to be spliced into from the car?

Four: +12v power, Ground, VSS, one injector wire.

Quote:

Originally Posted by mhmitszach (Post 27076)
would it work with my 97 escort?

As long as it has fuel injection, then yes.

Quote:

Originally Posted by mhmitszach (Post 27076)
some of you seem to be powering it from 9v batteries or simliar, I could splice into power from somewhere else in my car, no?

Yes, you can use up to 15v, so your cars 12v will work.

Quote:

Originally Posted by mhmitszach (Post 27076)
Does it keep average/trip mpg along with current mpg?

Yes.

mhmitszach 05-19-2008 09:33 PM

Thanks much.

Wait, I need another power source besides the 12v?

How close to being tried and true would you say it is right now?

I can't seem to tell how well it is working for everyone.

diesel_john 05-19-2008 09:47 PM

Quote:

Originally Posted by DifferentPointofView (Post 27078)
Well it's supposed to work with any car, even from the 50's and such,

an off the shelf, store bought, fuel flow meter is about $120 for a carbureted engine, so we are in need of less expensive fuel flow meter ideas. to keep the price low for non-injected engines. see the thread about a mileage computer for a carb'd engine.

no, the MPGuino does not use the OBD port.

The MPGuino is currently in the working prototype stage of development.

mhmitszach 05-20-2008 11:29 AM

Just a thought....

Wire 12v, ground, vss, and injector wire into a female ethernet connector, and then have a another connector located under dash and wire accordingly to that connector to simplify everything into one cable.

Although really, this could work for any cable/connector with at least four wires.

Would work , right?

AndrewJ 05-20-2008 12:57 PM

yes, it'll work. In fact that's basically what I'm doing, I'm just using a 6 conductor phone wire. Four wires for the current prototype, and two more for later expandability "just-in-case" :D

JustThisGuy 05-20-2008 05:59 PM

Quote:

Originally Posted by DifferentPointofView (Post 27078)
Well it's supposed to work with any car, even from the 50's and such, so the 97 escort would be covered. And I'm pretty sure it does the Average/trip mpg and current mpg, plus maybe a little more. As far as the power source, I don't know, but you could probably run it off of your cars power. It depends on whether or not it was designed for 9v or not, cause your car runs around an average of 13.7-14's-ish. So that's quite a bit more power to the gauge.

As for the rest, I'm not sure, someone else will have to chime in. The gauge from what I hear costs around 40 bucks or less to build.

Wait, how exactly does this work with really old cars, circa the 70's? If it actually well then I really need to start reading up on this project.

dcb 05-20-2008 06:21 PM

It doesn't. There are some discussions about making it work with carbs and old diesels (diesels are pretty straight forward actually), but no working models yet. It is just a matter of time though.

JustThisGuy 05-20-2008 06:30 PM

Ok, so it doesn't work yet, but in theory it will work for that in some capacity if someone decides to put the time and effort into it.

dcb 05-20-2008 06:45 PM

To clarify, it isn't a question of "if". People have been working on it already and continue to work on it.

JustThisGuy 05-20-2008 06:49 PM

Aha. Gotcha. It'll be interesting to see how that will work.

dcb 05-20-2008 06:59 PM

A lot of the carbureted stuff is here, it has a ways to go but we are learning more all the time:

http://forum.ecomodder.com/showthrea...gine-1123.html

John is still making progress (and I will be stealing his cheap fuel flow sensor if he gets it going for the masses), I had to take a break from it after a frustrating effort on the motorcycle.

I need a volunteer or three with an old diesel or three who can hook up a couple sensors to their old diesel rabbits or mercedeses or mack trucks to get anywhere on the diesel side.

Johnny Mullet 05-20-2008 10:37 PM

Quote:

Originally Posted by dcb (Post 27288)
I need a volunteer or three with an old diesel or three who can hook up a couple sensors to their old diesel rabbits or mercedeses or mack trucks to get anywhere on the diesel side.

I work on Diesel trucks every day and we have a local company that parks on our lot and we service them weekly. All have Cat engines in them. Need help?

dcb 05-20-2008 10:50 PM

Tell me about it? Are they strictly mechanical injection?

I'm thinking with a "simple" sensor to count the injection pump revolutions and a throttle position sensor that the fuel consumption can be computed. Add a speed signal and you've got a DIY MPG gauge for semi's.

Johnny Mullet 05-22-2008 09:28 PM

We have regular customers with older "mechanical injection" pumps on them, but the newer engines are electronically controlled. The speed signal could be tapped in at the rear of the trans, but no TP on them.

dcb 05-27-2008 12:00 AM

Yah, the mechanical diesel version is probably going to need some sensors installed, nothing fancy: rpm (or pump revolutions), throttle position, and vss if it isn't handy.

cowtown 06-12-2008 09:43 AM

A few questions on this Arduino-based gauge:
 
- If you don't mind the added expense, would the new Nano model make any difference?

- Does it matter if your car has throttle-body injection (i.e.- just one injector)?

- Is there an even more basic way to convert the two inputs (vss and injector) into a single instantaneous number? A dedicated one-inch high digital readout of XX.X with "mpg" would be fine for me.

Thanks for any info
Russell

MilesPerTank 06-12-2008 01:14 PM

You could definatly implement some 7 segment LEDs to run a simple gauge.

I'm actually deciding between using a 40x4 LCD, and 4 7segment LEDs. I dont know if I want to see it all (40x4) or just some of it (7 segments).

There are nice 4 7 segment LED i2c controllers that would cleanup a lot of the wiring (at least off load it).

dcb 06-12-2008 01:52 PM

Just FYI, the target display for mpguino version 1.0 is a 16x2 LCD. It isn't hard to get more items to display on a larger LCD if you can figure out the program, but don't go out buying a jumbo LCD/LED of arbitrary size and expect it to magically fill up with useful data :)

Here was the agreed upon model if you want to eliminate some variables in yoru setup and improve your chances of getting help: http://nkcelectronics.com/16x2-lcd-m...backli162.html

MilesPerTank 06-12-2008 01:56 PM

for just an inst. mpg reading the 16x2 LCD is over kill. that was the thought at least.

cowtown 06-12-2008 03:03 PM

Quote:

Originally Posted by MilesPerTank (Post 34191)
for just an inst. mpg reading the 16x2 LCD is over kill. that was the thought at least.

It certainly was *my* thought - I was also wondering if a single readout like that needs the full processor power, or if some simpler device can do {2 inputs+some basic math=an instantaneous mpg number}. Just have to adjust for 2 variables and one calculation, as far as my Luddite mind can tell.

dcb 06-12-2008 06:02 PM

I really like the big numbers idea, it just hasn't bubbled to the top of the stack yet. Here is a quick example of what I had in mind (no hardware change necessary):
http://opengauge.org/diympggauge/bignum.JPG

Also note that we are/will be using the trip functions for calibrating the gauge.

MilesPerTank 06-12-2008 06:09 PM

That looks great. Send me that software version !

dcb 06-12-2008 06:38 PM

I'm glad you like it :D It is just a mockup, it doesn't do anything and has not been integrated to the mpguino codebase, but here is the code if you are interested. I basically build the numbers with 5 custom block shaped characters (will need to get rid of the current custom characters for this)

PHP Code:

//GPL Software  

byte brightness[]={0,42,85,128}; //middle button cycles through these brightness settings    
#define brightnessLength (sizeof(brightness)/sizeof(byte)) //array size    
byte brightnessIdx=2;    
#define contrast 15    

//LCD Pins    
#define DIPin 4 // register select RS    
#define DB4Pin 7     
#define DB5Pin 8     
#define DB6Pin 12     
#define DB7Pin 13    
#define ContrastPin 6    
#define EnablePin 5     
#define BrightnessPin 9    
#define lcdpowerPin 15


//LCD prototype    
class LCD{    
public:    
  
LCD( ) ;    
  
void gotoXY(byte xbyte y);    
  
void print(char string);    
  
void init();    
  
void tickleEnable();    
  
void cmdWriteSet();    
  
void LcdCommandWrite(byte value);    
  
void LcdDataWrite(byte value);    
  
byte pushNibble(byte value);    
};    


//main objects we will be working with:    
LCD lcd;    

void setup (void){     
  
pinMode(lcdpowerPin,OUTPUT);    
  
digitalWrite(lcdpowerPin,LOW);
  
pinMode(BrightnessPin,OUTPUT);    
  
analogWrite(BrightnessPin,255-brightness[brightnessIdx]);    
  
delay(500);
  
digitalWrite(lcdpowerPin,HIGH);
  
lcd.init();    
  
pinMode(ContrastPin,OUTPUT);    
  
analogWrite(ContrastPin,contrast);    

  
lcd.LcdDataWrite(3);   lcd.LcdDataWrite(2);   lcd.LcdDataWrite(3); lcd.LcdDataWrite(32); 
  
lcd.LcdDataWrite(3);   lcd.LcdDataWrite(2);   lcd.LcdDataWrite(3); lcd.LcdDataWrite(32);  
  
lcd.LcdDataWrite(0);   lcd.LcdDataWrite(0);   lcd.LcdDataWrite(3); lcd.LcdDataWrite(32);  
  
lcd.print("INST");  
  
lcd.gotoXY(0,1);    
  
lcd.LcdDataWrite(1);   lcd.LcdDataWrite(1);   lcd.LcdDataWrite(3);  lcd.LcdDataWrite(32);  
  
lcd.LcdDataWrite(3);   lcd.LcdDataWrite(1);   lcd.LcdDataWrite(3);  lcd.LcdDataWrite(4);  
  
lcd.LcdDataWrite(32);   lcd.LcdDataWrite(32);   lcd.LcdDataWrite(3);  lcd.LcdDataWrite(32);  
  
lcd.print("MPG");  
  
}     

void loop (void){     
  while(
true){}    
}     



//LCD functions    
LCD::LCD(){    
}    
//x=0..16, y= 0..1    
void LCD::gotoXY(byte xbyte y){    
  
byte dr=x+0x80;    
  if (
y==1)     
    
dr += 0x40;    
  if (
y==2)     
    
dr += 0x14;    
  if (
y==3)     
    
dr += 0x54;    
  
lcd.LcdCommandWrite(dr);      
}    

void LCD::print(char string){    
  
byte x 0;    
  
char c string[x];    
  while(
!= 0){    
    
lcd.LcdDataWrite(c);     
    
x++;    
    
string[x];    
  }    
}    


//do the lcd initialization voodoo    
void LCD::init(){    
  
pinMode(EnablePin,OUTPUT);     
  
pinMode(DIPin,OUTPUT);     
  
pinMode(DB4Pin,OUTPUT);     
  
pinMode(DB5Pin,OUTPUT);     
  
pinMode(DB6Pin,OUTPUT);     
  
pinMode(DB7Pin,OUTPUT);     
  
delay(500);    

  
LcdCommandWrite(B00000010);  // 4 bit operation      

  
LcdCommandWrite(B00101000);// 4-bit interface, 2 display lines, 5x8 font     
  
LcdCommandWrite(B00001100);  // display control:     
  
LcdCommandWrite(B00000110);  // entry mode set: increment automatically, no display shift     


  
LcdCommandWrite(B01000000);  // set cgram    
  //create some custom characters    
  
byte chars[]={
    
B11111,B00000,B11111,B11111,B00000,
    
B11111,B00000,B11111,B11111,B00000,
    
B00000,B00000,B00000,B11111,B00000,
    
B00000,B00000,B00000,B11111,B00000,
    
B00000,B00000,B00000,B11111,B00000,
    
B00000,B00000,B00000,B11111,B01110,
    
B00000,B11111,B11111,B11111,B01110,
    
B00000,B11111,B11111,B11111,B01110};
        
    for(
byte x=0;x<5;x++)      
      for(
byte y=0;y<8;y++)      
          
LcdDataWrite(chars[y*5+x]); //write the character data to the character generator ram     

  
LcdCommandWrite(B00000001);  // clear display, set cursor position to zero       

  
LcdCommandWrite(B10000000);  // set dram to zero     

}      

void  LCD::tickleEnable(){     
  
// send a pulse to enable     
  
digitalWrite(EnablePin,HIGH);     
  
delayMicroseconds(1);  // pause 1 ms according to datasheet     
  
digitalWrite(EnablePin,LOW);     
  
delayMicroseconds(1);  // pause 1 ms according to datasheet     
}      

void LCD::cmdWriteSet(){     
  
digitalWrite(EnablePin,LOW);     
  
delayMicroseconds(1);  // pause 1 ms according to datasheet     
  
digitalWrite(DIPin,0);     
}     

byte LCD::pushNibble(byte value){     
  
digitalWrite(DB7Pinvalue 128);     
  
value <<= 1;     
  
digitalWrite(DB6Pinvalue 128);     
  
value <<= 1;     
  
digitalWrite(DB5Pinvalue 128);     
  
value <<= 1;     
  
digitalWrite(DB4Pinvalue 128);     
  
value <<= 1;     
  return 
value;    
}    

void LCD::LcdCommandWrite(byte value){     
  
value=pushNibble(value);    
  
cmdWriteSet();     
  
tickleEnable();     
  
value=pushNibble(value);    
  
cmdWriteSet();     
  
tickleEnable();     
  
delay(5);     
}     

void LCD::LcdDataWrite(byte value){     
  
digitalWrite(DIPinHIGH);     
  
value=pushNibble(value);    
  
tickleEnable();     
  
value=pushNibble(value);    
  
tickleEnable();     
  
delay(5);     



cowtown 06-12-2008 10:07 PM

Quote:

Originally Posted by dcb (Post 34281)
I'm glad you like it :D It is just a mockup, it doesn't do anything and has not been integrated to the mpguino codebase, but here is the code if you are interested. I basically build the numbers with 5 custom block shaped characters (will need to get rid of the current custom characters for this)

Now all you need is a gumstick-size board to slip behind the display and it'll fit just about anywhere! With all the creative programming, your next feat will be a scrolling display!

dcb 06-13-2008 09:03 AM

With all those pins sticking out of the nano, and given the size of the LCD, it would actually be a little larger than the custom efforts, i.e. http://ecomodder.com/forum/showthrea...3692#post33692

And I felt enough like Myron Reducto when I was making that :D
http://www.templelooters.com/birdman/images/hb2-03.jpg
"I'll make you fun sized!"

awillard69 06-13-2008 09:16 AM

That looks great. That would make it easier to read without having to be too distracted. Plus, a big, glaring number would maybe encourage your to drive "better"!

Have it show a steady reading, or cycle through several settings every second or so, or wish, wish, wish, wish...

Keep in mind the 100+MPG people... maybe they won't need the tenths? ;)

Accuracy and reliability before eye candy, though.

dcb 06-13-2008 09:52 AM

Quote:

Originally Posted by awillard69 (Post 34437)
Keep in mind the 100+MPG people... maybe they won't need the tenths? ;)

Agreed, the formatter should drop the decimal point if the number is over 99.9

Quote:

Originally Posted by awillard69 (Post 34437)
Accuracy and reliability before eye candy, though.

Exactly :)

mhmitszach 06-18-2008 05:37 PM

Just trying to keep main thread clean.

Does this still work with EOC coasting or neutral coasting? How does it work in that situation. If i shut my car off , and turn key back to on. mpguino would lose power in my car.

dcb 06-18-2008 10:26 PM

the mpguino NEEDS to be connected to the 12 volt battery so if there are any vss pulses or injector pulses it will still count them. If you EOC without an ignition kill switch then you might not get readings while the key is off, but only because the car stopped sending them. The readings should return when the key is turned back on.

diesel_john 06-18-2008 11:23 PM

My VSS gives a signal whenever turning with or without a car hooked to it.

My KEL injector based computer switches to gal per hr if it sees no VSS signal.

Problem is during EOC it turns off because the injection signal is what turns it on and keeps it on. Instead of sensing either signal. ithink, i better double check that.

dcb 06-18-2008 11:33 PM

Switching to GPH is an interesting idea...

Technically we typically tap into an ECU speed signal, my saturn has a hall sensor vss, but the ECU converts it to a 12 volt signal. The metro has a switch in the speedo.

dcb 06-21-2008 09:26 PM

I was thinking about if/what to do if vss pulses is 0 and injector isn't on the guino. A big part of me wants to set off a 200 decibel alarm if that situation persists for more than 10 seconds :)

mhmitszach 06-30-2008 06:55 PM

Trying to keep main thread clean again...

Plan on ordering parts tomorrow...

What information on pulse rates or something do i need to find out? and how can i find them out?

dcb 06-30-2008 07:10 PM

I updated post 1 under the installation notes for some online sources of vss info. on rostra it lists your zx2 as 8000 (probably really 8208) pulses per mile and gives some details how to find it on the ecu plug.

AnDoireman 07-01-2008 07:33 AM

Has anyone else used one on an older European diesel yet?

dcb 07-01-2008 07:38 AM

I haven't heard of any. It will take a little extra sensor hardware. Diesel John has had some luck with an old flow meter: http://ecomodder.com/forum/showthrea...html#post10747


All times are GMT -4. The time now is 09:30 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com