06-18-2013, 03:07 PM
|
#11 (permalink)
|
Master EcoModder
Join Date: Oct 2012
Location: USA
Posts: 1,408
Thanks: 102
Thanked 252 Times in 204 Posts
|
sounds like you need to modify the injector pulse reading based on a maf reading? That could take some experiment and custom mapping and a maf sensor input. Lower maf reading would mean the injector squirted more fuel for a given open time, so the code would bump up the time by some percentage of maf or something. Or some external adapter maybe, op amps and duty cycle and etc.
|
|
|
Today
|
|
|
Other popular topics in this forum...
|
|
|
06-18-2013, 03:10 PM
|
#12 (permalink)
|
Master EcoModder
Join Date: Oct 2012
Location: USA
Posts: 1,408
Thanks: 102
Thanked 252 Times in 204 Posts
|
what would your car do if you installed a regulator that referenced manifold pressure? Would it adapt? How for off is the guino?
|
|
|
06-18-2013, 11:21 PM
|
#13 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
Quote:
Originally Posted by NachtRitter
Got it... forgot that you'd done some ECM-fooling mods. Since the OBDuino does provide the MAF reading via OBD and can be tweaked to your needs (by modifying the formula and adding a separate injector pulse input, for instance), could that meet your needs? Seems like the OBDuino can give you access to quite a bit of additional data from the ECM that you'd need to manually wire up with the MPGuino.
|
I thought about modifying an OBDuino to take advantage of the fact that it likely would return both a manifold air pressure value and an ambient air pressure value as PIDs, but that was after I had already received this MPGuino. Interesting problem, indeed.
From what I can see, it'll be a simple matter of soldering in another wiring terminal for the two analog channels of this particular MPGuino, then running the wiring to support the two spare MAP sensors I have laying around (one for ambient pressure, and one for manifold vacuum). Since the MPGuino code (excuse me, "sketch") is written in some variant of C, it should really simple to initialize the analog channels, and convert their read-in values into pressure. Only challenge I see is to write a fairly quick square root routine - apparently, the complete math library wasn't loaded into the MPGuino in an effort to save programming space.
|
|
|
06-18-2013, 11:29 PM
|
#14 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
Quote:
Originally Posted by P-hack
what would your car do if you installed a regulator that referenced manifold pressure? Would it adapt? How for off is the guino?
|
The existing fuel pressure regulator is combined with the in-tank fuel filter. Installing an external regulator is not advised, as the engine computer already takes the existing regulator into account.
|
|
|
06-20-2013, 04:58 AM
|
#15 (permalink)
|
EcoModding Apprentice
Join Date: Feb 2009
Location: Estonia
Posts: 199
Thanks: 19
Thanked 40 Times in 28 Posts
|
Quote:
Originally Posted by t vago
I thought about modifying an OBDuino to take advantage of the fact that it likely would return both a manifold air pressure value and an ambient air pressure value as PIDs, but that was after I had already received this MPGuino. Interesting problem, indeed.
From what I can see, it'll be a simple matter of soldering in another wiring terminal for the two analog channels of this particular MPGuino, then running the wiring to support the two spare MAP sensors I have laying around (one for ambient pressure, and one for manifold vacuum). Since the MPGuino code (excuse me, "sketch") is written in some variant of C, it should really simple to initialize the analog channels, and convert their read-in values into pressure. Only challenge I see is to write a fairly quick square root routine - apparently, the complete math library wasn't loaded into the MPGuino in an effort to save programming space.
|
You can try to include complete math library - it was not fitting when atmega 168 was used (16KB flash space), if you have atmega 328 chip then you have 32KB of flash - you probaly have enough room for math library.
Meelis
|
|
|
The Following User Says Thank You to meelis11 For This Useful Post:
|
|
06-20-2013, 11:19 AM
|
#16 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
Quote:
Originally Posted by meelis11
You can try to include complete math library - it was not fitting when atmega 168 was used (16KB flash space), if you have atmega 328 chip then you have 32KB of flash - you probaly have enough room for math library.
Meelis
|
Thanks! I may try that.
I've compiled the major steps I will need to proceed with this project:
1. Dust off an old MicroCore11, and turn it into a simple SCI programmer (they call it an "ICSP interface" - how cute!).
2. Obtain the latest MPGuino code
3. Solder an extra set of terminals onto board
4. Construct a testing pigtail that will connect to two MAP sensors
5. Add in-car wiring
6. Modify MPGuino code to include editable parameters relating to add-on MAP sensors
7. Modify MPGuino code to interface with said sensors
8. Modify MPGuino code to utilize sensor readings
|
|
|
The Following User Says Thank You to t vago For This Useful Post:
|
|
07-09-2013, 01:33 AM
|
#17 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
Well, I got a little side-tracked with going through the MPGuino v0.86 code, to figure out how it all works. However, I am through it, and have figured out the likely spot to inject the pressure correction factor (the fuel injector shut-off interrupt handler), and have also figured out that the factor will likely be calculated on-the-fly in the main body of the program code. The interrupt handler simply cannot be saddled down with anything resembling a square root calculation. Having the correction factor being calculated once per display update cycle will lead to inaccuracy, but I think it'll be orders of magnitude better than having no correction factor at all.
In the course of figuring out how the code works, I've managed to shave off some 3000 compiled program bytes and some 100 lines from the code, to optimize the code somewhat to add the correction factor computing. I will go through this subforum to glean off some other interesting ideas.
|
|
|
The Following User Says Thank You to t vago For This Useful Post:
|
|
07-09-2013, 06:42 PM
|
#18 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
Miscellaneous MPGuino optimization note
This:
Code:
if (parms[metricIdx] == 1){
distancefactor /= 1.609;
fuelfactor /= 3.785;
}
is 572 bytes larger than this:
Code:
if (parms[metricIdx] == 1){
distancefactor = 1000 * distancefactor / 1609;
fuelfactor = 1000 * fuelfactor / 3785;
}
|
|
|
07-11-2013, 05:07 AM
|
#19 (permalink)
|
MPGuino Supporter
Join Date: Oct 2010
Location: Hungary
Posts: 1,808
iNXS - '10 Opel Zafira 111 Anniversary Suzi - '02 Suzuki Swift GL
Thanks: 831
Thanked 709 Times in 457 Posts
|
% shave | size | notes | . | 17160 | original v0.86 | 99.8 | 17126 | streamline LCD hardware functions | 94.4 | 16196 | consolidate initGuino, create editGuino, get rid of floating point | 93.3 | 16006 | fold instantlkm into instantmpg, get rid of (dispadj, dispadj2) | 91.4 | 15692 | fold Trip::lkm into Trip::mpg, remove lkm bug | 90.1 | 15468 | expand eq64 and lt64; get rid of functions eq64 and lt64 | 89.7 | 15400 | move processInjOpen and processInjClosed into their respective ISR functions, get rid of int0func and int1func | 90.0 | 15450 | get rid of interrupt disable bug in microSeconds() |
Notes on what I did this past night...
|
|
|
07-11-2013, 11:37 AM
|
#20 (permalink)
|
EcoModding Lurker
Join Date: Dec 2009
Location: Monterey, KY
Posts: 45
Thanks: 7
Thanked 4 Times in 3 Posts
|
Very interested in following this! Thumbs up to T Vago!
I've got a 92 Dodge Dakota that needs monitoring, and it has the Chrysler constant pressure setup. I want to build a custom MPGuino with fuel pressure monitoring.
An added wrinkle... this truck also runs on wood. I start on gasoline and switch over gradually. So to shut off the gasoline I reduce the fuel pump voltage to lean out the mixture as I transition to woodgas. This lowers the fuel pressure and leans the mix, while I simultaneously ramp up the woodgas. Eventually I reach 0 pressure and no gasoline, although the injectors still fire. A stock MPGuino would be way thrown off by this. But if it could compensate for the pressure...
T Vago, will the code be able to reduce the fuel usage to zero at no pressure? That would be awesome.
__________________
|
|
|
|