logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

Olimex ESP32-EVB - ESP32 open source & open hardware development board with LAN

p.kaczmarek2 1116 7

TL;DR

  • Olimex ESP32-EVB is a fully open-source ESP32 development board with LAN, Wi‑Fi/BT, two relays, IR, CAN, microSD, LiPo charging, USB-UART, and UEXT expansion.
  • It pairs an ESP32-WROOM-32E with a LAN8710A wired Ethernet controller and was tested in PlatformIO with the Arduino framework and ready-made ESP32-EVB/LAN support.
  • The board cost £150 and arrived with an antenna and three plastic non-slip feet.
  • Ethernet only started working after manually resetting the controller with a sufficiently long delay, and then a "hello world" page loaded over cable without Wi‑Fi.
  • The relays responded to GPIO-controlled buttons, and IRremoteESP8266 correctly decoded TV and decoder remotes as RC5 and NEC, but the price feels high versus a minimal ESP32 setup.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • Red Olimex ESP32-EVB dev board with Ethernet port, relays, and connected antenna cable on a white surface
    I would like to invite you to a presentation and launch of a fully open source ESP32 development board from Olimex. Everything is available for this project - you can even download the PCB design in KiCad and customise it to your needs. The ESP32-EVB features the ESP32-WROOM-32E Wi-Fi/BT module, an additional LAN8710A wired Ethernet controller, LiPo battery capability thanks to the TP4054 controller, a built-in CAN transceiver, two relays, a USB to UART converter (for programming, among other things), a microSD card slot, an IR transmitter and receiver, and abundant connectors, including Olimex's UEXT to connect additional peripherals.
    Olimex box with a label reading “ESP32‑EVB‑EA rev. K1” on a light surface
    And let's not forget the ability to connect an antenna.
    Close-up of a red Olimex ESP32‑EVB PCB showing LAN module area and dense SMD components Close-up of a red PCB with a relay, screw terminals, and a DC barrel power jack
    Close-up of Olimex ESP32-EVB red PCB with relay, screw terminals, DC barrel jack, and USB-C port Bottom side of a red Olimex ESP32‑EVB PCB with pin labels, solder pads, and printed logos
    I bought the board for £150.
    Project repository:
    https://github.com/OLIMEX/ESP32-EVB
    Schematic:
    Schematic of the Olimex ESP32-EVB board with blocks for power, Ethernet, relays, UEXT, SD, CAN, IR, and USB-UART
    It came with an antenna and three plastic non-slip feet. Apparently the price is quite high, but maybe it's worth it? Especially since the manufacturer plays open cards - everything is made available.

    Time to see if it's just as easy to run peripherals on this board.


    Ethernet
    I chose the PlatformIO environment, a Visual Code add-on, to work with the ESP32. As it happens, the ESP32-EVB board is already integrated with it - its profile is available in the repositories. Similarly, we already have the LAN driver ready.
    My platformio.ini:
    
    [env:esp32-evb]
    platform = espressif32
    board = esp32-evb
    framework = arduino
    monitor_speed = 115200
    
    build_flags = 
    	-D ETH_PHY_TYPE=ETH_PHY_LAN8720
    	-D ETH_PHY_ADDR=0
    	-D ETH_PHY_MDC=23
    	-D ETH_PHY_MDIO=18
    	-D ETH_PHY_POWER=-1
    	-D ETH_CLK_MODE=ETH_CLOCK_GPIO0_IN
    
    

    However, I had a bit of a problem with just getting the LAN up and running. I tried various ways, but it was only when I modified the example to manually reset the controller with a sufficiently long delay that communication started. In this configuration the communication works even when powered by a long USB cable. For verification on Ethernet, I put up a simple "hello world" page that downloads fully over the cable - no Wi-Fi.
    Code: C / C++
    Log in, to see the code

    The example works, which means we have the basics:
    Olimex ESP32-EVB board with Ethernet cable and USB power connected, LEDs lit
    Screenshot: “Hello World from ESP32-POE2!” web page and RealTerm window showing Ethernet startup log



    Transmitters
    Another thing worth checking are the relays. There's not much philosophy here anymore - they are simply connected (via transistors) to two specific GPIOs. All you need is a simple pinMode and digitalWrite and you can control them. For the example, I have connected them to simple buttons on the page:
    Code: C / C++
    Log in, to see the code

    Full HTML code:
    https://pastebin.com/ES6dYX0u
    The result:
    Screenshot of “ESP32-EVB” web page showing Ethernet status and buttons Relay 1 ON and Relay 2 OFF
    The relays respond correctly to the buttons, this is how we made the simplest substitute for Tasmota.



    IR receiver
    The last thing I decided to test is the IR receiver. This should work with most IR remote controls from various appliances such as TVs, DVD players, radios or there air conditioners etc. On ESP, it's probably best to use the IRremoteESP8266 library for this. We still have the Arduino-IRRemote library, it too supports ESP, but it supports fewer protocols.
    We update the platformio.ini:
    
    lib_deps =
    	crankyoldgit/IRremoteESP8266 @ ^2.8.6
    
    

    The rest according to the examples - set the pin and decode.
    Code: C / C++
    Log in, to see the code

    I took two remotes from the living room - one from the TV, the other from the Internet TV decoder. Both are seen correctly, one transmits in RC5, the other in NEC.
    Screenshot of RealTerm showing IR event logs with RC5 and NEC protocols and hex codes

    Summary
    How do I rate this tile? Undoubtedly a lot can be done on it, although the price is quite high compared to the simplest base USB to UART + ESP32 converter connections such as the NodeMCU-32S. I certainly praise the variety of projects that can be realised with it - we have relays, we have IR, and there is even an option to connect a microSD card or there CAN bus. In addition, there are ready-made libraries for everything - there were no major problems at all getting the wired Ethernet up and running.
    Of the downsides of this board, I guess I could mention a potentially long list of issues from GitHub, although personally I haven't come across any of these problems yet. Additionally, I would have preferred that this 40-pin connector be replaced with something that is better described, and more accurately described on the description layer so that I know at a glance in advance which pin is which - this is just more convenient for me.
    On the plus side, however, there's also the UEXT connector - as far as I can see, Olimex has spent a bit on these modules and they're not that horrendously expensive, although £30 for an RTC, for example, is not the best deal of a lifetime either.
    Have you used the boards from Olimex? Is it worth paying more for such a ready-made board, or is it better to use the minimal version with ESP32 and possibly connect a module with LAN in bulk?
    Attachments:
    • ESP32-EVB-user-manual.pdf (482.92 KB) You must be logged in to download this attachment.
    • ESP32-EVB_Rev_L.pdf (1.99 MB) You must be logged in to download this attachment.

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 14252 posts with rating 12154, helped 647 times. Been with us since 2014 year.
  • ADVERTISEMENT
  • #2 21844904
    androot
    VIP Meritorious for electroda.pl
    I don't understand the point of such boards. I buy an ESP32 S3 (C3) Zero for $3 and sometimes less. For prototyping it is sufficient. Then I design my own board and for another $3-4 I have it ready for my project.
    I want an ETH connector then I add it, I need a micro SD card then I add it, I add the display as I need it. The board is smaller and tailored to my needs. Plus the satisfaction of having built something.
  • ADVERTISEMENT
  • #3 21844910
    zigipl
    Level 15  
    >>21844904 Different people different needs. Let there be someone who takes up the subject for the first time then immediately has all these elements connected to each other. No misconnections. No disconnecting cable. Just upload your program and you can move on.
  • #4 21845119
    oscil1
    Level 23  
    For a serious project, jtag is missing so that it can be debugged. As a toy - too expensive.

    Added after 1 [minute]:

    androot wrote:
    ESP32 S3


    The newer ones have the nice feature that they have a built-in jtag - you plug in the usb and you're good to go.
  • ADVERTISEMENT
  • #5 21845193
    gregor124
    Level 28  
    androot wrote:
    I don't understand the point of such boards. I buy an ESP32 S3 (C3) Zero for $3 and sometimes less. For prototyping it is sufficient. Then I design my own board and for another $3-4 I have it ready for my project.
    I want an ETH connector then I add it, I need a micro SD card then I add it, I add a display as I need it.


    I was reminded of the story of an American who, in the 1960s, bought the first real programmable calculator in the USA from Olivetti for a huge amount of money.
    Everyone tapped their heads as to why he had spent a fortune on a calculator when you could count structures on logarithmic sliders.
    And he, while the rest of us were counting 1 construction with the help of slide rules, was making 4 designs and making fewer mistakes in the process.
    150£ is a lot not to have to do the board design, ordering, assembling, then commissioning, and in the meantime looking for the cheapest and altogether unknown thing to get?
    By the time you get all those blocks together, someone with a board like that will have already finished that project and taken on another one.
    Helpful post? Buy me a coffee.
  • #6 21845220
    oscil1
    Level 23  
    gregor124 wrote:
    Before you get all these blocks together, someone with a plate like this will have already finished this project and taken on another.

    Definitely ROTFL
  • ADVERTISEMENT
  • #7 21845376
    krzbor
    Level 29  
    Strange these relays - only for 120V?

    Added after 1 [hour] 28 [minutes]:

    p.kaczmarek2 wrote:
    Is it worth paying more, for such a ready-made one, or is it better to use the minimal version with ESP32 and possibly connect a bulk module with LAN?

    I think as a developer and for learning, it's OK. But building something based on it is a bit of form over content - it's big and it's hard to find a project that uses most of its peripherals. On the electrode I presented a ready-made controller Link costing half the price of the module described here (in the version with 2 relays). It has relays, Ethernet and WiFi, I/O inputs, DIN housing and ready-to-use software with MQTT. You can order a version without preloaded software and write it yourself.
  • #8 21845543
    elektronik999
    Level 26  
    After all, that's what you're prototyping on. I use the B revision myself. Great perk for the Ethernet on the board and the microSD slot because that's the hardest thing to connect on a contact board so that it's stable. I make the firmware while a colleague designs the board.
