Skip to content

Commit 0eb8c3b

Browse files
committed
add factory led test
1 parent a2609c7 commit 0eb8c3b

File tree

2 files changed

+86
-1
lines changed

2 files changed

+86
-1
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
Copyright (c) 2025 Arduino SA
3+
4+
This Source Code Form is subject to the terms of the Mozilla Public
5+
License, v. 2.0. If a copy of the MPL was not distributed with this
6+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
7+
*/
8+
9+
#pragma once
10+
#include <Arduino.h>
11+
#include <ANetworkConfigurator_Config.h>
12+
13+
#ifdef BOARD_USE_NINA
14+
#include "WiFiNINA.h"
15+
#include "utility/wifi_drv.h"
16+
#endif
17+
18+
inline void LedFactoryTest() {
19+
#if defined(BOARD_HAS_RGB)
20+
#if defined(BOARD_USE_NINA)
21+
// MKR WiFi 1010, RP2040 Connect
22+
WiFiDrv::pinMode(GREEN_LED, OUTPUT);
23+
WiFiDrv::digitalWrite(GREEN_LED, LED_OFF);
24+
WiFiDrv::pinMode(BLUE_LED, OUTPUT);
25+
WiFiDrv::digitalWrite(BLUE_LED, LED_OFF);
26+
WiFiDrv::pinMode(RED_LED, OUTPUT);
27+
WiFiDrv::digitalWrite(RED_LED, LED_OFF);
28+
pinMode(LED_BUILTIN, OUTPUT);
29+
digitalWrite(LED_BUILTIN, LED_OFF);
30+
31+
for(uint8_t i = 0; i<2; i++){
32+
digitalWrite(LED_BUILTIN, LED_ON);
33+
WiFiDrv::digitalWrite(RED_LED, LED_ON);
34+
delay(300);
35+
digitalWrite(LED_BUILTIN, LED_OFF);
36+
WiFiDrv::digitalWrite(RED_LED, LED_OFF);
37+
WiFiDrv::digitalWrite(GREEN_LED, LED_ON);
38+
delay(300);
39+
digitalWrite(LED_BUILTIN, LED_ON);
40+
WiFiDrv::digitalWrite(GREEN_LED, LED_OFF);
41+
WiFiDrv::digitalWrite(BLUE_LED, LED_ON);
42+
delay(300);
43+
digitalWrite(LED_BUILTIN, LED_OFF);
44+
WiFiDrv::digitalWrite(BLUE_LED, LED_OFF);
45+
delay(200);
46+
}
47+
#else
48+
// Portenta H7, Giga, Nicla Vision, Portenta C33
49+
pinMode(GREEN_LED, OUTPUT);
50+
digitalWrite(GREEN_LED, LED_OFF);
51+
pinMode(RED_LED, OUTPUT);
52+
digitalWrite(RED_LED, LED_OFF);
53+
pinMode(BLUE_LED, OUTPUT);
54+
digitalWrite(BLUE_LED, LED_OFF);
55+
for(uint8_t i = 0; i<2; i++){
56+
digitalWrite(RED_LED, LED_ON);
57+
delay(300);
58+
digitalWrite(RED_LED, LED_OFF);
59+
digitalWrite(GREEN_LED, LED_ON);
60+
delay(300);
61+
digitalWrite(GREEN_LED, LED_OFF);
62+
digitalWrite(BLUE_LED, LED_ON);
63+
delay(300);
64+
digitalWrite(BLUE_LED, LED_OFF);
65+
delay(200);
66+
}
67+
#endif
68+
#else // Nano 33 IoT
69+
pinMode(LED_BUILTIN, OUTPUT);
70+
digitalWrite(LED_BUILTIN, LED_OFF);
71+
uint32_t start = millis();
72+
while(millis() - start < 2000) {
73+
digitalWrite(LED_BUILTIN, LED_ON);
74+
delay(300);
75+
digitalWrite(LED_BUILTIN, LED_OFF);
76+
delay(300);
77+
}
78+
#endif
79+
80+
}

examples/utility/Provisioning_2.0/Provisioning_2.0.ino

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#include <utility/SElementArduinoCloudDeviceId.h>
1515
#include <utility/SElementArduinoCloudCertificate.h>
1616
#include "utility/LEDFeedback.h"
17-
17+
#include "FactoryTester.h"
1818
const char *SKETCH_VERSION = "0.4.1";
1919

2020
enum class DeviceState {
@@ -57,6 +57,11 @@ void setup() {
5757
setDebugMessageLevel(4);
5858

5959
initProperties();
60+
61+
#if !defined(ARDUINO_OPTA) && !defined(ARDUINO_UNOR4_WIFI)
62+
LedFactoryTest();
63+
#endif
64+
6065
AgentsManagerClass::getInstance().begin();
6166
LEDFeedbackClass::getInstance().begin();
6267
DEBUG_INFO("Starting Provisioning version %s", SKETCH_VERSION);

0 commit comments

Comments
 (0)