From c0cbc2a31fc7f6f98bf1d18c3c5c3c77709d0607 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Mon, 21 Dec 2020 13:33:09 -0500 Subject: [PATCH] VR_HW_CHECK_MODE --- .../config/boards/proteus/board_configuration.cpp | 2 ++ firmware/controllers/trigger/trigger_central.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/firmware/config/boards/proteus/board_configuration.cpp b/firmware/config/boards/proteus/board_configuration.cpp index 0dbb1ee4b2..85096b765c 100644 --- a/firmware/config/boards/proteus/board_configuration.cpp +++ b/firmware/config/boards/proteus/board_configuration.cpp @@ -122,6 +122,8 @@ static void setupDefaultSensorInputs() { // set_trigger_input_pin 0 PE7 // GPIOE_7: "VR 1" engineConfiguration->triggerInputPins[0] = GPIOE_7; + // GPIOE_8: "VR 2" + engineConfiguration->camInputs[0] = GPIOE_8; #else // Digital channel 1 as default - others not set engineConfiguration->triggerInputPins[0] = GPIOC_6; diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 5c2197af3a..234caec65f 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -94,6 +94,20 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt DECLARE_ENGINE_ tc->vvtEventFallCounter++; } +#if VR_HW_CHECK_MODE + // some boards do not have hardware VR input LEDs which makes such boards harder to validate + // from experience we know that assembly mistakes happen and quality control is required + extern ioportid_t criticalErrorLedPort; + extern ioportmask_t criticalErrorLedPin; + + for (int i = 0 ; i < 100 ; i++) { + // turning pin ON and busy-waiting a bit + palWritePad(criticalErrorLedPort, criticalErrorLedPin, 1); + } + + palWritePad(criticalErrorLedPort, criticalErrorLedPin, 0); +#endif // VR_HW_CHECK_MODE + if (!CONFIG(displayLogicLevelsInEngineSniffer)) { addEngineSnifferEvent(PROTOCOL_VVT_NAME, front == TV_RISE ? PROTOCOL_ES_UP : PROTOCOL_ES_DOWN);