📢 Listen (AI):

FAQ

TL;DR: £150 open-hardware ESP32-EVB packs Ethernet, CAN, microSD, IR, and 2 relays; “everything is made available.” [Elektroda, p.kaczmarek2, post #21844777]

Why it matters: This FAQ helps makers quickly bring up Ethernet, relays, and IR on ESP32-EVB without guesswork, whether prototyping or evaluating alternatives.

Quick Facts

What is the Olimex ESP32‑EVB and who should consider it?

ESP32‑EVB is an open‑source, open‑hardware board with Ethernet, CAN, relays, IR, microSD, LiPo charging, USB‑UART, and UEXT. It targets builders who want reliable, ready‑wired peripherals and published KiCad files. It suits rapid prototyping, lab demos, and small deployments needing wired LAN. [Elektroda, p.kaczmarek2, post #21844777]

How do I get Ethernet working on ESP32‑EVB with Arduino/PlatformIO?

Use the esp32-evb profile and ETH flags for LAN8720/8710A. Add a ~10 s startup delay, then call ETH.begin(0, -1, 23, 18, ETH_PHY_LAN8720, ETH_CLOCK_GPIO0_IN). Serve a WebServer on port 80 after ARDUINO_EVENT_ETH_GOT_IP.
  1. Configure build_flags for MDC=23, MDIO=18, CLK GPIO0_IN.
  2. Delay 10000 ms; toggle control pins per example.
  3. Start ETH, then server.begin(). [Elektroda, p.kaczmarek2, post #21844777]

What Ethernet PHY pins and settings does ESP32‑EVB use?

The example uses ETH_PHY_LAN8720 with address 0, MDC on GPIO23, MDIO on GPIO18, power pin -1, and ETH_CLOCK_GPIO0_IN. These settings matched the tested ESP32‑EVB and enabled stable cabled HTTP service after the delay. [Elektroda, p.kaczmarek2, post #21844777]

How can I control the onboard relays from a web page?

Map RELAY1 to GPIO32 and RELAY2 to GPIO33. Initialize as outputs low, expose endpoints like /relay/{id}/toggle using WebServer and UriBraces, and flip states with digitalWrite. The demo UI toggles both relays reliably over Ethernet. “The relays respond correctly to the buttons.” [Elektroda, p.kaczmarek2, post #21844777]

How do I read IR remote codes on ESP32‑EVB?

Install IRremoteESP8266 ^2.8.6, set IR_RECV_PIN to GPIO39, call irrecv.enableIRIn(), then decode in loop. The test captured NEC and RC5 frames, printing type and hex value. This verifies the onboard IR receiver path end‑to‑end. [Elektroda, p.kaczmarek2, post #21844777]

Does ESP32‑EVB include JTAG for debugging?

A user notes JTAG is missing on this board, calling it a downside for serious debugging. They add that newer ESP32‑S3 devices offer built‑in USB JTAG, but ESP32‑EVB uses ESP32‑WROOM‑32E. Plan for alternative debug methods if you need breakpoints. [Elektroda, oscil1, post #21845119]

Is the £150 ESP32‑EVB worth it versus designing a cheaper custom board?

If you value time, integration helps. As one user put it, “someone with a board like that will have already finished that project.” If you enjoy custom design, a minimal module can be cheaper but slower to integrate. Choose based on schedule and risk. [Elektroda, gregor124, post #21845193]

Does PlatformIO have a ready profile for ESP32‑EVB?

Yes. Select board = esp32-evb on platform = espressif32, framework = arduino. The LAN example builds cleanly with these settings and the provided ETH build_flags. Monitor at 115200 baud for events and IP logging. [Elektroda, p.kaczmarek2, post #21844777]

What power choices improve Ethernet stability on ESP32‑EVB?

Ethernet worked even over a long USB cable after adding a longer reset delay. If ETH.begin fails, the example suggests checking LAN_PWR and OSC jumpers and trying a 5V/2A barrel jack instead of USB. This addresses marginal startup conditions. [Elektroda, p.kaczmarek2, post #21844777]

Can ESP32‑EVB host a web server over wired LAN?

Yes. The example serves a “Hello World” page entirely via Ethernet, starting server.begin() after ARDUINO_EVENT_ETH_GOT_IP. It reports uptime seconds and confirms a stable cabled connection without Wi‑Fi. [Elektroda, p.kaczmarek2, post #21844777]

What is UEXT, and what can I add to ESP32‑EVB?

UEXT is Olimex’s 10‑pin expansion for I2C/SPI/UART modules. ESP32‑EVB exposes UEXT so you can add peripherals like RTC, sensors, or displays. The thread notes many modules exist, though some, like an RTC around £30, aren’t the cheapest options. [Elektroda, p.kaczmarek2, post #21844777]

What is a CAN bus, and does ESP32‑EVB support it?

CAN bus is a robust multi‑node serial network used in vehicles and industry. ESP32‑EVB includes a built‑in CAN transceiver, letting you connect to CAN networks without extra shields. You still implement protocol logic in firmware. [Elektroda, p.kaczmarek2, post #21844777]

Where can I download the open hardware files for ESP32‑EVB?

The project is fully open. You can download KiCad PCB sources and schematics from the linked repository. This enables modification, re‑spins, and easier compliance reviews. “You can even download the PCB design in KiCad.” [Elektroda, p.kaczmarek2, post #21844777]

What’s an edge case that can break Ethernet bring‑up?

A slow power‑on reset path can stall the PHY. The fix was a 10,000 ms delay before ETH.begin plus manual PHY reset toggles. After that, link and DHCP progressed and the web server started. Treat startup timing as a first‑class constraint. [Elektroda, p.kaczmarek2, post #21844777]

How do opinions differ on all‑in‑one boards vs. minimal ESP32 modules?

One view favors $3 minimal modules and custom add‑ons; another values integration to avoid wiring errors. “Different people different needs... Just upload your program and you can move on.” Balance cost against speed and reliability. [Elektroda, zigipl, post #21844910]

Can I replicate Tasmota‑like relay control on ESP32‑EVB?

Yes. The demo exposes simple HTTP endpoints to toggle GPIO32 and GPIO33, returning JSON. A basic HTML page controls both relays over Ethernet, acting like a minimal Tasmota substitute for on/off tasks. [Elektroda, p.kaczmarek2, post #21844777]
Generated by the language model.
ADVERTISEMENT