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;
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);
52
53 engineConfiguration->clt.adcChannel = H144_IN_CLT;
54
55 engineConfiguration->iat.adcChannel = H144_IN_IAT;
56}
57
69
70/**
71 * @brief Board-specific configuration defaults.
72 *
73 * See also setDefaultEngineConfiguration
74 *
75
76 */
80
82
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
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
107
111
112
113 // Bosch VQ40 VR56 VK56 0280158007
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
127
128 setEtbPID(6.1350, 87.7182, 0.0702);
129
130 // this calibration reminds me of VAG just flipped?
133
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()
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]