Skip to content

Commit 5921fcc

Browse files
committed
Use ESP-NOW broadcast by default, while no paired radios.
Remove old espnowBroadcast setting.
1 parent 786012d commit 5921fcc

File tree

5 files changed

+66
-88
lines changed

5 files changed

+66
-88
lines changed

Firmware/RTK_Everywhere/AP-Config/index.html

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,17 +1636,6 @@
16361636
</div>
16371637
</div>
16381638

1639-
<div class="form-check">
1640-
<div class="form-check mt-3">
1641-
<label class="form-check-label" for="espnowBroadcast">Broadcast Override</label>
1642-
<input class="form-check-input" type="checkbox" value="" id="espnowBroadcast" unchecked>
1643-
<span class="tt" data-bs-placement="right"
1644-
title="When true, overrides peers and sends all data via broadcast to all ESP32s in range that have ESP-Now enabled. Default: Disabled">
1645-
<span class="icon-info-circle text-primary ms-2"></span>
1646-
</span>
1647-
</div>
1648-
</div>
1649-
16501639
</div>
16511640
</div>
16521641
</div>

Firmware/RTK_Everywhere/ESPNOW.ino

Lines changed: 56 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ void updateEspnow()
2121
#ifdef COMPILE_ESPNOW
2222
if (settings.enableEspNow == true)
2323
{
24-
if (espnowState == ESPNOW_PAIRED)
24+
if (espnowState == ESPNOW_PAIRED || espnowState == ESPNOW_BROADCASTING)
2525
{
2626
// If it's been longer than a few ms since we last added a byte to the buffer
2727
// then we've reached the end of the RTCM stream. Send partial buffer.
2828
if (espnowOutgoingSpot > 0 && (millis() - espnowLastAdd) > 50)
2929
{
30-
if (settings.espnowBroadcast == false)
30+
if (espnowState == ESPNOW_PAIRED)
3131
esp_now_send(0, (uint8_t *)&espnowOutgoing, espnowOutgoingSpot); // Send partial packet to all peers
32-
else
32+
else // if (espnowState == ESPNOW_BROADCASTING)
3333
{
3434
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
3535
esp_now_send(broadcastMac, (uint8_t *)&espnowOutgoing,
@@ -189,8 +189,8 @@ void espnowStart()
189189
// If WiFi is on but ESP NOW is off, then enable LR protocol
190190
else if (wifiState > WIFI_STATE_OFF && espnowState == ESPNOW_OFF)
191191
{
192-
// // Enable WiFi + ESP-Now
193-
// // Enable long range, PHY rate of ESP32 will be 512Kbps or 256Kbps
192+
// Enable WiFi + ESP-Now
193+
// Enable long range, PHY rate of ESP32 will be 512Kbps or 256Kbps
194194
if (protocols != (WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N | WIFI_PROTOCOL_LR))
195195
{
196196
response = esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N |
@@ -244,11 +244,35 @@ void espnowStart()
244244

245245
if (settings.espnowPeerCount == 0)
246246
{
247-
espnowSetState(ESPNOW_ON);
247+
// Enter broadcast mode
248+
249+
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
250+
251+
if (esp_now_is_peer_exist(broadcastMac) == true)
252+
{
253+
if (settings.debugEspNow == true)
254+
systemPrintln("Broadcast peer already exists");
255+
}
256+
else
257+
{
258+
esp_err_t result = espnowAddPeer(broadcastMac, false); // Encryption not support for broadcast MAC
259+
if (result != ESP_OK)
260+
{
261+
if (settings.debugEspNow == true)
262+
systemPrintln("Failed to add broadcast peer");
263+
}
264+
else
265+
{
266+
if (settings.debugEspNow == true)
267+
systemPrintln("Broadcast peer added");
268+
}
269+
}
270+
271+
espnowSetState(ESPNOW_BROADCASTING);
248272
}
249273
else
250274
{
251-
// If we already have peers, move to paired state
275+
// If we have peers, move to paired state
252276
espnowSetState(ESPNOW_PAIRED);
253277

254278
if (settings.debugEspNow == true)
@@ -273,32 +297,6 @@ void espnowStart()
273297
}
274298
}
275299

276-
if (settings.espnowBroadcast == true)
277-
{
278-
// Add broadcast peer if override is turned on
279-
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
280-
281-
if (esp_now_is_peer_exist(broadcastMac) == true)
282-
{
283-
if (settings.debugEspNow == true)
284-
systemPrintln("Broadcast peer already exists");
285-
}
286-
else
287-
{
288-
esp_err_t result = espnowAddPeer(broadcastMac, false); // Encryption not support for broadcast MAC
289-
if (result != ESP_OK)
290-
{
291-
if (settings.debugEspNow == true)
292-
systemPrintln("Failed to add broadcast peer");
293-
}
294-
else
295-
{
296-
if (settings.debugEspNow == true)
297-
systemPrintln("Broadcast peer added");
298-
}
299-
}
300-
}
301-
302300
systemPrintln("ESP-Now Started");
303301
#endif // COMPILE_ESPNOW
304302
}
@@ -401,13 +399,9 @@ bool espnowIsPaired()
401399
#ifdef COMPILE_ESPNOW
402400
if (espnowState == ESPNOW_MAC_RECEIVED)
403401
{
404-
405-
if (settings.espnowBroadcast == false)
406-
{
407-
// Remove broadcast peer
408-
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
409-
espnowRemovePeer(broadcastMac);
410-
}
402+
// Remove broadcast peer
403+
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
404+
espnowRemovePeer(broadcastMac);
411405

412406
if (esp_now_is_peer_exist(receivedMAC) == true)
413407
{
@@ -525,8 +519,8 @@ void espnowSetState(ESPNOWState newState)
525519
case ESPNOW_OFF:
526520
systemPrintln("ESPNOW_OFF");
527521
break;
528-
case ESPNOW_ON:
529-
systemPrintln("ESPNOW_ON");
522+
case ESPNOW_BROADCASTING:
523+
systemPrintln("ESPNOW_BROADCASTING");
530524
break;
531525
case ESPNOW_PAIRING:
532526
systemPrintln("ESPNOW_PAIRING");
@@ -547,31 +541,35 @@ void espnowSetState(ESPNOWState newState)
547541
void espnowProcessRTCM(byte incoming)
548542
{
549543
#ifdef COMPILE_ESPNOW
550-
if (espnowState == ESPNOW_PAIRED)
544+
// If we are paired,
545+
// Or if the radio is broadcasting
546+
// Then add bytes to the outgoing buffer
547+
if (espnowState == ESPNOW_PAIRED || espnowState == ESPNOW_BROADCASTING)
551548
{
552549
// Move this byte into ESP NOW to send buffer
553550
espnowOutgoing[espnowOutgoingSpot++] = incoming;
554551
espnowLastAdd = millis();
552+
}
555553

556-
if (espnowOutgoingSpot == sizeof(espnowOutgoing))
557-
{
558-
espnowOutgoingSpot = 0; // Wrap
554+
// Send buffer when full
555+
if (espnowOutgoingSpot == sizeof(espnowOutgoing))
556+
{
557+
espnowOutgoingSpot = 0; // Wrap
559558

560-
if (settings.espnowBroadcast == false)
561-
esp_now_send(0, (uint8_t *)&espnowOutgoing, sizeof(espnowOutgoing)); // Send packet to all peers
562-
else
563-
{
564-
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
565-
esp_now_send(broadcastMac, (uint8_t *)&espnowOutgoing,
566-
sizeof(espnowOutgoing)); // Send packet via broadcast
567-
}
559+
if (espnowState == ESPNOW_PAIRED)
560+
esp_now_send(0, (uint8_t *)&espnowOutgoing, sizeof(espnowOutgoing)); // Send packet to all peers
561+
else // if (espnowState == ESPNOW_BROADCASTING)
562+
{
563+
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
564+
esp_now_send(broadcastMac, (uint8_t *)&espnowOutgoing,
565+
sizeof(espnowOutgoing)); // Send packet via broadcast
566+
}
568567

569-
delay(10); // We need a small delay between sending multiple packets
568+
delay(10); // We need a small delay between sending multiple packets
570569

571-
espnowBytesSent += sizeof(espnowOutgoing);
570+
espnowBytesSent += sizeof(espnowOutgoing);
572571

573-
espnowOutgoingRTCM = true;
574-
}
572+
espnowOutgoingRTCM = true;
575573
}
576574
#endif // COMPILE_ESPNOW
577575
}

Firmware/RTK_Everywhere/menuMain.ino

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -557,17 +557,15 @@ void menuRadio()
557557
systemPrintln();
558558
systemPrintln("Menu: Radios");
559559

560-
#ifdef COMPILE_ESPNOW
561-
systemPrint("1) ESP-NOW Radio: ");
562-
systemPrintf("%s\r\n", settings.enableEspNow ? "Enabled" : "Disabled");
563-
#else // COMPILE_ESPNOW
560+
#ifndef COMPILE_ESPNOW
564561
systemPrintln("1) **ESP-Now Not Compiled**");
565-
#endif // COMPILE_ESPNOW
562+
#else // COMPILE_ESPNOW
563+
if (settings.enableEspNow == false)
564+
systemPrintln("1) ESP-NOW Radio: Disabled");
566565

567-
if (settings.enableEspNow == true)
566+
else // ESP-NOW enabled
568567
{
569-
// Pretty print the MAC of all radios
570-
systemPrint(" Radio MAC: ");
568+
systemPrint("1) ESP-NOW Radio: Enabled - MAC ");
571569
for (int x = 0; x < 5; x++)
572570
systemPrintf("%02X:", wifiMACAddress[x]);
573571
systemPrintf("%02X\r\n", wifiMACAddress[5]);
@@ -584,7 +582,7 @@ void menuRadio()
584582
}
585583
}
586584
else
587-
systemPrintln(" No Paired Radios");
585+
systemPrintln(" No Paired Radios - Broadcast Enabled");
588586

589587
systemPrintln("2) Pair radios");
590588
systemPrintln("3) Forget all radios");
@@ -598,6 +596,7 @@ void menuRadio()
598596
systemPrintln("7) Broadcast dummy data");
599597
}
600598
}
599+
#endif // COMPILE_ESPNOW
601600

602601
if (present.radio_lora == true)
603602
{
@@ -717,7 +716,7 @@ void menuRadio()
717716
"nearing 200 characters but needs to be near 250.";
718717
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
719718
#ifdef COMPILE_ESPNOW
720-
esp_now_send(broadcastMac, (uint8_t *)&espnowData, sizeof(espnowData)); // Send packet to all peers
719+
esp_now_send(broadcastMac, (uint8_t *)&espnowData, sizeof(espnowData)); // Send packet over broadcast
721720
#endif
722721
}
723722

Firmware/RTK_Everywhere/menuSystem.ino

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -596,10 +596,6 @@ void menuDebugNetwork()
596596
systemPrint("1) Print Ethernet diagnostics: ");
597597
systemPrintf("%s\r\n", settings.enablePrintEthernetDiag ? "Enabled" : "Disabled");
598598

599-
// ESP-Now
600-
systemPrint("2) ESP-Now Broadcast Override: ");
601-
systemPrintf("%s\r\n", settings.espnowBroadcast ? "Enabled" : "Disabled");
602-
603599
// WiFi
604600
systemPrint("3) Debug WiFi state: ");
605601
systemPrintf("%s\r\n", settings.debugWifiState ? "Enabled" : "Disabled");
@@ -665,8 +661,6 @@ void menuDebugNetwork()
665661

666662
if (incoming == 1)
667663
settings.enablePrintEthernetDiag ^= 1;
668-
else if (incoming == 2)
669-
settings.espnowBroadcast ^= 1;
670664
else if (incoming == 3)
671665
settings.debugWifiState ^= 1;
672666
else if (incoming == 4)

Firmware/RTK_Everywhere/settings.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ typedef struct _NTRIP_SERVER_DATA
348348
typedef enum
349349
{
350350
ESPNOW_OFF,
351-
ESPNOW_ON,
351+
ESPNOW_BROADCASTING,
352352
ESPNOW_PAIRING,
353353
ESPNOW_MAC_RECEIVED,
354354
ESPNOW_PAIRED,
@@ -1059,7 +1059,6 @@ struct Settings
10591059
// ESP Now
10601060
bool debugEspNow = false;
10611061
bool enableEspNow = false;
1062-
bool espnowBroadcast = false; // When true, overrides peers and sends all data via broadcast
10631062
uint8_t espnowPeerCount = 0;
10641063
uint8_t espnowPeers[ESPNOW_MAX_PEERS][6] = {0}; // Contains the MAC addresses (6 bytes) of paired units
10651064

@@ -1553,7 +1552,6 @@ const RTK_Settings_Entry rtkSettingsEntries[] =
15531552
// ESP Now
15541553
{ 0, 0, 0, 0, 1, 1, 1, 1, _bool, 0, & settings.debugEspNow, "debugEspNow", },
15551554
{ 0, 1, 1, 0, 1, 1, 1, 1, _bool, 0, & settings.enableEspNow, "enableEspNow", },
1556-
{ 0, 1, 1, 0, 1, 1, 1, 1, _bool, 0, & settings.espnowBroadcast, "espnowBroadcast", },
15571555
{ 0, 1, 1, 0, 1, 1, 1, 1, _uint8_t, 0, & settings.espnowPeerCount, "espnowPeerCount", },
15581556
{ 0, 1, 1, 1, 1, 1, 1, 1, tEspNowPr, ESPNOW_MAX_PEERS, & settings.espnowPeers[0][0], "espnowPeer_", },
15591557

0 commit comments

Comments
 (0)