diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp
index 957940104d..b3d03c4e95 100644
--- a/firmware/controllers/algo/auto_generated_enums.cpp
+++ b/firmware/controllers/algo/auto_generated_enums.cpp
@@ -153,6 +153,8 @@ case TT_DODGE_RAM:
return "TT_DODGE_RAM";
case TT_UNUSED:
return "TT_UNUSED";
+case TT_NISSAN:
+ return "TT_NISSAN";
}
return NULL;
}
diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h
index 9a48389dd6..fec1cd18e9 100644
--- a/firmware/controllers/algo/rusefi_enums.h
+++ b/firmware/controllers/algo/rusefi_enums.h
@@ -149,7 +149,9 @@ typedef enum {
TT_36_2_2_2 = 23,
- TT_UNUSED = 24, // this is used if we want to iterate over all trigger types
+ TT_NISSAN = 24,
+
+ TT_UNUSED = 25, // this is used if we want to iterate over all trigger types
Force_4b_trigger_type = ENUM_32_BITS,
} trigger_type_e;
diff --git a/firmware/controllers/trigger/trigger.mk b/firmware/controllers/trigger/trigger.mk
index 90a45533e7..6446aa0a38 100644
--- a/firmware/controllers/trigger/trigger.mk
+++ b/firmware/controllers/trigger/trigger.mk
@@ -8,6 +8,7 @@ TRIGGER_DECODERS_SRC_CPP = \
$(PROJECT_DIR)/controllers/trigger/trigger_structure.cpp \
$(PROJECT_DIR)/controllers/trigger/trigger_decoder.cpp \
$(PROJECT_DIR)/controllers/trigger/trigger_mitsubishi.cpp \
+ $(PROJECT_DIR)/controllers/trigger/trigger_nissan.cpp \
$(PROJECT_DIR)/controllers/trigger/trigger_subaru.cpp \
$(PROJECT_DIR)/controllers/trigger/trigger_gm.cpp
diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp
index 53bedac211..74efde63c6 100644
--- a/firmware/controllers/trigger/trigger_decoder.cpp
+++ b/firmware/controllers/trigger/trigger_decoder.cpp
@@ -31,6 +31,7 @@
#include "trigger_bmw.h"
#include "trigger_mitsubishi.h"
#include "trigger_subaru.h"
+#include "trigger_nissan.h"
#include "auto_generated_enums.h"
#include "trigger_structure.h"
#include "efiGpio.h"
@@ -478,6 +479,10 @@ void TriggerShape::initializeTriggerShape(Logging *logger DECLARE_ENGINE_PARAMET
initialize36_2_2_2(triggerShape);
break;
+ case TT_NISSAN:
+ initializeNissan(triggerShape);
+ break;
+
default:
firmwareError("initializeTriggerShape() not implemented: %d", triggerConfig->type);
;
diff --git a/firmware/controllers/trigger/trigger_nissan.cpp b/firmware/controllers/trigger/trigger_nissan.cpp
new file mode 100644
index 0000000000..51f1981442
--- /dev/null
+++ b/firmware/controllers/trigger/trigger_nissan.cpp
@@ -0,0 +1,12 @@
+/**
+ * @file trigger_nissan.cpp
+ *
+ * @date Sep 19, 2015
+ * @author Andrey Belomutskiy, (c) 2012-2015
+ */
+
+#include "trigger_nissan.h"
+
+void initializeNissan(TriggerShape *s) {
+
+}
diff --git a/firmware/controllers/trigger/trigger_nissan.h b/firmware/controllers/trigger/trigger_nissan.h
new file mode 100644
index 0000000000..dfd4f89f0f
--- /dev/null
+++ b/firmware/controllers/trigger/trigger_nissan.h
@@ -0,0 +1,15 @@
+/**
+ * @file trigger_nissan.h
+ *
+ * @date Sep 19, 2015
+ * @author Andrey Belomutskiy, (c) 2012-2015
+ */
+
+#ifndef CONTROLLERS_TRIGGER_TRIGGER_NISSAN_H_
+#define CONTROLLERS_TRIGGER_TRIGGER_NISSAN_H_
+
+#include "trigger_structure.h"
+
+void initializeNissan(TriggerShape *s);
+
+#endif /* CONTROLLERS_TRIGGER_TRIGGER_NISSAN_H_ */
diff --git a/firmware/iar/ch.ewp b/firmware/iar/ch.ewp
index 2a806833b2..0edb9392ab 100644
--- a/firmware/iar/ch.ewp
+++ b/firmware/iar/ch.ewp
@@ -2477,6 +2477,12 @@
$PROJ_DIR$\..\controllers\trigger\trigger_mitsubishi.h
+
+ $PROJ_DIR$\..\controllers\trigger\trigger_nissan.cpp
+
+
+ $PROJ_DIR$\..\controllers\trigger\trigger_nissan.h
+
$PROJ_DIR$\..\controllers\trigger\trigger_structure.cpp
diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp
index c126c6e66d..d8fe86bc7d 100644
--- a/firmware/rusefi.cpp
+++ b/firmware/rusefi.cpp
@@ -275,5 +275,5 @@ int getRusEfiVersion(void) {
return 123; // this is here to make the compiler happy about the unused array
if (UNUSED_CCM_SIZE[0] * 0 != 0)
return 3211; // this is here to make the compiler happy about the unused array
- return 20150915;
+ return 20150919;
}