CAN'T READ GPS DATA FROM GPS Module

  1. My goal is:
    Reading gsm data from gps module (UART) into ESP32 DEVKIT C with WROOM-32 Module
  2. My actions are:
    My connections:
  • GND on GPS to GND on ESP32
  • VCC on GPS to 3v3 on ESP32
  • RX on GPS to Pin 16 (GPIO16) UART2 TX2 port on ESP32
  • TX on GPS to Pin 17 (GPIO17) UART2 RX2 port on ESP32
    (Went out doors and got both LEDS (on GPS and ESP32) ON
    My code:
load('api_uart.js');

let uartNo = 2;  // UART1

// Configure UART
UART.setConfig(uartNo, {
    baudRate: 9600,
    tx_gpio: -1,
    rx_gpio: 17,
});

// Set UART event handler
UART.setDispatcher(uartNo, function(uartNo, data) {
    // Process or print the received data
    print('GPS DATA: ', data);
}, null);

// Enable UART receiver
UART.setRxEnabled(uartNo, true);

Built the code and flashed it onto the microcontroller
Result: GPSDATA: null
3. The result I see is:
Result: GPSDATA: Some GSM Data atleast
4. My expectation & question is:
What is wrong with my process… What is the right way yo do this?
Diagram:

Please do not broadcast, use your time to read the docs and save ours

From Gitter chat:

A short response to your question is: “everything; read the docs, do it properly”
A long response (well, series of questions…):
Did you check whether “Tx” means “my Tx” or “your Tx” ? Did you actually see the GPS serial port signals to see they are actually serial signals and they are present ? Is the baudrate correct ? Did you read the docs for the function you are using ? Do you know what “userdata” means ? Did you care to see an example on using the UART ?
Mongoose OS Documentation
LMGTFY

// Set dispatcher callback, it will be called whenever new Rx data or space in
// the Tx buffer becomes available
UART.setDispatcher(uartNo, function(uartNo) {
  if (UART.readAvail(uartNo) > 0) {
    let data = UART.read(uartNo);
    let ra = data.length;

Is the GPS module actually a 3V module ?