ESP32-EVB now get much better

ESP32-EVBESP32-EVB revision A was made quick and has too many errors 🙂 some were due to the non very clear documentation, like that we assumed that all ports could have internal pull-ups but  when we try to write the software we found that the GPIOs we used for the buttons has no such. Other were done by our engineer negligence.

We had small 100 pcs series from Revision A, but after all issues we encounter just decided to trash it and just move forward to revision B.

Now in Revision B all interfaces are tested and confirmed to work fine 🙂

What we keep:

  1. Two relays 250VAC/10A
  2. LiPo charger which allow ESP32 to work without external power supply
  3. Reset and User button
  4. micro SD card
  5. UEXT connector to add temperature, humidity, etc sensors
  6. GPIO with all signals available on 0.1″ proto friendly step connector

What we add:

  1. USB connector now is also used for automatic programming of ESP32 so no need for external serial cable, with DTR and RTS bootloader mode is entering automatically
  2. Ethernet now is correctly wired and works 🙂
  3. We were surprised to read ESP32 has CAN and we try and it works great, so in the new revision we add CAN driver
  4. We add Infrared transmitter and receiver, so now you can control all your home appliances with IR control like TVs, VCRs, Air conditioners, and everything else with IR control

What we removed:

  1. second button, with all above peripherals the ESP32-WROOM-32 module resources are gone, there is no single GPIO unused left

Revision B schematic can be reviewed here . The PCB is now routing.

Color TFT 2.8″ LCD 320×240 pixel display board with UEXT compatible to ESP32-EVB is also coming soon.

18 Comments (+add yours?)

  1. Trackback: ESP32-EVB now get much better | olimex | The Frogs blog
  2. SK
    Apr 06, 2017 @ 20:03:34

    “USB connector now is also used for automatic programming of ESP32” – nice!
    For the rev A PCBs (or assembled boards?) – you can sell them as dints&dents like Sparkfun does (with explicit warning that they not operate, etc, etc.) – you will be surprised how much nerds love the trash, and it is more environmentally friendly.


  3. Andrei B
    Apr 07, 2017 @ 03:01:23

    @olimex: you should thanks rudi for testing!


  4. suggestion
    Apr 07, 2017 @ 21:35:54

    Would really like to see a display board for UEXT with EPD instead of LCD.


  5. Robin
    Apr 10, 2017 @ 18:04:26

    When you run the board from battery, how does your “stop the clock until boot” circuit work? Also, check the clock voltages on a scope. I had to add a 100 ohm resister between the clock and GPIO0 due to the ESP32 pulling down the voltage sufficiently to make the clock unstable. That may just be an artifact on my board.


    • LubOLIMEX
      Apr 14, 2017 @ 16:49:44

      Thank you for this input. The 100 Ohm is not good enough. We are considering other options, waiting for few parts to arrive to test.


  6. Andrei B
    Apr 11, 2017 @ 14:53:27

    @Robin, I think that a capacitor to the ground on E/D pin can solve the booting problem when you attach a power supply (e.g. battery) – I did not test. I’m not familiar with ESP booting process but I’m wondering if the pin configuration is reading after you did and OTA?
    @olimex, do you have some hints?


  7. pboi
    Apr 11, 2017 @ 15:01:04

    Is there any reason that you use a LAN8710A instead of a LAN8720A as ethernet


  8. Frank Sautter
    Apr 14, 2017 @ 12:51:19

    I think your circuit to disable the 50MHz oscillator does not work as intended.
    The clock signal on GPIO0 should only be enabled after the initial bootloader has finished. Otherwise the ESP32 waits in the serial bootloader mode depending on the state of the clock signal when the GPIO0 input is read.
    I also recommend using the LAN8720 as the RX2/3 and TX2/3 of the LAN8710 are not needed for the RMII interface (cheaper, less board space)


  9. Jesper
    Apr 15, 2017 @ 10:51:43

    The diode hack to pull down GPIO2 can be skipped, by dropping the external pull-up on the DATA0 line and enabling the internal pullup.
    I just verified that on my board.


    before the call to esp_vfs_fat_sdmmc_mount

    GPIO15 id pull-up by default, so it’s not needed either, it seems.

    Actually, I tried without any pull-ups at all, not even on the unused DATAn lines, and it works fine.


  10. Andrei B
    Apr 25, 2017 @ 15:25:08

    @Olimex: guys, change the PHI to LAN8720 and use a PCA9570 (I2C to GPIO output expander) where you can connect the ETH clock enable and the 2 relays + 1 GPIO output.
    As design I would go with rudi’s circuit:

    Good Luck,


  11. Trackback: Olimex Updates | esp8266hints
  12. William
    Jun 28, 2017 @ 03:06:07

    I tried to connect to my board using Arduino. It sees the board, but not the usb serial connection. Am I missing something?


  13. Simonious
    Jun 21, 2018 @ 17:53:45

    This is a great little board, so far I’m just viewing my output over serial and sending some CAN packets with it.
    I plan to begin exploring bluetooth next – if someone can point me at some bluetooth resources for this target that would be helpful.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: