From fe82a7a22de624a6279cd7387fde1ae072257c2e Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 15 Jul 2026 01:57:16 +0200 Subject: [PATCH] Test DHCP-renewal wedge hypothesis: fully static IP on 2.12 pair The wedge metronome (~300s: 297/297/322/437s across bus widths, clocks, and power modes) matches FRITZ DHCP T1 renewal at half of a 10-min lease. Every wedging build ran an active dhcp client. Static addressing removes the renewal TX path entirely; if the metronome dies, root cause #2 is the DHCP renew packet through hosted's write path. (2.9.7 experiment abandoned: slave image bootloops/rolls back on this C6; version matrix documented for upstream.) Co-Authored-By: Claude Fable 5 --- firmware/main/c6_slave.bin | Bin 1190432 -> 1190432 bytes firmware/main/net.c | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/main/c6_slave.bin b/firmware/main/c6_slave.bin index 14568f3120801c3349e6e90a605aa8ddba35f8b8..a606cf15cd5d88ee684be07c8fd57dfacbcbf517 100644 GIT binary patch delta 159 zcmV;Q0AT;1)JUMzNRV(AFflqaH##yi0000000000N_A`?F*T8fDj>@5kED<=iz4H| zrBzCwXk#t`i51)H^wRwAaF>Z?Z0mv0h0pV+q4wyMbEBv7S_~xDY?P>ir&`p9ka@> z9675sZGyq1BTxUXSkri+^#Wt-1*X;u%&iw#S}(A+USMmzz}|X+qxAx3>jkdX3*4<2 zcv>&;wqD?Cy};jkL7?@5;MNO5`kIP98#aVbsGj=l`|p;b@Wb}uEhW_kRu#!Br)ibW K{wX&9-vj_GRYqC> diff --git a/firmware/main/net.c b/firmware/main/net.c index e9a8db2..ef3006d 100644 --- a/firmware/main/net.c +++ b/firmware/main/net.c @@ -21,14 +21,14 @@ static volatile bool s_got_ip; static void start_ping_diag(void); static void ping_diag_task(void *arg); -/* Router DHCP has been observed to go silent for this MAC (flap throttling). - * After 15 s without a lease, claim the previously granted address statically. */ +/* Fully static addressing: every observed SDIO wedge (~300 s uptime) coincides + * with the DHCP T1 renewal window, so the DHCP client stays out of the picture. */ static void static_ip_fallback(void *arg) { (void)arg; - vTaskDelay(pdMS_TO_TICKS(15000)); + vTaskDelay(pdMS_TO_TICKS(1000)); if (!s_got_ip) { - ESP_LOGW(TAG, "no DHCP lease after 15s — falling back to static 192.168.86.53"); + ESP_LOGI(TAG, "static addressing: 192.168.86.53 (DHCP client disabled)"); esp_netif_dhcpc_stop(s_netif); esp_netif_ip_info_t ip = { 0 }; ip.ip.addr = esp_ip4addr_aton("192.168.86.53");