RP2040: mDNS support in AP mode
Implement mdns in AP mode on RP2 port to allow users to access micropython device by hostname.
[RP2] AP DHCP server ignores ifconfig IP and continues assigning 192.168.4.x subnet
Port, board and/or hardware
v1.25.0 RP2 on Pico W and Pico 2 W boards
MicroPython version
MicroPython v1.25.0 on 2025-04-15; Raspberry Pi Pico W with RP2040
MicroPython v1.25.0 on 2025-04-15; Raspberry Pi Pico 2 W with RP2350
Reproduction
import network
ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.ifconfig(("10.10.10.1", "255.255.255.0", "10.10.10.1", "10.10.10.1"))
print("AP:", ap.ifconfig())
Expected behaviour
Clients connecting to the Pico's AP should receive DHCP leases matching the configured AP subnet (10.10.10.x, in this case), or DHCP should be disabled entirely if config does not match.
Observed behaviour
Clients receive 192.168.4.x addresses, regardless of ifconfig().
Additional Information
When using network.WLAN(network.AP_IF) on the RP2040 (Pico W), if you:
- Activate AP mode with
ap.active(True) - Set a new IP config with
ap.ifconfig(("10.10.10.1", "255.255.255.0", "10.10.10.1", "10.10.10.1"))
The Pico W correctly reports the new IP when calling ap.ifconfig(), but any device connecting to the AP still receives a DHCP lease in the default 192.168.4.x range.
This happens even though the AP IP is no longer in that subnet. It appears the DHCP server is not being updated when ifconfig() is called.
In addition I am using STA mode and connecting to the home network. Now devices connected get 192.168.4.x addresses when my router should be giving 192.168.1.x addresses.
This happens with or without a connection with Thonny.
Using ntptime always times out if connected with Thonny. If main.py is run without a connection then ntptime times out on the first attempt but sync's after that.
The application objective is to have an AP which is used to set the STA SSID and password and then reset the board to restart if it changes. You can also see status logs on the AP (typically with a phone) without knowing the STA SSID and password. The STA should be used to set the ntptime upon boot with STA connection and then sync every 24 hours after that. The home network on the STA can see logs and other things. asyncio was used to start the servers. This seems like a basic setup that is not working very well.
Code of Conduct
Yes, I agree