rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
board_configuration.cpp
Go to the documentation of this file.
1/**
2 * @file boards/hellen/hellen121nissan/board_configuration.cpp
3 *
4 * All fabricated boards use 144 pin MCU
5 *
6 * @brief Configuration defaults for the hellen121nissan board
7 *
8 * See https://rusefi.com/s/hellen121nissan
9 *
10 * @author andreika <prometheus.pcb@gmail.com>
11 * @author Andrey Belomutskiy, (c) 2012-2020
12 */
13
14#include "pch.h"
15#include "defaults.h"
16#include "hellen_meta.h"
17#include "board_overrides.h"
18
19static void setInjectorPins() {
20 engineConfiguration->injectionPins[0] = Gpio::H144_LS_1;
21 engineConfiguration->injectionPins[1] = Gpio::H144_LS_2;
22 engineConfiguration->injectionPins[2] = Gpio::H144_LS_3;
23 engineConfiguration->injectionPins[3] = Gpio::H144_LS_4;
24 engineConfiguration->injectionPins[4] = Gpio::H144_LS_5;
25 engineConfiguration->injectionPins[5] = Gpio::H144_LS_6;
26}
27
28static void setIgnitionPins() {
29 engineConfiguration->ignitionPins[0] = Gpio::H144_IGN_1;
30 engineConfiguration->ignitionPins[1] = Gpio::H144_IGN_2;
31 engineConfiguration->ignitionPins[2] = Gpio::H144_IGN_3;
32 engineConfiguration->ignitionPins[3] = Gpio::H144_IGN_4;
33 engineConfiguration->ignitionPins[4] = Gpio::H144_IGN_5;
34 engineConfiguration->ignitionPins[5] = Gpio::H144_IGN_6;
35}
36
38 // trigger inputs
39 engineConfiguration->triggerInputPins[0] = Gpio::H144_IN_CRANK;
40 engineConfiguration->triggerInputPins[1] = Gpio::Unassigned;
41 // Direct hall-only cam input
42 engineConfiguration->camInputs[0] = Gpio::H144_IN_CAM;
43 // todo: remove from default since 4 cylinder does not use it
44 // todo: this requires unit test change
45 engineConfiguration->camInputs[1 * CAMS_PER_BANK] = Gpio::H144_ORIGINAL_MCU_IN_D_AUX4;
46
47 setTPS1Inputs(H144_IN_TPS, H144_IN_AUX1_ANALOG);
48
49 setPPSInputs(H144_IN_PPS, EFI_ADC_14);
50 engineConfiguration->mafAdcChannel = H144_IN_O2S;
51 engineConfiguration->map.sensor.hwChannel = H144_IN_MAP2;
52
53 engineConfiguration->clt.adcChannel = H144_IN_CLT;
54
55 engineConfiguration->iat.adcChannel = H144_IN_IAT;
56}
57
61
62 engineConfiguration->etbIo[0].directionPin1 = Gpio::H144_OUT_PWM7;
63 engineConfiguration->etbIo[0].directionPin2 = Gpio::H144_OUT_PWM6;
64 engineConfiguration->etbIo[0].controlPin = Gpio::D13; // ETB_EN out_pwm1
65 engineConfiguration->etb_use_two_wires = true;
66
68}
69
70/**
71 * @brief Board-specific configuration defaults.
72 *
73
74 *
75
76 */
80
81 engineConfiguration->displayLogicLevelsInEngineSniffer = true;
82
83 engineConfiguration->enableSoftwareKnock = true;
84 engineConfiguration->canNbcType = CAN_BUS_NBC_NONE; // none because handled by Lua!
85
87
88 engineConfiguration->fuelPumpPin = Gpio::D12; // OUT_IO9 // 113 Fuel Pump Relay
89 engineConfiguration->idle.solenoidPin = Gpio::Unassigned;
90// engineConfiguration->fanPin = Gpio::D12; // OUT_PWM8
91 engineConfiguration->mainRelayPin = Gpio::H144_OUT_IO3;
92
93 // "required" hardware is done - set some reasonable defaults
95
96
97 // Some sensible defaults for other options
99
100// setAlgorithm(engine_load_mode_e::LM_SPEED_DENSITY);
101 // at least this starts
102 engineConfiguration->fuelAlgorithm = engine_load_mode_e::LM_ALPHA_N;
103
104 engineConfiguration->cranking.rpm = 400;
105 engineConfiguration->fanOnTemperature = 85;
106 engineConfiguration->fanOffTemperature = 81;
107
108 engineConfiguration->cutFuelOnHardLimit = false;
109 engineConfiguration->idlePidRpmUpperLimit = 300;
110 engineConfiguration->mapErrorDetectionTooLow = 10;
111
112
113 // Bosch VQ40 VR56 VK56 0280158007
114 engineConfiguration->injector.flow = 296.2;
115
116 strcpy(engineConfiguration->engineMake, ENGINE_MAKE_NISSAN);
117
118 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK
119 engineConfiguration->injectionMode = IM_SEQUENTIAL;
120
121 engineConfiguration->luaOutputPins[0] = Gpio::H144_OUT_IO4; // 104 ETB Relay
122 engineConfiguration->luaOutputPins[1] = Gpio::H144_OUT_PWM2; // aux LS1, upstream oxygen heaters
123
124 setPPSCalibration(0.75, 4.45, 0.43, 2.20);
125
126 engineConfiguration->startUpFuelPumpDuration = 4;
127
128 setEtbPID(6.1350, 87.7182, 0.0702);
129
130 // this calibration reminds me of VAG just flipped?
131 engineConfiguration->tpsMin = 100;
132 engineConfiguration->tpsMax = 889;
133
134 engineConfiguration->tps1SecondaryMin = 891;
135 engineConfiguration->tps1SecondaryMax = 102;
136 hellenWbo();
137}
138
139static Gpio OUTPUTS[] = {
140 Gpio::G14, // 111 Main Relay
141 Gpio::D12, // 113 Fuel Pump Relay
142 Gpio::D9, // 21 - INJ_5
143 Gpio::D11, // 22 - INJ_3
144 Gpio::G7, // 23 - INJ_1
145 Gpio::F12, // 40 - INJ_6
146 Gpio::D10, // 41 - INJ_4
147 Gpio::G8, // 42 - INJ_2
148 Gpio::F13, // 10 - VTC Left
149 Gpio::F14, // 11 - VTC Right
150};
151
153 return efi::size(OUTPUTS);
154}
155
157 return OUTPUTS;
158}
159
161 return 1;
162}
163
void setup_custom_board_overrides()
@ Unassigned
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2)
void setTPS1Inputs(adc_channel_e tps1, adc_channel_e tps2)
void setEtbPID(float p, float i, float d)
void setPPSCalibration(float primaryUp, float primaryDown, float secondaryUp, float secondaryDown)
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
void setCrankOperationMode()
static constexpr engine_configuration_s * engineConfiguration
static void setupDefaultSensorInputs()
static Gpio OUTPUTS[]
static void setIgnitionPins()
int getBoardMetaOutputsCount()
Gpio * getBoardMetaOutputs()
static void setInjectorPins()
int getBoardMetaDcOutputsCount()
static void hellen121_nissan_boardDefaultConfiguration()
Board-specific configuration defaults.
static void hellen121_nissan_boardConfigOverrides()
void setHellenCan()
void hellenWbo()
void setHellenVbatt()
void setDefaultHellenAtPullUps(float pullup=HELLEN_DEFAULT_AT_PULLUP)
void setHellenSdCardSpi3()