updated to new ver

main
Konstantin Láska 2026-06-26 11:40:11 +02:00
parent 81aa4a4bed
commit 9283c06e2d
2 changed files with 214 additions and 32 deletions

123
README.md Executable file → Normal file
View File

@ -1,26 +1,117 @@
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(1).jpg) # ESPlan v2.1
# ESPlan **Read this in other languages: [Čeština](README.cs.md)**
The ESP32 has Wi-Fi and Bluetooth interfaces built in the chip, but sometimes it needs to be extended with Ethernet or RS485. That's why we created [the ESPlan](https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/), it has all four listed peripherals on one single board - do you need to communicate via Wi-Fi? No problem. Bluetooth? You can use that too. RS485 to connect sensors that are tens of meters away? Of course! And send data over Ethernet? Sure! And you can power the board via PoE.
To support PoE you need a [5V PoE module](https://www.laskakit.cz/sdapo-dp1435-poe-modul-ieee-802-3af-5v-2-4a/), which you can also find in our store. ![ESPlan](img/ESPlan_top.jpg)
We have two versions of the ESPlan, differing in the type of antenna **LaskaKit ESPlan** is an industrial-grade ESP32 development board built around the **ESP32-WROOM-32E** module. It combines wired **Ethernet (LAN8720A)**, an isolated **RS485** bus, **Wi-Fi + Bluetooth**, and **three independent ways to power the board** including optional **PoE**. It is designed for industrial automation, IoT gateways, home automation (Home Assistant, ESPHome) and remote sensor nodes where reliable wired connectivity without dependence on Wi-Fi is required.
- with PCB antenna
- with a connector for the antenna (the advantage is a longer distance connection)
As LAN controller we used the proven LAN8720A. This controller is supported in HomeAssistant and also in ESPhome. This means that you can connect this board directly to your smart home or workshop. Designed and manufactured in the Czech Republic 🇨🇿
The USB-C connector that is on the board provides both power (unless you are using [a PoE module](https://www.laskakit.cz/sdapo-dp1435-poe-modul-ieee-802-3af-5v-2-4a/)) and programming. In fact, the programmer is on the board - no unnecessary button mashing to get into bootloader mode and program - this is what "does itself". Product page: <https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/>
The power supply of the whole board is taken care of by the switching, high efficiency (max 96%) SY8089 inverter, which creates a stable 3.3V/ up to 2A power supply from 5V. ---
On the board, in addition to RJ45, RS485 and USB-C, you will also find our usup connector for connecting sensors (temperature, humidity, CO2, pressure, ...) and a GPIO header with GPIO outputs so you can connect other devices if you want. ## ⚡ Power three options
The ESPlan in on this website https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/ ESPlan v2.1 supports three power sources that can be combined freely. The source with the **highest voltage is always active**.
![ESPlan pinout](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan_pinout.png) | Source | Input voltage | Path to the board | Typical use |
| --- | --- | --- | --- |
| **USB-C** | 5 V | direct to the 5 V rail | development, programming |
| **Screw terminal (+12/24 V, GND)** | **740 V DC** (12 or 24 V recommended) | step-down **LMR14050** (up to 5 A) → 5 V → LDO **XC6220** → 3.3 V | industrial PSU, DIN rail |
| **PoE (Power over Ethernet)** | via optional **SDaPo DP9900M** module (12 V or 24 V variant, **sold separately**) | PoE module output → same buck converter as the terminal | power straight from the LAN cable |
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(2).jpg) > **PoE note:** We recommend the **24 V** variant of the DP9900M it better matches the converter input range and gives higher efficiency. The module meets **IEEE 802.3af** (up to 12.95 W), is galvanically isolated, and works with any PoE switch or injector.
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(4).jpg)
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(5).jpg) The whole power chain is protected: terminal inputs are fused with a polyfuse, and the RS485 bus has TVS diodes (PSM712) and a polyfuse (MF-MSMF010-2) against overvoltage and shorts from the external line.
See annotated diagrams in [`img/power/`](img/power) for each option.
---
## 🔌 RS485 wiring & terminal voltage
The RS485 terminal has **three pins: GND, A, B**.
- **A and B are NOT power pins** they carry the differential *data* signal from the isolated **WS3081** transceiver. At idle the AB difference is ~0 V; while transmitting, |AB| is roughly **1.53 V** under load (per the RS485 standard the driver outputs ≥1.5 V differential, receivers detect ±200 mV, common-mode range 7 V to +12 V). **There is no usable supply voltage on A/B.**
- **Powering a remote RS485 device:** the terminal block also brings out **12/24 V IN/OUT**, so the same voltage you use to power the ESPlan (12 or 24 V) can be looped out to power a field sensor over the same run. If your sensor needs a different voltage (e.g. 5 V), use a local regulator at the sensor.
- **Bus wiring:** connect **A↔A, B↔B, GND↔GND**. At the end of a long run enable the on-board **120 Ω** termination with the **BUS_TERM** jumper no external terminator needed.
---
## 🌐 Connectivity & interfaces
- **Ethernet** LAN8720A PHY (Fast Ethernet 10/100 Mbps), HanRun RJ45 with integrated magnetics and status LEDs.
- **RS485** fully isolated WS3081 transceiver with TVS protection, screw terminal (GND, A, B), on-board 120 Ω termination via the `BUS_TERM` jumper.
- **Wi-Fi + Bluetooth** built into the ESP32-WROOM-32E (2.4 GHz Wi-Fi 802.11 b/g/n, Bluetooth 4.2 / BLE).
- **microSD card** slot over SPI with card-detect.
- **I²C connector** dedicated 4-pin connector (3.3 V, GND, SCL, SDA) with pull-ups for sensors, displays, etc.
- **µSup connector** SPI connector for the optional supercapacitor module (µSup) for short backup during power loss.
- **GPIO header** all free ESP32 pins broken out on a populated header.
---
## 📍 Pinout (v2.1)
| Function | GPIO |
| --- | --- |
| **I²C** SDA / SCL | IO33 / IO32 |
| **SPI** MISO / MOSI / CLK / CS | IO12 / IO13 / IO14 / IO15 |
| **microSD** MISO / MOSI / CLK / CS / CD | IO12 / IO13 / IO14 / IO2 / IO34 |
| **Ethernet** MDC / MDIO / NRST / CLK | IO23 / IO18 / IO5 / GPIO17 (out) |
| **User LED** (SK6812) | IO0 |
| Input-only pins | IO34, IO35, IO39 |
![ESPlan pinout](img/ESPlan_pinout.png)
### Controls & LED
- **RESET** button resets the ESP32.
- **IO0 / BOOT** button enter firmware upload mode (RESET + IO0).
- **Status LED** (SK6812) on IO0 programmable user LED.
> **Ethernet init (Arduino core 2.x):** the LAN8720A clock is on GPIO17. A known-good call is:
> ```cpp
> ETH.begin(0, -1, 23, 18, ETH_PHY_LAN8720, ETH_CLOCK_GPIO17_OUT);
> ```
> On newer cores use the named-enum signature, e.g. `ETH.begin(ETH_PHY_LAN8720, ETH_ADDR, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_POWER_PIN, ETH_CLOCK_GPIO17_OUT);`
>
> **I²C init:** `Wire.begin(33, 32);`
---
## 📐 Specifications
| | |
| --- | --- |
| **MCU** | ESP32-WROOM-32E (Xtensa LX6 dual-core 240 MHz, 4 MB Flash, Wi-Fi + BT) |
| **Ethernet PHY** | LAN8720A-CP, Fast Ethernet 10/100 Mbps |
| **RS485** | WS3081, half-duplex, isolated, TVS protection, optional 120 Ω termination |
| **Power USB-C** | 5 V |
| **Power terminal** | 740 V DC (12 or 24 V recommended) |
| **Power PoE** | IEEE 802.3af via DP9900M module (12 V or 24 V variant, sold separately) |
| **Internal rails** | 5 V (buck LMR14050, up to 5 A) → 3.3 V (LDO XC6220) |
| **microSD** | SPI, connector with card detect |
| **Programming** | USB-C with on-board USB-UART bridge (auto-boot), RESET + BOOT buttons |
| **Compatibility** | Arduino IDE, ESP-IDF, ESPHome, Tasmota, MicroPython |
---
## 📦 Package contents
- 1× LaskaKit ESPlan v2.1
The PoE module (SDaPo DP9900M) and the 3D-printed enclosure are **not included** ordered separately.
---
## 🖨️ 3D-printed enclosure
STL/3MF files for the enclosure are in the [`3D`](3D) folder.
---
## License & support
Open-source hardware by LaskaKit. Questions, issues and pull requests are welcome via the [Issues](../../issues) tab.

