05-19-2008, 03:55 PM
|
#91 (permalink)
|
EcoModding Lurker
Join Date: May 2008
Location: St. Louis
Posts: 28
Thanks: 0
Thanked 0 Times in 0 Posts
|
That looks like some pretty good information if you ask me.
__________________
|
|
|
Today
|
|
|
Other popular topics in this forum...
|
|
|
05-19-2008, 05:18 PM
|
#92 (permalink)
|
EcoModding Lurker
Join Date: May 2008
Location: Central New Mexico
Posts: 18
Bun - '02 Ford Focus ZTS 90 day: 31.3 mpg (US)
Thanks: 0
Thanked 0 Times in 0 Posts
|
Welcome, Yoshi!
awillard69: I just power cycle my board until I can successfully program it. Sometimes it's necessary to remove the guino components. I installed these on a protoshield board so it's easy to disconnect from the freeduino. ( See picture )
|
|
|
05-19-2008, 05:19 PM
|
#93 (permalink)
|
Dartmouth 2010
Join Date: Nov 2007
Location: Hanover, NH
Posts: 6,447
Thanks: 92
Thanked 123 Times in 90 Posts
|
Hey Yoshi -
Thanks for stopping by to share your expertise,
|
|
|
05-19-2008, 05:46 PM
|
#94 (permalink)
|
EcoModding Apprentice
Join Date: Feb 2008
Location: Streamwood, IL
Posts: 105
Dakota - '00 Dodge Dakota Club Cab, Sport 90 day: 18.57 mpg (US) Jeep - '01 Jeep Wrangler TJ Sport 90 day: 18.46 mpg (US)
Thanks: 0
Thanked 1 Time in 1 Post
|
Quote:
Originally Posted by Mr. Cheap
I just power cycle my board until I can successfully program it.
|
Did you only have to do this once? Or for every subsequent upload, also?
So, what sequence? IDE, power, serial, upload? IDE, serial, power, upload? Serial, power, IDE, upload? ...?
I'm at a loss. I thought the Diecimila was supposed to detect the reset automatically. From scratch, the #13 LED blinks about every 2 seconds, forever, right?
I've found nothing at the Aurdino forums. And, when I registered, it said to respond to the confirmation email - none have arrived yet! So I cannot even post, but judging by the other answers, I would be repeating what others have said, with no help. I'm frustrated.
__________________
|
|
|
05-19-2008, 05:55 PM
|
#95 (permalink)
|
needs more cowbell
Join Date: Feb 2008
Location: ÿ
Posts: 5,038
Thanks: 158
Thanked 269 Times in 212 Posts
|
awillard69: PM sent.
__________________
WINDMILLS DO NOT WORK THAT WAY!!!
|
|
|
05-19-2008, 07:45 PM
|
#96 (permalink)
|
EcoModding Apprentice
Join Date: Feb 2008
Location: Streamwood, IL
Posts: 105
Dakota - '00 Dodge Dakota Club Cab, Sport 90 day: 18.57 mpg (US) Jeep - '01 Jeep Wrangler TJ Sport 90 day: 18.46 mpg (US)
Thanks: 0
Thanked 1 Time in 1 Post
|
Stymied by my own scrounging.
It appears that my serial cables are not true serial cables.
I cut one open and there are only 3 wires! They must have been for some specific device and application that only needed those three wires with the DB9's.
So, I'm off to see where I can find a "good" serial cable. Until then, I'm coasting.....
__________________
|
|
|
05-19-2008, 08:49 PM
|
#97 (permalink)
|
EcoModding Lurker
Join Date: May 2008
Location: Central New Mexico
Posts: 18
Bun - '02 Ford Focus ZTS 90 day: 31.3 mpg (US)
Thanks: 0
Thanked 0 Times in 0 Posts
|
Quote:
Originally Posted by awillard69
Did you only have to do this once? Or for every subsequent upload, also?
So, what sequence? IDE, power, serial, upload? IDE, serial, power, upload? Serial, power, IDE, upload? ...?
|
Sorry if it's not much help but I'll share my observations.
The sequence I usually do is IDE, serial, power, upload. If upload fails I'll unplug power, connect power, and upload again.
I built my 2.0 and have been unable to cause any upload failures. I have also not had any recent failures uploading to a 1.0 board with no components attached.
The arduino site mentions that some diecimilas shipped with the NG bootloader. These boards may not operate upload correctly. I don't know if this problem affects the serial boards. It seems unlikely.
The led of an unprogrammed board does indeed blink. Its rhythm should be disrupted by pressing the reset switch or attempting to upload.
EDIT: I agree that your 3 wire serial cables probably won't reset the board and therefore won't upload properly. You may be able to upload by manually hitting the reset switch at the right time.
Last edited by Mr. Cheap; 05-19-2008 at 08:55 PM..
|
|
|
05-19-2008, 09:10 PM
|
#98 (permalink)
|
needs more cowbell
Join Date: Feb 2008
Location: ÿ
Posts: 5,038
Thanks: 158
Thanked 269 Times in 212 Posts
|
Quote:
Originally Posted by Yoshi
Hello from Japan,
|
Hi Yoshi!! Glad for the input, Let me just go point by point here with the current state of the mpguino project in case anyone is wondering.
Quote:
Originally Posted by Yoshi
My project is open hardware and open binary software.
The program is written in AVR assembler and my source is very dirty now, so it is not open-source yet.
|
Ditto for mpguino, except it should be a little easier to maintain because it uses C++, and hopefully more people will be more willing to work on it as a result.
Quote:
Originally Posted by Yoshi
However, you can dis-assemble my binary (intel hex file), then you'll be able create the assembler source.
|
Uh, I'll get back to you on that The mpguino is already functional, we are getting resonable instant MPG and Speed readings (I need to get the latest code published, I know)
Quote:
Originally Posted by Yoshi
Anyway, let me explain how I built it.
* interface
I place an interface box for injector and VSS signals as close as the ECU, because I don't want to pass noises to 5V logic part.
The Prius VSS signal is very clean, but we'll need some filter circuit to clean up the mechanical chattering used on some vehicles.
|
Yup, dieseljohn mentioned something to that effect, like put the 100k resistor by the signal source. I haven't done that yet, but so noted. (Edit, oops, looks like you guys are saying different things here)
Quote:
Originally Posted by Yoshi
- VSS signal
I use INT1 falling edge interrupt.
|
We are using a "change" interrupt on pin 14, we have to double the vsspulses/mile figure but it seems accurate.
Quote:
Originally Posted by Yoshi
Prius, Honda and others, VSS specification is 637*4=2548 pulses per km, or 4100 pulses per mile.
|
I list 4000 pulses/mile for all post 96 toyota/honda. hmm...
Quote:
Originally Posted by Yoshi
I assign 18bits for the 10m counter, so the max trip distance is 2621.43 km.
|
A mpguino trip will overflow on distance at about 0.5 million miles.
Quote:
Originally Posted by Yoshi
- injector signal
There is a very good feature in the ATmega8(ATmega168 as well) called "input capture" using pin#14 and 16bit timer1.
|
That is a nice feature . I was a little intimidated by the timers at first, so avoided the issue completely by:
1. creating a microSeconds(void) function based on the system clock.
2. creating an elapsedMicroSeconds(unsigned long startMicroseconds) function.
At the start of an event, you save a copy of microSeconds(), at the end you call elapsedMicroSeconds(start) to see how long the event was.
Quote:
Originally Posted by Yoshi
The rising edge trigger is detected by INT0, then clear the timer1.
The timer1 is driven by 1/64 of clock (12.8MHz), so the unit is 5 usec.
As soon as the injector pulse goes low, the timer1 count is stored in a register.
|
We could reclaim a valuable edge triggerable pin with this "input capture" feature (but not version one). Right now we are using falling on INT0 and a rising on INT1 with both pins tied together to get the pulse width.
Quote:
Originally Posted by Yoshi
There are some mechanical delay of injector, so I assume it is 500usec, then the pulse count - 100 becomes the effective pulse width for proportional to real fuel usage.
|
I wondered about the mechanical delay. We have not yet accounted for it, I was kind of hoping the delay would affect the opening AND the closing of the injector and thus cancel itself out
Quote:
Originally Posted by Yoshi
I would like to get 1 cc (milli-liter) count, so I set some fuel parameter for that.
After a lot of experiments, I found the accumulated timer1 value becomes 14052 (fuel parameter) Prius shows 1 cc usage.
I assign 16bit for the 1cc counter, so the max trip fuel usage is 65.535liter.
|
We are using a microSecondsPerGallon parameter currently. The data model is good for 1.2 million hours worth of fuel flow.
Quote:
Originally Posted by Yoshi
That's all as of today.
Regards,
Yoshi
|
Thanks again. If you are interested, the mpguino source code and schematic are at the top of this thread:
http://forum.ecomodder.com/showthrea...pace-2115.html
P.S. what inspired the tachometer signal on the supermid?
__________________
WINDMILLS DO NOT WORK THAT WAY!!!
Last edited by dcb; 05-19-2008 at 10:45 PM..
|
|
|
05-20-2008, 01:18 AM
|
#99 (permalink)
|
EcoModding Lurker
Join Date: May 2008
Location: USA
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
|
Quote:
Originally Posted by awillard69
Stymied by my own scrounging.
It appears that my serial cables are not true serial cables.
I cut one open and there are only 3 wires! They must have been for some specific device and application that only needed those three wires with the DB9's.
So, I'm off to see where I can find a "good" serial cable. Until then, I'm coasting.....
|
I have experienced this issue myself when trying to use the "serial" cables that came with APC battery backups. The looked like serial cables, had connectors like serial cables but did not function like serial cables.
J
|
|
|
05-20-2008, 07:50 AM
|
#100 (permalink)
|
SuperMID designer
Join Date: Mar 2008
Location: Yokohama, JAPAN
Posts: 37
Thanks: 0
Thanked 13 Times in 2 Posts
|
Quote:
Originally Posted by dcb
Hi Yoshi!! Glad for the input, Let me just go point by point here with the current state of the mpguino project in case anyone is wondering.
|
Thank you for the warm message.
Following is my personal opinion and suggestions.
I hope you and team members will have better understanding what I'm saying, but it's up to you whether you adopt my suggestions or not.
Our microprocessor is 8 bit and it is less powerful than Windows PC Intel chip, therefore I tried to program it as simple as possible and as small as calc bits.
Quote:
A mpguino trip will overflow on distance at about 0.5 million miles.
|
My design is up to a single tank of gasoline distance.
Quote:
That is a nice feature . I was a little intimidated by the timers at first, so avoided the issue completely by:
1. creating a microSeconds(void) function based on the system clock.
2. creating an elapsedMicroSeconds(unsigned long startMicroseconds) function.
At the start of an event, you save a copy of microSeconds(), at the end you call elapsedMicroSeconds(start) to see how long the event was.
|
I saw your source.
It looks there was a bug in the millis() routine and they are going to remove the timer0_overflow_count variable.
Quote:
We are using a microSecondsPerGallon parameter currently. The data model is good for 1.2 million hours worth of fuel flow.
|
Again, my program is for a sigle tank trip, 99 hours 59 min 59 second max.
Quote:
P.S. what inspired the tachometer signal on the supermid?
|
The TACH signal is for my tachometer called SuperMID T-1.
One more note...
When we manipulate the interrupt driven variables, we need cli() and sei() functions to disable/enable interrupts before and after the manipulation.
Please refer to following example.
http://www.arduino.cc/cgi-bin/yabb2/...1201890734/2#2
Regards,
Yoshi
|
|
|
|