L86 fix problems with ESP32

I am using an L86 with ESP32. when i just run L86 and ESP32 it works fine, getting a good fix. But if I run a program with a screen and BLE it does not get a fix even after an hour. It shows 0 sat in the same place I was just a few minutes ago getting 9-10. No issues with the code in processing NMEA data as all sentences are received just all fields 0.
If I run the same code but wait 90 seconds before turning on BLE and screen, the GPS gets a good fix on 9-10 Sat. Here Vcc and VBKUP are connected to the 3.3 v from ESP32.
What could be causing this Issue?
@quectel-supp-pls @Quectel-user

@Raphael-Q pls help to identify the problem here! Urgently need help for a college project

This seems to be hardware interference.
You can put L86 next to ESP32 and use PC to open L86 serial port to check NMEA output.
I don’t know much about your ESP32 code, is the buffer overflowed?

Currently this is my circuit - ESP32, i2c IMU, SPI tft screen, serial GPS(L86), i2s amplifier. All supplied power from esp32 3.3v pin. No filter caps used before GPS.
below roughly is pseudocode
start gps serial;
delay;
initialize ble;
initialize screen;
all other functions

when the delay block is 90 seconds, the gps gets a good fix. when delay is less than 10 seconds, then does not get a fix even after 30 minutes. Full NMEA sentences are always output in both the cases, so don’t think buffer overflow is an issue

You can connect the serial port to the PC at the same time to see if it is not fixed.
That is, connect the L86 serial port to the PC and ESP32 at the same time.

The RX and TX of L86 connected to ESP32 as well as PC??
Or L86 to PC and ESP32 to PC?