rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
config
boards
s105
board_configuration.cpp
Go to the documentation of this file.
1
#include "
pch.h
"
2
#include "
board_overrides.h
"
3
4
/**
5
* @brief Board-specific configuration defaults.
6
7
*/
8
9
/* NOTE:
10
* All outputs are in open drain mode as pull-up to 5V is
11
* used as level shifter for MOSFETs/IGBTs */
12
13
static
void
setInjectorPins
() {
14
engineConfiguration
->injectionPins[0] =
Gpio::D8
;
15
engineConfiguration
->injectionPins[1] =
Gpio::D9
;
16
engineConfiguration
->injectionPins[2] =
Gpio::D10
;
17
engineConfiguration
->injectionPins[3] =
Gpio::D11
;
18
19
engineConfiguration
->injectionPinMode = OM_OPENDRAIN;
20
}
21
22
Gpio
getWarningLedPin
() {
23
// this board has no warning led
24
return
Gpio::Unassigned
;
25
}
26
27
Gpio
getCommsLedPin
() {
28
// this board has no comms led
29
return
Gpio::Unassigned
;
30
}
31
32
Gpio
getRunningLedPin
() {
33
return
Gpio::Unassigned
;
34
}
35
36
static
void
setIgnitionPins
() {
37
engineConfiguration
->ignitionPins[0] =
Gpio::D13
;
38
engineConfiguration
->ignitionPins[1] =
Gpio::D12
;
39
engineConfiguration
->ignitionPins[2] =
Gpio::D15
;
40
engineConfiguration
->ignitionPins[3] =
Gpio::D14
;
41
42
engineConfiguration
->ignitionPinMode = OM_OPENDRAIN;
43
}
44
45
static
void
s105_boardDefaultConfiguration
() {
46
setInjectorPins
();
47
setIgnitionPins
();
48
49
strcpy(
engineConfiguration
->engineMake,
"UAZ"
);
50
strcpy(
engineConfiguration
->engineCode,
"451"
);
51
52
// No LEDs on this board, do we need some unused pin tp toggle? PC14 of LSI did not work for blinking, any better alternatives?
53
54
engineConfiguration
->malfunctionIndicatorPin =
Gpio::E14
;
55
engineConfiguration
->malfunctionIndicatorPinMode = OM_OPENDRAIN;
56
engineConfiguration
->tachOutputPin =
Gpio::B8
;
/* not populated by default */
57
engineConfiguration
->tachOutputPinMode = OM_OPENDRAIN;
58
//engineConfiguration->idle.solenoidPin = ?
59
engineConfiguration
->idle.solenoidPinMode = OM_OPENDRAIN;
60
engineConfiguration
->fanPin =
Gpio::D6
;
/* not populated by default */
61
engineConfiguration
->fanPinMode = OM_OPENDRAIN;
62
//engineConfiguration->mainRelayPin = ?;
63
engineConfiguration
->mainRelayPinMode = OM_OPENDRAIN;
64
65
engineConfiguration
->cylindersCount = 4;
66
engineConfiguration
->firingOrder = FO_1_2_4_3;
67
68
engineConfiguration
->ignitionMode = IM_WASTED_SPARK;
69
engineConfiguration
->crankingInjectionMode = IM_SIMULTANEOUS;
70
engineConfiguration
->injectionMode = IM_SEQUENTIAL;
71
72
engineConfiguration
->verboseCan =
true
;
73
74
engineConfiguration
->tps1_1AdcChannel = EFI_ADC_1;
75
engineConfiguration
->mafAdcChannel = EFI_ADC_11;
76
engineConfiguration
->map.sensor.hwChannel = EFI_ADC_0;
77
engineConfiguration
->afr.hwChannel = EFI_ADC_NONE;
78
engineConfiguration
->clt.adcChannel = EFI_ADC_3;
79
engineConfiguration
->iat.adcChannel = EFI_ADC_14;
80
engineConfiguration
->triggerInputPins[0] =
Gpio::B10
;
81
}
82
83
static
void
setupVbatt
() {
84
// There are two different input dividers:
85
// 22K (high) + 22K (low) on IAT and CLT
86
// 22K (high) + 41.2K (low) on TPS and MAP
87
engineConfiguration
->analogInputDividerCoefficient = (22.0 + 22.0) / 22.0;
88
// TODO: TPS and MAP
89
//engineConfiguration->analogInputDividerCoefficient = (22.0 + 41.2) / 22.0;
90
91
// 68K + 6.8k
92
engineConfiguration
->vbattDividerCoeff = (68 + 6.8) / 6.8;
93
94
// pin input +12 from Main Relay
95
engineConfiguration
->vbattAdcChannel = EFI_ADC_9;
96
97
engineConfiguration
->adcVcc = 3.3f;
98
}
99
100
static
void
s105_boardConfigOverrides
() {
101
setupVbatt
();
102
103
//1.5K
104
engineConfiguration
->clt.config.bias_resistor = 1500;
105
engineConfiguration
->iat.config.bias_resistor = 1500;
106
107
//CAN 1 bus overwrites
108
engineConfiguration
->canRxPin =
Gpio::A11
;
109
engineConfiguration
->canTxPin =
Gpio::A12
;
110
}
111
112
float
getAnalogInputDividerCoefficient
(
adc_channel_e
hwChannel) {
113
switch
(hwChannel) {
114
/* MAP, TPS, MAF (na), AC press (na) */
115
case
EFI_ADC_0:
116
case
EFI_ADC_1:
117
case
EFI_ADC_11:
118
case
EFI_ADC_6:
119
return
(22.0 + 41.2) / 41.2;
120
121
/* IAT, CLT */
122
case
EFI_ADC_3:
123
case
EFI_ADC_14:
124
/* no divider, 1.5K pull-up to 3.3V, 22K pull-down */
125
/* TODO: handle both pull-up and pull-down */
126
return
1.0;
127
128
/* AFR 1, AFR 2 (na), knock (TBD) */
129
case
EFI_ADC_7:
130
case
EFI_ADC_5:
131
case
EFI_ADC_2:
132
/* no divider */
133
return
1.0;
134
135
/* +12 sense, Ignition switch */
136
case
EFI_ADC_9:
137
case
EFI_ADC_8:
138
return
(68.0 + 6.8) / 6.8;
139
140
/* 5V feedback */
141
case
EFI_ADC_10:
142
return
(10.0 + 10.0) / 10.0;
143
144
/* Ignition feedback */
145
case
EFI_ADC_12:
146
case
EFI_ADC_13:
147
/* TBD */
148
return
1.0;
149
150
default
:
151
return
engineConfiguration
->analogInputDividerCoefficient;
152
}
153
return
engineConfiguration
->analogInputDividerCoefficient;
154
}
155
156
void
setup_custom_board_overrides
() {
157
custom_board_DefaultConfiguration
=
s105_boardDefaultConfiguration
;
158
custom_board_ConfigOverrides
=
s105_boardConfigOverrides
;
159
}
getWarningLedPin
Gpio getWarningLedPin()
Definition
board_configuration.cpp:11
getCommsLedPin
Gpio getCommsLedPin()
Definition
board_configuration.cpp:3
getRunningLedPin
Gpio getRunningLedPin()
Definition
board_configuration.cpp:7
setup_custom_board_overrides
void setup_custom_board_overrides()
Definition
board_configuration.cpp:40
board_overrides.h
Gpio
Gpio
Definition
rusefi_hw_enums.h:14
Gpio::A12
@ A12
Gpio::D15
@ D15
Gpio::Unassigned
@ Unassigned
Gpio::B10
@ B10
Gpio::E14
@ E14
Gpio::D12
@ D12
Gpio::D10
@ D10
Gpio::D9
@ D9
Gpio::D8
@ D8
Gpio::D14
@ D14
Gpio::D13
@ D13
Gpio::D11
@ D11
Gpio::B8
@ B8
Gpio::D6
@ D6
Gpio::A11
@ A11
custom_board_ConfigOverrides
std::optional< setup_custom_board_overrides_type > custom_board_ConfigOverrides
Definition
engine_configuration.cpp:71
custom_board_DefaultConfiguration
std::optional< setup_custom_board_overrides_type > custom_board_DefaultConfiguration
Definition
engine_configuration.cpp:70
engineConfiguration
static constexpr engine_configuration_s * engineConfiguration
Definition
engine_configuration.h:81
setIgnitionPins
static void setIgnitionPins()
Definition
board_configuration.cpp:35
setInjectorPins
static void setInjectorPins()
Definition
board_configuration.cpp:23
setupVbatt
static void setupVbatt()
Definition
board_configuration.cpp:54
pch.h
adc_channel_e
adc_channel_e
Definition
rusefi_hw_adc_enums.h:60
getAnalogInputDividerCoefficient
float getAnalogInputDividerCoefficient(adc_channel_e hwChannel)
Definition
board_configuration.cpp:112
s105_boardDefaultConfiguration
static void s105_boardDefaultConfiguration()
Definition
board_configuration.cpp:45
s105_boardConfigOverrides
static void s105_boardConfigOverrides()
Definition
board_configuration.cpp:100
Generated on Sat Dec 13 2025 01:49:58 for rusEFI by
1.9.8