Skip to content

lucaelin/lldp-esp

Repository files navigation

LLDP-ESP

The LLDP-ESP tool is a ESP32-Firmware and WebApp useful for debugging or configuring network equipment.

Its purpose is to passively listen on ethernet traffic and extract information about the switch it is connected to.

If the connected equipment is sending LLDP messages, those are parsed and displayed, too.

Disclaimer: This Software is currently considered alpha. This means that:

  • The WebApp is only compatible with an up2date device firmware. If you experience issues, please check if you have the latest firmware installed.
  • The WebApp device-history feature might contain incompatible snapshots. There is no guarantee older snapshots remain working in a later software release.

Hardware

I designed this software to run on the Olimex ESP32-POE-ISO. This SoC includes an ESP32-WROOM-32, a 100Mbit/s Ethernet interface and can be powered using PoE, USB or an external battery.

On the far side of the network, I tested Ubiquity Unifi devices and Servers running lldpd. If you have different Vendors to test with feel free to file an issue (even if they just work).

To display information extracted by the controller, I built a webapp to run on my Laptop or Android Phone (no iOS support, but I used an iPhone to take pictures of my Android).

The firmware now also supports the Waveshare Black/Red 1.54inch E-Ink display (rev2.1) using SPI to show a condensed set of information directly on the device.

Both the ethernet driver as well as SPI pinout can be configured using idf.py menuconfig. If you need more config options or confirm compatibility with different hardware, feel free to file an issue.

Getting started

Download the repository and setup your esp-idf build environment. You can use idf.py menuconfig to configure the ethernet or epaper setup. Next, use idf.py -p <your_serial_esp_device> build flash monitor to load the firmware onto your device.

Once your ESP is up and running, use your browser to navigate to https://lucaelin.github.io/lldp-esp

You can now use the "connect" button at the top. You'll see a list of Bluetooth-devices. Choose your device and click pair.

Hint: You can use Chromes "Add to Homescreen"-feature to create a native look'n'feel on Android

What can I see after connecting?

You will be shown information about:

  • Bluetooth connectivity status
  • Ethernet connectivity status
  • LLDP status and information (if advertised), like
    • Name of the switch
    • Port on the switch
    • VLANs the port is configured for
    • and more
  • Detected VLANs

Technologies and software used

Ideas ahead

  • Add more LLDP information
  • 3D-Printed case
  • Find more ways to gather information if LLDP is unavailable
  • Support more / other ePaper-Modules
  • Improve GATTS server code to make it easier to extend
  • Add offline-support to the webclient
  • Wrap webclient into native App to support iOS