@@ -52,6 +52,8 @@ bool WiFiNetwork::isConnected() const {
5252
5353void WiFiNetwork::setWiFiCredentials (const char * SSID, const char * pass) {
5454 wifiProvisioning.stopSearchForProvider ();
55+ wifiProvisioning.stopProvisioning ();
56+ WiFi.persistent (true );
5557 tryConnecting (false , SSID, pass);
5658 retriedOnG = false ;
5759 // Reset state, will get back into provisioning if can't connect
@@ -65,7 +67,7 @@ void WiFiNetwork::setUp() {
6567 // Don't need to save the already saved credentials or the hardcoded ones
6668 WiFi.persistent (false );
6769 wifiHandlerLogger.info (" Setting up WiFi" );
68- WiFi.mode (WIFI_STA );
70+ WiFi.mode (WIFI_AP_STA );
6971 WiFi.hostname (" SlimeVR FBT Tracker" );
7072 wifiHandlerLogger.info (
7173 " Loaded credentials for SSID '%s' and pass length %d" ,
@@ -201,26 +203,8 @@ void WiFiNetwork::upkeep() {
201203 return ;
202204 case WiFiReconnectionStatus::Failed: // Couldn't connect with second set of
203205 // credentials or server credentials
204- // Return to the default PHY Mode N.
205- #if ESP8266
206- if constexpr (USE_ATTENUATION) {
207- WiFi.setOutputPower (20.0 - ATTENUATION_N);
208- }
209- WiFi.setPhyMode (WIFI_PHY_MODE_11N);
210- #endif
211- // Start smart config
212- if (!hadWifi && !WiFi.smartConfigDone ()
213- && millis () - wifiConnectionTimeout
214- >= static_cast <uint32_t >(WiFiTimeoutSeconds * 1000 )) {
215- if (WiFi.status () != WL_IDLE_STATUS) {
216- wifiHandlerLogger.error (
217- " Can't connect from any credentials, error: %d, reason: %s." ,
218- static_cast <int >(statusToFailure (WiFi.status ())),
219- statusToReasonString (WiFi.status ())
220- );
221- wifiConnectionTimeout = millis ();
222- }
223- wifiProvisioning.startProvisioning ();
206+ if (startedProvisioning) {
207+ return ;
224208 }
225209 wifiHandlerLogger.error (
226210 " Can't connect from any credentials, error: %d, reason: %s." ,
@@ -229,6 +213,7 @@ void WiFiNetwork::upkeep() {
229213 );
230214 wifiHandlerLogger.info (" Starting wifi provisioning" );
231215 wifiProvisioning.startSearchForProvider ();
216+ startedProvisioning = true ;
232217 return ;
233218 }
234219}
0 commit comments