View Single Post
Old 03-26-2012, 12:10 AM   #2 (permalink)
Master EcoModder
Ecky's Avatar
Join Date: Dec 2011
Location: New Zealand
Posts: 4,878

ND Miata - '15 Mazda MX-5 Special Package
90 day: 37.84 mpg (US)

Work Vehicle - '17 Toyota RAV4
90 day: 34.16 mpg (US)
Thanks: 2,797
Thanked 2,423 Times in 1,501 Posts
You have all the parts right. The wiki has a link to some out of date software about 75% down, says something like "You must use version 0011 or it won't fit", but that isn't applicable for your Uno R3 because it has a bigger ROM (atmega328 vs 128). You could use it and it would work fine, but there's newer code available. This is a link to the latest code:

To install it on your device, download the arduino software from here:

Arduino - Software

Once you have it open, copy and past the code into your empty sketch. You'll need to change a few lines because the prebuilt MPGuinos are 20mhz instead of 16mhz like the Uno, which will skew all of your numbers if not corrected for. If you scroll down just a bit in the code you'll see the following:

//use with 20mhz
#define cyclesperhour 4500
#define dispadj 800
#define dispadj2 1250
#define looptime 1250000ul/loopsPerSecond //1/2 second
#define myubbr (20000000/16/9600-1)
#define injhold (parms[injectorSettleTimeIdx]*5)/4


//use with 16mhz, not tested
//#define cyclesperhour 3600
//#define dispadj 1000
//#define dispadj2 1250
//#define looptime 1000000ul/loopsPerSecond //1/2 second
//#define myubbr (16000000/16/9600-1)
//#define injhold parms[injectorSettleTimeIdx]
"//" means the line of code isn't used, so add "//" to the 20mhz lines and remove them from the 16mhz lines so they look like the 20's did, or change the 20mhz section's values to be the same as the 16mhz section's. (that's what I did)

Make sure under "tools" you have the Uno selected as your board, and the right port (might take some trial and error if you have a bunch) and then hit Upload.
  Reply With Quote
The Following User Says Thank You to Ecky For This Useful Post:
revolt13 (03-26-2012)