auto-sync

This commit is contained in:
rusEfi 2015-02-14 23:04:03 -06:00
parent 53b7ad7a83
commit 3873a40046
3 changed files with 43 additions and 29 deletions

View File

@ -229,6 +229,10 @@ void setMiata1990(engine_configuration_s *engineConfiguration) {
// todo: idleValvePin // todo: idleValvePin
} }
/**
* pin 1I/W9 - extra +5v
*/
void setFordEscortGt(engine_configuration_s *engineConfiguration) { void setFordEscortGt(engine_configuration_s *engineConfiguration) {
board_configuration_s *boardConfiguration = &engineConfiguration->bc; board_configuration_s *boardConfiguration = &engineConfiguration->bc;
engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4; engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4;
@ -238,8 +242,13 @@ void setFordEscortGt(engine_configuration_s *engineConfiguration) {
setFrankenso_01_LCD(boardConfiguration); setFrankenso_01_LCD(boardConfiguration);
setFrankenso0_1_joystick(engineConfiguration); setFrankenso0_1_joystick(engineConfiguration);
setDensoTODO(engineConfiguration);
engineConfiguration->globalFuelCorrection = 0.75;
engineConfiguration->specs.displacement = 1.839; engineConfiguration->specs.displacement = 1.839;
engineConfiguration->algorithm = LM_PLAIN_MAF; // engineConfiguration->algorithm = LM_PLAIN_MAF;
engineConfiguration->algorithm = LM_SPEED_DENSITY;
// engineConfiguration->algorithm = LM_REAL_MAF;
boardConfiguration->tunerStudioSerialSpeed = 9600; boardConfiguration->tunerStudioSerialSpeed = 9600;
setFuelLoadBin(engineConfiguration, 1.2, 4.4); setFuelLoadBin(engineConfiguration, 1.2, 4.4);
@ -260,21 +269,30 @@ void setFordEscortGt(engine_configuration_s *engineConfiguration) {
engineConfiguration->injector.flow = 265; engineConfiguration->injector.flow = 265;
engineConfiguration->hasBaroSensor = false; engineConfiguration->hasBaroSensor = false;
engineConfiguration->hasMapSensor = true; engineConfiguration->hasMapSensor = true;
boardConfiguration->isFastAdcEnabled = true;
engineConfiguration->map.sensor.type = MT_DENSO183; engineConfiguration->map.sensor.type = MT_DENSO183;
engineConfiguration->map.sensor.hwChannel = EFI_ADC_4;
// set_global_trigger_offset_angle 659 initEgoSensor(&engineConfiguration->afr, ES_BPSX_D1);
engineConfiguration->globalTriggerAngleOffset = 0; engineConfiguration->afr.hwChannel = EFI_ADC_2;
// set_ignition_offset 170
// set_global_trigger_offset_angle -40
engineConfiguration->globalTriggerAngleOffset = -40;
// set_ignition_offset 0
engineConfiguration->ignitionBaseAngle = 0; engineConfiguration->ignitionBaseAngle = 0;
// set_injection_offset 510 // set_injection_offset 0
engineConfiguration->injectionAngle = 135; engineConfiguration->injectionAngle = 0;
engineConfiguration->crankingTimingAngle = 10; // set_cranking_timing_angle 3
engineConfiguration->crankingTimingAngle = 3;
engineConfiguration->crankingChargeAngle = 70; engineConfiguration->crankingChargeAngle = 70;
setWholeTimingTable(engineConfiguration, 10); setWholeTimingTable(engineConfiguration, 10);
// set_whole_fuel_map 5
setWholeFuelMap(engineConfiguration, 5);
setSingleCoilDwell(engineConfiguration); setSingleCoilDwell(engineConfiguration);
engineConfiguration->ignitionMode = IM_ONE_COIL; engineConfiguration->ignitionMode = IM_ONE_COIL;
@ -297,18 +315,16 @@ void setFordEscortGt(engine_configuration_s *engineConfiguration) {
// Frankenso low out #4: // Frankenso low out #4:
// Frankenso low out #5: PE3 // Frankenso low out #5: PE3
// Frankenso low out #6: PE4 // Frankenso low out #6: PE4
// Frankenso low out #7: PE0<>PD5 INJ 1&3 // Frankenso low out #7: PE0<>PD5
// Frankenso low out #8: PE2 INJ // Frankenso low out #8: PE2 INJ
// Frankenso low out #9: PB9 IDLE // Frankenso low out #9: PB9 IDLE
// Frankenso low out #10: PE1<>PD3 // Frankenso low out #10: PE1<>PD3 INJ 1&3
// Frankenso low out #11: PB8 // Frankenso low out #11: PB8
// Frankenso low out #12: PB7 // Frankenso low out #12: PB7
boardConfiguration->injectionPins[0] = GPIOD_5; boardConfiguration->injectionPins[0] = GPIOD_3;
boardConfiguration->injectionPins[1] = GPIOE_2; boardConfiguration->injectionPins[1] = GPIOE_2;
// set_whole_fuel_map 5
setWholeFuelMap(engineConfiguration, 5);
//setDefaultCrankingFuel(engineConfiguration); //setDefaultCrankingFuel(engineConfiguration);
engineConfiguration->cranking.baseFuel = 5; engineConfiguration->cranking.baseFuel = 5;
@ -328,7 +344,8 @@ void setFordEscortGt(engine_configuration_s *engineConfiguration) {
setCommonNTCSensor(&engineConfiguration->iat); setCommonNTCSensor(&engineConfiguration->iat);
engineConfiguration->iat.bias_resistor = 2700; engineConfiguration->iat.bias_resistor = 2700;
engineConfiguration->tpsAdcChannel = EFI_ADC_2; engineConfiguration->hasTpsSensor = false;
engineConfiguration->tpsAdcChannel = EFI_ADC_NONE;
// engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; // engineConfiguration->map.sensor.hwChannel = EFI_ADC_4;
engineConfiguration->mafAdcChannel = EFI_ADC_0; engineConfiguration->mafAdcChannel = EFI_ADC_0;
engineConfiguration->cltAdcChannel = EFI_ADC_12; engineConfiguration->cltAdcChannel = EFI_ADC_12;

View File

@ -19,14 +19,9 @@ import static com.rusefi.TestingUtils.*;
public class AutoTest { public class AutoTest {
private static void mainTestBody() { private static void mainTestBody() {
testFordAspire(); testFordAspire();
testMazdaProtege(); testMazdaProtege();
test1995DodgeNeon(); test1995DodgeNeon();
sendCommand("set_engine_type 7");
testFord6(); testFord6();
testFordFiesta(); testFordFiesta();
} }
@ -36,20 +31,20 @@ public class AutoTest {
IoUtil.changeRpm(200); IoUtil.changeRpm(200);
String msg = "ProtegeLX cranking"; String msg = "ProtegeLX cranking";
chart = nextChart(); chart = nextChart();
double x = 100; double x = 107;
assertWave(msg, chart, WaveChart.SPARK_1, 0.194433, x, x + 180, x + 360, x + 540); assertWave(msg, chart, WaveChart.SPARK_1, 0.194433, x, x + 180, x + 360, x + 540);
x = 135; x = 0;
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.00626666, x, x + 180, x + 360, x + 540); assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.004666666666, x, x + 180, x + 360, x + 540);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.00626666, x, x + 180, x + 360, x + 540); assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.004666666666, x, x + 180, x + 360, x + 540);
msg = "ProtegeLX running"; msg = "ProtegeLX running";
IoUtil.changeRpm(2000); IoUtil.changeRpm(2000);
chart = nextChart(); chart = nextChart();
x = 121; x = 121;
assertWave(msg, chart, WaveChart.SPARK_1, 0.13333333333333333, x, x + 180, x + 360, x + 540); assertWave(msg, chart, WaveChart.SPARK_1, 0.13333333333333333, x, x + 180, x + 360, x + 540);
x = 135; x = 0;
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.11733333333333336, x + 180, x + 540); assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.09766666666666689, x + 180, x + 540);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.11733333333333336, x, x + 360); assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.09766666666666689, x, x + 360);
} }
private static void test1995DodgeNeon() { private static void test1995DodgeNeon() {
@ -96,6 +91,7 @@ public class AutoTest {
} }
private static void testFord6() { private static void testFord6() {
sendCommand("set_engine_type 7");
WaveChart chart; WaveChart chart;
IoUtil.changeRpm(2000); IoUtil.changeRpm(2000);
chart = nextChart(); chart = nextChart();
@ -113,7 +109,8 @@ public class AutoTest {
} }
private static void testFordAspire() { private static void testFordAspire() {
String msg = "Aspire"; sendCommand("set_engine_type 3");
String msg;
WaveChart chart; WaveChart chart;
// todo: interesting changeRpm(100); // todo: interesting changeRpm(100);
sendCommand("set_cranking_rpm 500"); sendCommand("set_cranking_rpm 500");

View File

@ -29,7 +29,7 @@ public class TestingUtils {
} }
private static double fixAngle(double angle) { private static double fixAngle(double angle) {
while (angle > 720) while (angle >= 720)
angle -= 720; angle -= 720;
return angle; return angle;
} }
@ -72,7 +72,7 @@ public class TestingUtils {
for (WaveReport.UpDown ud : wr) { for (WaveReport.UpDown ud : wr) {
int eventTime = rise ? ud.upTime : ud.downTime; int eventTime = rise ? ud.upTime : ud.downTime;
double angleByTime = revolutionLog.getCrankAngleByTime(eventTime); double angleByTime = revolutionLog.getCrankAngleByTime(eventTime);
assertCloseEnough(msg + " angle for " + key + "@" + eventTime, angleByTime, expectedAngles); assertCloseEnough(msg + " angle for " + key + "@" + eventTime, fixAngle(angleByTime), expectedAngles);
assertCloseEnough(msg + "width for " + key, ud.getDutyCycle(revolutionLog), width); assertCloseEnough(msg + "width for " + key, ud.getDutyCycle(revolutionLog), width);
} }