summaryrefslogtreecommitdiff
path: root/megalogger
diff options
context:
space:
mode:
Diffstat (limited to 'megalogger')
-rw-r--r--megalogger/config.h5
-rw-r--r--megalogger/megalogger.ino45
2 files changed, 34 insertions, 16 deletions
diff --git a/megalogger/config.h b/megalogger/config.h
index 881d7f2..ef36ce6 100644
--- a/megalogger/config.h
+++ b/megalogger/config.h
@@ -51,8 +51,8 @@
/**************************************
* Accelerometer & Gyro
**************************************/
-//#define USE_MPU6050 1
-#define USE_MPU9150 1
+#define USE_MPU6050 1
+//#define USE_MPU9150 1
#define ACC_DATA_RATIO 160
#define GYRO_DATA_RATIO 256
#define COMPASS_DATA_RATIO 8
@@ -62,6 +62,7 @@
**************************************/
#define OBD_MIN_INTERVAL 20 /* ms */
#define ACC_DATA_INTERVAL 200 /* ms */
+#define GUI_PID_LIST_DURATION 5 /* sec */
/**************************************
* LCD module (uncomment only one)
diff --git a/megalogger/megalogger.ino b/megalogger/megalogger.ino
index a228a4e..a9cb339 100644
--- a/megalogger/megalogger.ino
+++ b/megalogger/megalogger.ino
@@ -612,20 +612,37 @@ void showECUCap()
PID_EGR_ERROR, PID_COMMANDED_EVAPORATIVE_PURGE, PID_FUEL_LEVEL, PID_CONTROL_MODULE_VOLTAGE, PID_ABSOLUTE_ENGINE_LOAD, PID_AMBIENT_TEMP, PID_COMMANDED_THROTTLE_ACTUATOR, PID_ETHANOL_FUEL,
PID_FUEL_RAIL_PRESSURE, PID_HYBRID_BATTERY_PERCENTAGE, PID_ENGINE_OIL_TEMP, PID_FUEL_INJECTION_TIMING, PID_ENGINE_FUEL_RATE, PID_ENGINE_TORQUE_DEMANDED, PID_ENGINE_TORQUE_PERCENTAGE};
+ lcd.setFontSize(FONT_SIZE_SMALL);
lcd.setColor(RGB16_WHITE);
- lcd.setFontSize(FONT_SIZE_MEDIUM);
- for (byte i = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i += 2) {
- for (byte j = 0; j < 2; j++) {
- byte pid = pgm_read_byte(pidlist + i + j);
- lcd.setCursor(216 + j * 56 , i + 4);
- lcd.print((int)pid | 0x100, HEX);
- bool valid = obd.isValidPID(pid);
- if (valid) {
- lcd.setColor(RGB16_GREEN);
- lcd.draw(tick, 16, 16);
- lcd.setColor(RGB16_WHITE);
- }
- }
+ for (byte i = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++) {
+ byte pid = pgm_read_byte(pidlist + i);
+ lcd.setCursor(252, i + 4);
+ lcd.write('0');
+ lcd.print((int)pid | 0x100, HEX);
+ }
+ int values[sizeof(pidlist)];
+ bool scanned = false;
+ for (uint32_t t = millis(); millis() - t < GUI_PID_LIST_DURATION * 1000; ) {
+ for (byte i = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++) {
+ byte pid = pgm_read_byte(pidlist + i);
+ bool valid = obd.isValidPID(pid);
+ if (valid) {
+ int value;
+ if (obd.read(pid, value)) {
+ if (!scanned || value == values[i])
+ lcd.setColor(RGB16_CYAN);
+ else if (value > values[i])
+ lcd.setColor(RGB16_GREEN);
+ else
+ lcd.setColor(RGB16_RED);
+ lcd.setCursor(280 , i + 4);
+ byte n = lcd.print(value);
+ for (; n < 4; n++) lcd.print(' ');
+ values[i] = value;
+ }
+ }
+ }
+ scanned = true;
}
}
@@ -715,7 +732,7 @@ void testOut()
} else {
lcd.println("Timeout");
}
- delay(1000);
+ delay(500);
}
lcd.println();
}