I am developing a board using the Heltec wifi lora v3.2 devboard and a w5500 ethernet module to try to connect via ethernet to my starlink router. Unfortunately I can't share the code, however I can provide a description of my issue in the hopes anyone has come across similar issues.
When connecting to the starlink, it will establish an IP and starlink will see it (from the starlink app), but its ability to ping google will stop after its startup routine ~30s after the connection is established. I've tried a ethernet switch/wifi extender inbetween starlink and my device but they haven't helped.
I am certain its a starlink issue because I have tested the board connected to another personal non-starlink router and its ability to ping google does not drop. I suspect starlink thinks my board is suspicious, but for some reason my personal home router doesn't?
I've also confirmed the connection to starlink works in general by connecting it to my laptop and using the internet that way, and also pinging the ip in which the starlink gives my board from my laptop works fine, its just that the board can't ping google or external sites after its ethernet startup.
I'm not sure it is related to your issue but I noticed (I think it was a C6 board without a battery powered RTC) that did connect to a regular router yet displayed this message until the board's RTC synchronized with the NTP
20:00:24.454 -> E (4857) wifi:CCMP replay detected: A1=xx:xx:xx:xx:xx:xx A2=xx:xx:xx:xx:xx:xx PN=1, RSC=2 seq=6768
the A1= and A2= are followed by the board's MAC
my router didn't mind and the error went away once the RTC synchronized with the NTP but I would understand if Starlink didn't like this.
I'll double check this, but I should add that my startup routine does involve syncing my rtc with the ntp server and connecting to the aws servers. After the startup I ping google intermittently and usually after the first or second ping to google the internet connection gives up.
I just ran the code that gives me that error and it happens on during the WiFi connection
here's the code and the serial output:
#include <WiFi.h>
#include <esp_wifi.h>
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Start\n");
WiFi.mode(WIFI_STA);
// C6 set protocol
esp_err_t err_sta = esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N);
if (err_sta == ESP_OK) {
Serial.println("STA protocol set successfully");
} else {
Serial.printf("Failed to set STA protocol (Error: %d)\n", err_sta);
}
WiFi.begin("router", "pwd");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
}
20:24:25.988 -> Start
20:24:25.988 ->
20:24:25.988 -> STA protocol set successfully
20:24:26.090 -> E (1642) wifi:CCMP replay detected: A1=xx:xx:xx:xx:xx:x A2=xx:xx:xx:x:xx:xx PN=1, RSC=2 seq=12848
20:24:26.324 -> ...WiFi connected
hope this helps
then your issue is different
sorry but without extensive logging I can't emit any more guesses
ok, I asked google "esp32 starlink router dropping connection"
and the answer is (longer that this snippet)
When an ESP32 experiences frequent disconnections from a Starlink router, it is often due to the ESP32's reliance on
2.4GHz WiFi while the Starlink router uses a combined, actively managed dual-band (2.4GHz/5GHz) network that can confuse IoT devices.
AI Overview
When an ESP32 experiences frequent disconnections from a Starlink router, it is often due to the ESP32's reliance on
2.4GHz WiFi while the Starlink router uses a combined, actively managed dual-band (2.4GHz/5GHz) network that can confuse IoT devices. Other factors include network congestion, signal interference, or the Starlink system itself experiencing minor, frequent satellite handovers.
Here are the most effective solutions to stabilize the connection:
- Configure Separate SSIDs (Most Effective)
The Starlink app allows you to split the 2.4GHz and 5GHz bands. ESP32 devices function best on a dedicated 2.4GHz network.
- Action: Open the Starlink App, go to Settings > WiFi Configuration > Split Networks.
- Action: Connect your ESP32 specifically to the 2.4GHz network.
- Disable 5GHz for IoT Devices
If splitting the networks does not work, try disabling the 5GHz frequency entirely to test if the connection stabilizes, as this removes the possibility of the router forcing the ESP32 to switch bands.
- Check for ESP32 Firmware/Code Issues
- Wait for Reconnection: By default, the ESP32 may not aggressively try to reconnect until it has been disconnected for a certain period. Add code to handle WiFi disconnections actively.
- Serial Monitor Conflict: Ensure your code is not waiting for a Serial connection to the computer to function. If the ESP32 is powered via USB to a PC and the PC goes to sleep, the ESP32 might crash.
- Optimize Network Settings
- Use a Static IP: Assign a static IP address to your ESP32 in the router settings, or set a static IP in your ESP32 code to avoid DHCP negotiation issues, which often cause brief drops.
- Reduce Interference: Move the ESP32 away from other electronic devices or sources of electromagnetic noise (microwaves, other routers).
- Check Starlink Environmental Issues
If the connection is dropping entirely rather than just the ESP32 disconnecting, check:
- Obstructions: Ensure there are no trees or buildings, even minor ones, that could cause tiny, frequent outages.
- Cable Integrity: Check the cable connecting the Dishy to the router for damage or loose connections (a red light on the router may indicate a cable failure).
@time_document_3108 How would the WiFi be affecting a wired network connection?
@ekintern Does pinging google work consistently on a computer using a wired connection? I see you have already tried that.