View File

@ -1,26 +1,117 @@
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(1).jpg) # ESPlan v2.1
# ESPlan **Jiné jazyky: [English](README.md)**
ESP32 má Wi-Fi a Bluetooth rozhraní přímo v sobě, ale někdy je potřeba jej rozšířit o ethernet nebo RS485. Proto jsme vytvořili [ESPlan](https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/), ten má všechny čtyři vyjmenované periférie na jedné jediné desce - je potřeba komunikovat skrze Wi-Fi? Není problém. Bluetooth? I ten můžeš použít. RS485 pro připojení čidel, která jsou desítky metrů daleko? Samozřejmě! A data odesílat přes ethernet? Jasně! A navíc můžeš desku napájet skrze PoE.
K podpoře PoE potřebuješ [5V PoE modul](https://www.laskakit.cz/sdapo-dp1435-poe-modul-ieee-802-3af-5v-2-4a/), který u nás v e-shopu také najdeš. ![ESPlan](img/ESPlan_top.jpg)
Máme dvě verze ESPlan lišící se typem antény **LaskaKit ESPlan** je průmyslová vývojová deska postavená na modulu **ESP32-WROOM-32E**. Kombinuje drátový **Ethernet (LAN8720A)**, izolovanou sběrnici **RS485**, **Wi-Fi + Bluetooth** a **tři nezávislé způsoby napájení** včetně volitelného **PoE**. Deska je určena pro průmyslovou automatizaci, IoT brány, domácí automatizaci (Home Assistant, ESPHome) i vzdálené senzorové uzly, kde je potřeba spolehlivá kabelová konektivita bez závislosti na Wi-Fi.
- s anténou na DPS
- s konektorem pro anténu (výhoda je připojení na delší vzdálenost)
Jako LAN kontrolér jsme použili osvědčený LAN8720A. Tento kontrolér je totiž podporován v HomeAssistant a stejně tak v ESPhome. To znamená, že tuto desku si můžeš připojit přímo do tvé chytré domácnosti nebo dílny. Navrženo a vyrobeno v ČR 🇨🇿
Konektor USB-C, který je na desce zajištuje jak napájení (pokud nepoužíváš [PoE modul](https://www.laskakit.cz/sdapo-dp1435-poe-modul-ieee-802-3af-5v-2-4a/)), tak i programování. Programátor je totiž na desce - žádné zbytečné mačkání tlačítek, aby ses dostal do bootloader režimu a mohl programovat - tohle se totiž dělá "samo". Stránka produktu: <https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/>
O napájení celé desky se stará spínaný, s vysokou účinností (max 96%) , měnič SY8089, který z 5V vytvoří stabilní napájení 3.3V/ až 2A. ---
Na desce, kromě RJ45, RS485 a USB-C, najdeš i náš uŠup konektor pro připojení čidel (teplota, vlhkost, CO2, tlak, ...) a GPIO header s vyvedenými GPIO, aby sis mohl, kdybys chtěl, připojit další zařízení. ## ⚡ Napájení tři možnosti
ESPlan koupíš na https://www.laskakit.cz/laskakit-esplan-esp32-lan8720a-max485-poe/ ESPlan v2.1 podporuje tři zdroje napájení, které lze libovolně kombinovat. Vždy je aktivní ten s **nejvyšším napětím**.
![ESPlan pinout](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan_pinout.png) | Zdroj | Vstupní napětí | Cesta na desku | Typické použití |
| --- | --- | --- | --- |
| **USB-C** | 5 V | přímo na 5V větev | vývoj, programování |
| **Šroubovací svorkovnice (+12/24 V, GND)** | **740 V DC** (doporučeno 12 nebo 24 V) | step-down **LMR14050** (až 5 A) → 5 V → LDO **XC6220** → 3,3 V | průmyslový zdroj, DIN lišta |
| **PoE (Power over Ethernet)** | přes volitelný modul **SDaPo DP9900M** (varianta 12 V nebo 24 V, **kupuje se zvlášť**) | výstup PoE modulu → stejný buck měnič jako svorkovnice | napájení přímo z LAN kabelu |
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(2).jpg) > **Poznámka k PoE:** Doporučujeme variantu DP9900M **24 V** lépe odpovídá vstupnímu rozsahu měniče a má vyšší účinnost. Modul splňuje **IEEE 802.3af** (až 12,95 W), má galvanické oddělení a pracuje s libovolným PoE switchem nebo injektorem.
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(4).jpg)
![ESPlan](https://github.com/LaskaKit/ESPlan/blob/main/img/ESPlan%20(5).jpg) Celý napájecí řetězec je chráněn: svorkovnicové vstupy jsou jištěny polyfuse, na RS485 sběrnici jsou TVS diody (PSM712) a polyfuse (MF-MSMF010-2) proti přepětí a zkratu z externího vedení.
Anotované obrázky ke každé možnosti najdeš v [`img/power/`](img/power).
---
## 🔌 RS485 zapojení a napětí na svorkách
Svorkovnice RS485 má **tři vývody: GND, A, B**.
- **A a B nejsou napájecí piny** nesou diferenciální *datový* signál z izolovaného transceiveru **WS3081**. V klidu je rozdíl AB přibližně 0 V; při vysílání je |AB| zhruba **1,53 V** pod zátěží (dle standardu RS485 vysílač generuje ≥1,5 V diferenciálně, přijímač detekuje ±200 mV, common-mode rozsah 7 V až +12 V). **Žádné použitelné napájení na A/B není.**
- **Napájení připojeného RS485 zařízení:** na svorkovnici je navíc vyvedeno **12/24 V IN/OUT**, takže stejné napětí, kterým napájíš ESPlan (12 nebo 24 V), můžeš vyvést ven a napájet jím vzdálené čidlo po stejném vedení. Pokud čidlo potřebuje jiné napětí (např. 5 V), použij u čidla vlastní měnič.
- **Zapojení sběrnice:** propoj **A↔A, B↔B, GND↔GND**. Na konci dlouhého vedení zapni zakončovací odpor **120 Ω** jumperem **BUS_TERM** externí terminátor není potřeba.
---
## 🌐 Konektivita a rozhraní
- **Ethernet** PHY LAN8720A (Fast Ethernet 10/100 Mbps), konektor RJ45 HanRun s integrovanými transformátory a stavovými LED.
- **RS485** plně izolovaný transceiver WS3081 s TVS ochranou, šroubovací svorkovnice (GND, A, B), zakončení 120 Ω přes jumper `BUS_TERM`.
- **Wi-Fi + Bluetooth** vestavěné v ESP32-WROOM-32E (2,4 GHz Wi-Fi 802.11 b/g/n, Bluetooth 4.2 / BLE).
- **microSD karta** slot přes SPI s detekcí karty.
- **I²C konektor** dedikovaný 4pinový konektor (3,3 V, GND, SCL, SDA) s pull-up rezistory pro senzory, displeje apod.
- **µSup konektor** SPI konektor pro volitelný modul superkondenzátoru (µSup) pro krátké zálohování při výpadku napájení.
- **GPIO header** všechny volné piny ESP32 vyvedeny na osazený header.
---
## 📍 Pinout (v2.1)
| Funkce | GPIO |
| --- | --- |
| **I²C** SDA / SCL | IO33 / IO32 |
| **SPI** MISO / MOSI / CLK / CS | IO12 / IO13 / IO14 / IO15 |
| **microSD** MISO / MOSI / CLK / CS / CD | IO12 / IO13 / IO14 / IO2 / IO34 |
| **Ethernet** MDC / MDIO / NRST / CLK | IO23 / IO18 / IO5 / GPIO17 (out) |
| **Uživatelská LED** (SK6812) | IO0 |
| Pouze vstupní piny | IO34, IO35, IO39 |
![ESPlan pinout](img/ESPlan_pinout.png)
### Ovládací prvky a LED
- Tlačítko **RESET** reset ESP32.
- Tlačítko **IO0 / BOOT** vstup do režimu nahrávání firmware (RESET + IO0).
- **Stavová LED** (SK6812) na IO0 programovatelná uživatelská LED.
> **Inicializace Ethernetu (Arduino core 2.x):** hodiny LAN8720A jsou na GPIO17. Ověřené volání:
> ```cpp
> ETH.begin(0, -1, 23, 18, ETH_PHY_LAN8720, ETH_CLOCK_GPIO17_OUT);
> ```
> Na novějších core použij signaturu s pojmenovanými enumy, např. `ETH.begin(ETH_PHY_LAN8720, ETH_ADDR, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_POWER_PIN, ETH_CLOCK_GPIO17_OUT);`
>
> **Inicializace I²C:** `Wire.begin(33, 32);`
---
## 📐 Specifikace
| | |
| --- | --- |
| **MCU** | ESP32-WROOM-32E (Xtensa LX6 dual-core 240 MHz, 4 MB Flash, Wi-Fi + BT) |
| **Ethernet PHY** | LAN8720A-CP, Fast Ethernet 10/100 Mbps |
| **RS485** | WS3081, half-duplex, izolovaný, TVS ochrana, volitelné zakončení 120 Ω |
| **Napájení USB-C** | 5 V |
| **Napájení svorkovnice** | 740 V DC (doporučeno 12 nebo 24 V) |
| **Napájení PoE** | IEEE 802.3af přes modul DP9900M (varianta 12 V nebo 24 V, kupuje se zvlášť) |
| **Interní napájecí větve** | 5 V (buck LMR14050, až 5 A) → 3,3 V (LDO XC6220) |
| **microSD** | SPI, konektor s detekcí karty |
| **Programování** | USB-C s on-board USB-UART převodníkem (auto-boot), tlačítka RESET + BOOT |
| **Kompatibilita** | Arduino IDE, ESP-IDF, ESPHome, Tasmota, MicroPython |
---
## 📦 Obsah balení
- 1× LaskaKit ESPlan v2.1
PoE modul (SDaPo DP9900M) a 3D tištěná krabička **nejsou součástí balení** objednávají se samostatně.
---
## 🖨️ 3D tištěná krabička
STL/3MF soubory krabičky najdeš ve složce [`3D`](3D).
---
## Licence a podpora
Open-source hardware od LaskaKit. Dotazy, chyby i pull requesty vítáme přes záložku [Issues](../../issues).