View Single Post
Old 08-19-2010, 09:27 AM   #570 (permalink)
eimix
EcoModding Lurker
 
Join Date: Aug 2010
Location: Lithuania
Posts: 74
Thanks: 3
Thanked 21 Times in 15 Posts
Quote:
Originally Posted by m3ph View Post
The thing is, that when I turn off the ignition in my car, the obduino goes to sleep (alarm screen). When I start my car up again, the alarm screen stays and no info is displayed. It seems that the obduino for some reason, can not sense when the car is started.
4th and 5th pins in OBD2 are sometimes soldered together in car side connector so this shouldn't be a problem in this case.

iso_init() is very sensitive to timing issues:

Code:
 
#ifdef carAlarmScreen
// ECU is off so print ready screen instead of PIDS while we wait for ECU action
displayAlarmScreen();
#else
// for some reason the display on LCD
for(byte current_PID=0; current_PID<LCD_PID_count; current_PID++)
display(current_PID, params.screen[active_screen].PID[current_PID]);
#endif


#ifdef do_ISO_Reinit
#ifndef carAlarmScreen
#error ISO reinit will not function when not displaying the car alarm screen (#define carAlarmScreen)
#endif
iso_init();
#endif
U should try to disable call to "displayAlarmScreen();" becouse init_iso() is handled at same time.

On my car it is not a problem, but i noticed that if i try to display more debug info on LCD during reinit process - it does not reinit any more.

if this works and you still want that "securyty message" u should allow call to displayAlarmScreen(); only then ISO_InitStep is 0.
smth like:
Code:
  if (ISO_InitStep == 0)
    displayAlarmScreen();
One more thing to try could be to increase time delay before starting init bit-bang:

initTime = currentTime + 3000;

to change it to:

initTime = currentTime + 5000;

or more then 5s.
  Reply With Quote
The Following User Says Thank You to eimix For This Useful Post:
m3ph (08-19-2010)