Go Down

Topic: Using hidden UARTs in Lolin D32 pro (Read 4513 times) previous topic - next topic


Hi everyone, I have bought this board for a project I'm creating.

The project requires to be connected to a gps module via hardware serial to the micro processor (i need to set the baud to 115200 and software serial doesn't provides stable connections at those speeds).

This board provides tx and rx pins, however, according to the schematics, those pins are shared with the Serial monitor/programming chip, so for my needs is unusable. According to espressif spreadsheet, the wrover chip should have 3 uarts. One of them is located to the pin 17 and 18 (named sd2 and sd3). I could not find the 3rd.

My question is, if I connect directly to the wrover chip 2 cables to those pins and connect them to the gps module, is there any way a can use them or I'm gonna break something?

In the notes is specified this: "2. Pins SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD, namely, GPIO6 to GPIO11 are connected to the SPI flash integrated on the module and are not recommended for other uses."

I was already using a standard esp32 with a wroom chip (which has serial2 ready to use), i switched to the lolin becouse of the lipo/lion battery circuit.

Is there any way I can use the lolin for this application or i just have to revert to the old esp32?

Thanks, any idea is appreciated,
have a nice day.


I learned yesterday about my Wemos Lolin 32 (with OLED) that UART1 on ESP32 use the pin that uses flash memory. But UART2 is on pins 16 and 17, BUT, pin 17 is not broken out from the chip. So I just weld extra wire directly, and it works fine.


I'm not sure about your problem, but maybe something similar could be found from your board?

The only law for me; Ohms Law: U=R*I       P=U*I
Note to self: "Damn! Why don't you just fix it!!!"


Yes, the problem is pretty much the same.
However I saw that your board has the wroom chip (tell me if I'm wrong). And infact it has U2RX and U2TX free from other functions such as serial monitor or internal flash memory. This allowed you to use the extra UART.

In my case, with the wrover chip, I could find only the U0XX and the U1XX UARTs in the espressif datasheet which are both used (by the internal spi memory, as you said, and by the connection with the pc).

I don't know if I'm missing something or it this designed to not have any UART free for devices that requires high baud (so not usable with software serial).

And infact, I had no issue connecting the gps module with the "normal" esp32 which has the wroom chip even though they are signed as tx0 and rx0 on the board.
It is a generic esp32 so I don't have the schematic to confirm it.


Jan 11, 2020, 11:59 am Last Edit: Jan 11, 2020, 12:22 pm by cog3981
I've just seen this topic. I have Lolin D32 Pro V2.0.0 and I use the UART1 and UART2 for GPS and GPRS module at the same time.
There are 3 UARTs and you can remap the pins except the UART0 so it is programmable!

self.uart_gprs = UART(1, baudrate=9600, bits=8, parity=None, stop=1, rx=12, tx=14, timeout=50)
self.uart_gps = UART(2, baudrate=9600, bits=8, parity=None, stop=1, tx=33, rx=32, timeout=50)

This code fragment is micropython but I used the same in c++ on this board.

What is important that arduino libraries and also micropython are based on freertos. It means that if you set too high timeouts on UARTs, that will trigger the timeout handler of Freertos and do a crash/restart.

That is my experience. BTW my GPS module can use very low baudrate such as 9600.

Go Up