Skip to content

mDNS

ESP3D uses mDNS (DNS-SD) for network discovery: the board can be reached as hostname.local and the services it provides can be found by any mDNS browser. On Windows it needs the bonjour service, on Linux avahi.

It needs MDNS_FEATURE in configuration.h. It works without HTTP, any active network service (Telnet, WebSocket, etc.) is enough. mDNS is only started in station mode (WiFi client or Ethernet), not in access point mode.

To find your board from a computer, a phone or a tablet, see mDNS Discovery.

Its state is reported by [ESP420] as MDNS, and [ESP450] lists the other ESP3D boards (_esp3d._tcp services) on the network.

ServicePortCondition
_esp3d._tcpmain portalways
_http._tcpHTTP portHTTP_FEATURE
_ftp._tcpFTP control portFTP_FEATURE
_telnet._tcpTelnet portTELNET_FEATURE
_webdav._tcpWebDAV portWEBDAV_FEATURE
_websocket._tcpWebSocket portWS_DATA_FEATURE
_device-info._tcpmain portalways (see ESP8266 limitation)

The main port is the port of the first active service in this order: HTTP, FTP, Telnet, WebDAV, WebSocket. If none is active, 8080 is used, because the ESP mDNS stack does not accept port 0.

KeyValue
firmwareESP3D or ESP3DLib
versione.g. 3.1.1
KeyValue
uri/
subprotocolarduino

This service describes the board and its features, it is not a real TCP endpoint, its port is the main port.

KeyValue
namehostname
boarde.g. ESP32, ESP32-S3
chipe.g. ESP32-S3
fwESP3D or ESP3DLib
vere.g. 3.1.1
targetmarlin, grbl, smoothieware, repetier, unknown
sdke.g. v5.1.2
coreArduino core version
flashe.g. 4.00 MB
authenabled or disabled
loge.g. serial0/debug, telnet/verbose, none

auth and log are always present, so a missing authentication is visible and communication issues can be diagnosed without physical access to the board.

Present only if the feature is in the firmware

Section titled “Present only if the feature is in the firmware”
KeyValueFeature
psrame.g. 8.00 MBESP32 with BOARD_HAS_PSRAM
fse.g. 1.44 MBFILESYSTEM_FEATURE
notificationtelegram, email, pushover, ifttt, homeassistant, whatsapp, noneNOTIFICATION_FEATURE
camerae.g. ESP32 Cam, ESP Eye, M5StackCAMERA_DEVICE
bthostname/AA:BB:CC:DD:EE:FFBLUETOOTH_FEATURE
sensorDHT11, DHT22, ANALOG, BMP280, BME280SENSOR_DEVICE
sd-updateON or OFFSD_UPDATE_FEATURE
web-updateenabledWEB_UPDATE_FEATURE
timentp or manualTIMESTAMP_FEATURE
sdSPI, SDIO, SPI-SdFatSD_DEVICE
luaenabledLUA_INTERPRETER_FEATURE
usbenabledUSB_SERIAL_FEATURE
usb-cdcenabledUSB_CDC_CLIENT_FEATURE
ssdpenabledSSDP_FEATURE

On ESP8266, _device-info._tcp has only one record: board = ESP82XX. The ESP8266 has about 40-50 KB of free memory at runtime, and many TXT records make the mDNS stack crash when it parses the first incoming mDNS packet after boot.

On Linux:

Terminal window
avahi-browse -rt _device-info._tcp

On Windows / macOS (with bonjour):

Terminal window
dns-sd -B _esp3d._tcp