New board setup

You've got a Donato PoE Module. Let's get it running.

One Ethernet cable powers it, connects it, and lets you control it. This guide walks you from the box to a working device in eight short steps — power, wiring, browser control, and Home Assistant. Jump to any chapter using the bar below.

1
Overview

What you have

The Donato PoE Module is a professional smart-home controller built around an ESP32 with wired Ethernet. It takes a single PoE+ network cable and gives you four high-current outputs, an addressable-LED data line, and several general-purpose I/O pins — all controllable from your browser or Home Assistant.

  • Powered entirely over Ethernet — no wall adapter. It needs an 802.3at PoE+ source (Step 2).
  • Wired, not Wi-Fi — a LAN8720 Ethernet PHY, so no Wi-Fi setup and no 2.4 GHz dropouts.
  • Ships pre-flashed with ESPHome firmware — it comes up and joins your network on its own.
  • Four outputs at ~2 A each on the J3 screw terminal for lights, relays, locks, motors (Step 4).
No status LEDs — that's by design. A running board shows no blinking light (it's built for in-fixture installs). You confirm it's alive from its web page or Home Assistant, not by looking for a power light. A dark board is not a dead board.

In a hurry? The whole flow is: get a PoE+ switch → plug in → wire your load → control it in the browser → (optionally) add it to Home Assistant.

2
Power

Get a PoE+ switch (or injector)

The module draws up to 25.5 W (PoE Class 4) and is powered only through its Ethernet cable. That means it needs IEEE 802.3at "PoE+". Ordinary 802.3af PoE tops out near 13 W at the device — not enough: the board may fail to boot or brown out. You need one 802.3at source.

What to look for on the box/listing: the words "IEEE 802.3at" and/or "PoE+" with a per-port output of up to 30 W (sometimes shown as Class 4), plus Gigabit (10/100/1000). "802.3af/at" is fine — the "at" is what matters. If it only says "802.3af" or "15.4 W", it's not sufficient.

Option A — a small PoE+ switch (powers this plus future devices)

Easiest pick

TP-Link TL-SG1005P / TL-SG1008P

Unmanaged, fanless, plug-and-play. 4 true 802.3at PoE+ ports at up to 30 W each. Unbox and go.

5- or 8-port gigabit · ~65 W total budget · verify current price
Alternative

Netgear GS305P / GS305PP

Same idea, different brand. Pick the GS305P/PPnot the GS308P, which is only 15.4 W/port.

5-port gigabit · ~63 W (PP: ~83 W) · verify current price
Managed / nicer

Ubiquiti UniFi Switch Lite 8 PoE

If you want VLANs, monitoring, and a dashboard. 4 ports at 802.3at 30 W. Needs the free UniFi app.

8-port gigabit · ~52 W total budget · verify current price

Option B — a single-port PoE+ injector (cheapest, just this board)

Already have a regular (non-PoE) router or switch and only one module to power? A single-port 802.3at PoE+ injector is the cheapest correct answer. It sits inline: existing port → injector DATA-IN, then injector PoE-OUT → cable → module. Buy one explicitly rated IEEE 802.3at, 30 W, gigabit — e.g. TP-Link TL-PoE160S, EnGenius EPA5006GAT, or Tripp Lite NPOE-30W-1G. Avoid 15.4 W / 802.3af-only injectors (e.g. TL-PoE150S).

Do NOT use "passive PoE" / "24V passive" injectors. Those push a fixed raw voltage with no negotiation and can be the wrong voltage entirely — they can fail to power the board or damage it. The module expects standards-based active 802.3at (it negotiates Class 4). Buy only active, IEEE-compliant gear.
  • Per-port vs total budget are different numbers — a big total budget can still cap each port. Confirm your port does 30 W.
  • Not every port is a PoE port — on the 5/8-port units, usually only 4 ports supply power. Use a labeled PoE port.
  • Prefer named lines (TP-Link SG/Omada, Netgear GS, Ubiquiti UniFi). Cheap unbranded "PoE+" gear sometimes overstates its capability.
3
First boot

Plug it in

