diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp
index 00dee14916..8301fa3343 100644
--- a/firmware/config/engines/mazda_miata.cpp
+++ b/firmware/config/engines/mazda_miata.cpp
@@ -313,7 +313,7 @@ void setMiata1996(engine_configuration_s *engineConfiguration, board_configurati
engineConfiguration->mafAdcChannel = EFI_ADC_1;
- engineConfiguration->cltAdcChannel = EFI_ADC_3;
+ engineConfiguration->cltAdcChannel = EFI_ADC_11;
engineConfiguration->tpsAdcChannel = EFI_ADC_13;
boardConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3
diff --git a/firmware/controllers/algo/algo.mk b/firmware/controllers/algo/algo.mk
index 6134d64b17..98edfd674e 100644
--- a/firmware/controllers/algo/algo.mk
+++ b/firmware/controllers/algo/algo.mk
@@ -3,7 +3,6 @@ CONTROLLERS_ALGO_SRC = $(PROJECT_DIR)/controllers/algo/map_adjuster.c \
$(PROJECT_DIR)/controllers/algo/signal_executor.c \
$(PROJECT_DIR)/controllers/algo/malfunction_central.c \
$(PROJECT_DIR)/controllers/algo/idle_controller.c \
- $(PROJECT_DIR)/controllers/algo/wave_chart.c \
$(PROJECT_DIR)/controllers/algo/nmea.c
CONTROLLERS_ALGO_SRC_CPP = $(PROJECT_DIR)/controllers/algo/OutputSignalArray.cpp \
@@ -14,5 +13,6 @@ CONTROLLERS_ALGO_SRC_CPP = $(PROJECT_DIR)/controllers/algo/OutputSignalArray.cpp
$(PROJECT_DIR)/controllers/algo/engine.cpp \
$(PROJECT_DIR)/controllers/algo/event_registry.cpp \
$(PROJECT_DIR)/controllers/algo/algo.cpp \
+ $(PROJECT_DIR)/controllers/algo/wave_chart.cpp \
$(PROJECT_DIR)/controllers/algo/enum_strings.cpp
diff --git a/firmware/controllers/algo/wave_chart.c b/firmware/controllers/algo/wave_chart.cpp
similarity index 99%
rename from firmware/controllers/algo/wave_chart.c
rename to firmware/controllers/algo/wave_chart.cpp
index df56e2fb5c..f681f0efc2 100644
--- a/firmware/controllers/algo/wave_chart.c
+++ b/firmware/controllers/algo/wave_chart.cpp
@@ -1,5 +1,5 @@
/**
- * @file wave_chart.c
+ * @file wave_chart.cpp
* @brief Dev console wave sniffer logic
*
* Here we have our own build-in logic analyzer. The data we aggregate here is sent to the
diff --git a/firmware/controllers/algo/wave_chart.h b/firmware/controllers/algo/wave_chart.h
index c72b6509ed..551d54177a 100644
--- a/firmware/controllers/algo/wave_chart.h
+++ b/firmware/controllers/algo/wave_chart.h
@@ -18,19 +18,15 @@
/**
* @brief Dev console sniffer data buffer
*/
-typedef struct {
+class WaveChart {
+public:
#if EFI_WAVE_CHART
Logging logging;
#endif /* EFI_WAVE_CHART */
int counter;
int startTime;
volatile int isInitialized;
-} WaveChart;
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
+};
void addWaveChartEvent3(WaveChart *chart, const char *name, const char *msg, const char *msg2);
void publishChart(WaveChart *chart);
@@ -38,11 +34,6 @@ void initWaveChart(WaveChart *chart);
void showWaveChartHistogram(void);
void resetWaveChart(WaveChart *chart);
void setChartSize(int newSize);
-//int isWaveChartFull(WaveChart *chart);
void publishChartIfFull(WaveChart *chart);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
#endif /* WAVE_CHART_H_ */
diff --git a/firmware/iar/ch.ewp b/firmware/iar/ch.ewp
index 14f628c257..832fe996b6 100644
--- a/firmware/iar/ch.ewp
+++ b/firmware/iar/ch.ewp
@@ -2197,7 +2197,7 @@
$PROJ_DIR$\..\controllers\algo\signal_executor.h
- $PROJ_DIR$\..\controllers\algo\wave_chart.c
+ $PROJ_DIR$\..\controllers\algo\wave_chart.cpp
$PROJ_DIR$\..\controllers\algo\wave_chart.h