With your PoE+ source ready, connecting the module is the whole installation:

  1. Run an Ethernet cable from a PoE+ port (or the injector's PoE-OUT) to the module's RJ45 jack.
  2. The board powers up immediately. Remember — no LED will light; that's normal.
  3. It negotiates PoE+, brings up Ethernet, and pulls a DHCP address from your network automatically. No configuration needed.
  4. Find its IP address so you can reach it (next step). Three easy ways below.

Finding the board's IP address

  • Your router's device/DHCP list — look for a host named pdpm-g-xxxxxx (the last characters are part of its MAC).
  • By name (mDNS) — try http://pdpm-g-xxxxxx.local in a browser if your network supports mDNS/Bonjour.
  • Home Assistant — it auto-discovers the board (see Step 6), which shows the IP too.
Confirm real PoE+. Once you open the board (Step 5) or add it to Home Assistant, check that "PoE+ Detected" reads ON. If it's OFF, you're on an 802.3af port — go back to Step 2.
4
Connections

Wire the J3 connector

J3 is the 11-position screw terminal where you connect your loads and signals. Counting from pin 1 — the end closest to the Ethernet (RJ45) port — the pins fall into four groups: power, an LED-data line, level-shifted 5 V I/O, and four high-current switch outputs.

J3 — pin 1 is closest to the Ethernet port
Power (pins 1–3) Addressable-LED data (pin 4) Level-shifted 5 V I/O (pins 5–7) MOSFET switch outputs (pins 8–11)
PinLabelWhat it isHow you use it
1PWR +12VRegulated 12 V output, derived from PoE+.Feed the + side of 12 V loads (LED strips, fans, locks).
2PWR GNDCommon ground / return.The return for everything you wire here.
3PWR +5VRegulated 5 V output.Power 5 V loads or an addressable-LED strip's +5 V rail.
4DATA HDINAddressable-LED data (WS2812 / WLED-style), 5 V, with a 100 Ω series resistor built in.Connect to the DIN of a NeoPixel/WS2812 strip; power the strip from +5V (pin 3) and GND (pin 2).
5I/O HIO16Level-shifted 5 V general-purpose I/O (bidirectional, 33 Ω series). Drive 5 V signals or read 5 V sensors/switches.Use for reed switches, buttons, Hall sensors, or 5 V logic. Assign each pin's role in firmware / Home Assistant.
6I/O HIO2
7I/O HIO15
8OUT HIO12High-current switch output — an N-channel MOSFET that pulls the pin to ground when ON (low-side switch), ~2 A each.Wire the load between a + supply (pin 1 12V or pin 3 5V) and this pin; the board switches the ground side. Great for lights, relays, solenoids, a garage door.
9OUT HIO13
10OUT HIO14
11OUT HIO33

What to expect on each pin — voltage & polarity

  • Power pins 1 & 3 → positive out. A steady +12 V (pin 1) and +5 V (pin 3), measured against GND. They source power to the + side of your load.
  • Pin 2 → GND (0 V). The common negative / return for everything you wire.
  • Outputs 8–11 (Q1–Q4 · HIO12/13/14/33) → the negative side. Wire your load's here. There's no fixed voltage to measure: when ON the pin is pulled to ~0 V (ground); when OFF it's open/floating. The board switches the ground side, never the positive.
  • Data pin 4 (HDIN) → 5 V output. Sends the addressable-LED data signal out (output only).
  • I/O pins 5–7 (HIO16/HIO2/HIO15) → 5 V, input and output. Bidirectional — read a 5 V sensor/switch, or drive a 5 V signal. They idle near 5 V until something pulls them low.

A worked example — switching a 12 V light

To switch a 12 V load on output HIO13 (pin 9): connect +12V (pin 1) to the load's +, and the load's to HIO13 (pin 9). When you turn HIO13 ON (from the web UI or Home Assistant), the board completes the circuit to ground and the light comes on. The outputs are low-side switches — they switch the negative/ground side, not the positive.

A few pins are ESP32 "strapping" pins (they influence how the chip boots). In normal firmware this is handled for you, but if you wire your own circuits: don't hold HIO12 (pin 8) high or HIO15 (pin 7) low at power-up, and treat HIO2 (pin 6) as a deliberate-use pin. For simple loads and switches you'll rarely hit this — just avoid hard pull-ups/downs on those pins.

Examples — what you can connect

Inputs · pins 5–7

Sensors & switches

Read state on the 5 V I/O pins (signal → an HIO pin, plus GND — and +5 V if the sensor needs power):

Reed / door-window contacts · PIR motion · push buttons · hall-effect · float / water-leak · tilt · 5 V logic from another board
Outputs · pins 8–11

Relays & switched loads

Switch the ground side of a 12 V (pin 1) or 5 V (pin 3) load — load + to power, load to the HIO pin:

Relay modules / relay coils · solenoids & door strikes · garage-door opener · 12 V (non-addressable) LED · small DC motors / fans · buzzers
Data · pin 4

Addressable LEDs

WS2812 / NeoPixel / SK6812 strips: data → HDIN, power from +5 V (pin 3) & GND for short runs, or a separate 5 V supply for long ones.

Best paired with WLED firmware (Step 7)
Inductive loads need a flyback diode. Relay coils, solenoids, and motors kick back a voltage spike when switched off. Put a flyback (freewheeling) diode across the load to protect the output — most ready-made relay modules already include one, so they're the easy choice.
Want more ideas? The board runs ESPHome, which supports a huge library of sensors, switches, and components — browse them at esphome.io/components. For addressable-LED effects and lighting projects, see WLED at kno.wled.ge (install via install.wled.me).
5
Control it now

The board's built-in web page

You don't need any extra software to control the module. Every board runs a small built-in web server — just open its address in a browser:

  1. In any browser, go to http://<board-ip> (the address you found in Step 3).
  2. When prompted, log in with username admin and password pdpm-g.
  3. You'll see a live control panel — flip the switches and the outputs respond instantly.

From that page you can, with zero setup:

  • Toggle all four outputs (HIO12, HIO13, HIO14, HIO33) on and off.
  • See PoE+ Detected, the input states, system status, and uptime.
  • Read the board's IP address and firmware version, and restart it.
Change the default password for anything beyond a trusted home LAN. The built-in page is perfect for testing and simple control — for schedules, automations, and remote access, move up to Home Assistant in the next step.
6
Go further

Connect it to Home Assistant

The browser page is great for direct control — but to unlock what the module can really do, add it to Home Assistant. It's the recommended home for the board and it's free and open-source. Because the module already speaks ESPHome, Home Assistant auto-discovers it.

  1. In Home Assistant, go to Settings → Devices & Services.
  2. Look for "ESPHome — PDPM-G …" under Discovered, and click Configure. (If it doesn't appear, add it manually: Add Integration → ESPHome → Host: the board's IP, Port: 6053.)
  3. When asked, paste the board's API encryption key — you'll reuse this same key any time you update the firmware, so keep it handy:
    API encryption key:
    FK0lk39GchrQjqxxgpom/vOFX1Go3iyw5/sjkA39xvA=
  4. Done — every output, input, and sensor appears in Home Assistant automatically.
About that key: it's the same on every Donato board, so it's fine for a trusted home network. If you'll expose the board beyond your home LAN, generate your own key and reflash to replace it — in the ESPHome add-on (Step 7) run esphome wizard or replace the api: encryption: key: value with a fresh one, then install over the air. Keep the new key somewhere safe.

Once it's in Home Assistant you get the things the bare web page can't do:

Automate

Schedules & rules

Turn outputs on at sunset, trigger from sensors, build multi-step automations across all your devices.

Dashboards & voice

One place for everything

Custom dashboards, phone app, and voice control (Google/Alexa/Siri via HA) — alongside the rest of your home.

Remote

Access from anywhere

Securely check and control the board away from home, with history, logging, and notifications.

New to Home Assistant? It runs on a Raspberry Pi, a mini-PC, or even a NAS. Install it once and every Donato board (and most other smart devices) lives under one roof. It's the single biggest upgrade to what your module can do.
7
Make it yours

Change the firmware

Your board ships running the ESPHome base image — the right choice for Home Assistant. But the firmware is yours to change. There are three paths, from easiest to most advanced.

A · Update or reconfigure (stay on ESPHome) — over the air, no cables

This is the everyday way to tweak a board that's already online: add sensors, change names/IP, or update the firmware version — all wirelessly, with the board installed.

  1. In Home Assistant, install the ESPHome Device Builder add-on (Settings → Add-ons → Add-on Store). It's the standard dashboard for editing and updating ESPHome devices.
  2. Open it, adopt your board, and edit its YAML config — add sensors, rename pins, change the IP. Keep the same API encryption key & OTA password so Home Assistant keeps treating it as the same device.
  3. Click Install → Wirelessly. It compiles and flashes over the air using the board's OTA password — no cables, the board stays installed. (Comfortable on the command line? esphome run your-board.yaml does the same thing.)
  4. ~30 seconds later it reboots, rejoins the network, and reappears in Home Assistant. Confirm PoE+ Detected is still ON.

B · Switch personality — ESPHome ↔ WLED

Want the board to become a WLED addressable-LED controller (driving a strip on the HDIN data line), or switch back to ESPHome? Here's how:

  1. To WLED: use the official web installer at install.wled.me (Chrome/Edge). It flashes over USB — follow the power & BOOT-button safety steps in C below first. Then finish setup in WLED's own web UI and point its LED output at the HDIN line (J3 pin 4).
  2. Back to ESPHome: reflash the ESPHome image — over the air once it's reachable (path A) or via the recovery reflash (C) — then re-adopt it in Home Assistant.
  3. After it reboots (~30 s): a WLED board appears at its own web UI; an ESPHome board re-appears in Home Assistant.

C · Recovery reflash (advanced) — USB + the BOOT button

Only needed if the board is unreachable (a bad config, interrupted OTA, or you want a clean wipe). This uses a USB-to-serial adapter and the on-board BOOT button. You'll first need to locate the board's serial/programming header and its BOOT and RESET buttons (marked on the board silkscreen). If you're not comfortable identifying them, reach out before risking the board — and read the safety notes first.

Never connect PoE and the serial header at the same time. Energizing the PoE input and the 3.3 V serial/programming header together can destroy the board. Always disconnect PoE before attaching a USB-serial cable, and during flashing power the board from its documented bench source — do not power it from the adapter's 3.3 V pin (connect only GND / TX / RX / EN).
  1. Disconnect PoE. Power the board from its documented bench source; connect only GND/TX/RX/EN from the adapter.
  2. Enter download mode: hold BOOT (pulls GPIO0 low), tap RESET/EN, then release BOOT.
  3. In Chrome or Edge (Web Serial only works there), open a web flasher (ESP Web Tools / esptool-js), or run esptool locally.
  4. Write the full merged factory image at offset 0x0:
    # full firmware.factory.bin = bootloader + partitions + app esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 \ write_flash -z 0x0 firmware.factory.bin
  5. Power-cycle out of download mode, reconnect PoE+, and confirm it's back online.
Use a full firmware.factory.bin at 0x0 (bootloader + partition table + app) — writing only the app, or to the wrong offset, can leave the board unbootable. And keep your OTA password and API key: lose them and the no-cable update path won't work, forcing a USB reflash.

The technician flashing station at /factory/flash is for production use and is password-protected — it isn't part of customer setup.

Bonus — Bluetooth & other wireless (advanced)

The board networks over its wired connection, but the ESP32's full 2.4 GHz radio is still onboard — and because Ethernet doesn't use that radio, it's completely free for wireless add-ons. Enable any of these in firmware:

  • Bluetooth LE — the easiest and most useful: run the board as a Home Assistant Bluetooth proxy (relay nearby BLE sensors over the wired link), read BLE sensors directly, or act as a beacon. Add ESPHome's bluetooth_proxy / esp32_ble_tracker.
  • ESP-NOW — Espressif's router-free, peer-to-peer link over the 2.4 GHz radio. Handy for talking to battery-powered sensor nodes or other ESP boards without touching your network.
  • Wi-Fi — present and usable (a fallback link or a setup access-point), though the whole point of this board is that you don't need it. Wi-Fi and Bluetooth share the one radio, so they take turns.
  • Bluetooth Classic — also supported, but its stack is RAM-hungry on this chip; BLE is the practical choice alongside Ethernet.
What it can't do natively: Zigbee, Thread, and Z-Wave need their own radios this chip doesn't have — those would require an add-on module wired to the I/O pins. But Matter can run over the wired link or Wi-Fi (support for it is emerging in ESPHome). For the full menu of wireless components, see esphome.io.
8
Troubleshooting

If something's not right

SymptomMost likely cause & fix
Board seems dead / never appearsYou're probably on 802.3af, not PoE+. Confirm an 802.3at / 30 W port or injector (Step 2). Remember there are no LEDs — "dark" isn't "dead."
No light on the boardNormal. The board has no status LEDs by design. Verify via its web page or Home Assistant.
"PoE+ Detected" shows OFFThe port isn't delivering Class 4 PoE+. Move to a true 802.3at port, or check your injector is 802.3at (not passive / not af).
Can't find the IP addressCheck your router's device list for pdpm-g-xxxxxx, try pdpm-g-xxxxxx.local, or let Home Assistant discover it.
Reboots / cycles every few seconds on PoEA maintain-power-signature (MPS) quirk between this board and a strict switch. Using a known-good 802.3at source usually resolves it.
Home Assistant won't connectMake sure you pasted the correct API encryption key; or add it manually (ESPHome → Host: IP, Port 6053).
An output won't switch a loadOutputs are low-side — wire the load between + (pin 1/3) and the HIO pin, not between the HIO pin and ground (Step 4).
Firmware

Change or update firmware

ESPHome over-the-air, WLED, or a clean reflash.

Still stuck?

Get in touch

Questions about your board or a bulk order? We'll help.

Up and running?

Get another Donato PoE Module