ILI9341 on ESP32

First, I apologize if some things I say are wrong or make no sense, I am pretty new to this.

A friend gave me an ESP-WROOM-32 board (38 pins, with CH340G), and an ILI9341 3.2'' tft lcd (TFT_320QDT_9341, 40 pins). At first I thought it was impossible to connect it to the esp32 board since it needs so many pins, but I read that these type of displays can be used used in 8 bits mode by moving a resistor in the lcd flex cable. Then it would use only 8 data lines, making it possible to connect to the esp32.

Here are some pics of the boards (click to enlarge):

This is the pinout reference I am using:

The lcd flex cable has R2 populate and R1 empty, I don't know which mode this is since my flex doesn't have the 8/16 numbers printed like some others I saw online, and I found some say R1 populated is 8 bit and other said R2 populated is 8 bit, so I decided to just try it as is before touching that.

I installed espressif/arduino-esp32 and selected the board FireBeetle-ESP32 since it seems to match the pins on my board. I tested a simple led blink code on random pins to confirm that and everything worked fine. Then I installed Bodmer/TFT_eSPI because it was the only one I found for ESP32 that I could easily edit the pinout.

I edited User_Setup_Select.h, commented "#include <User_Setup.h>" and uncommented "#include <User_Setups/Setup14_ILI9341_Parallel.h>", first I tried the default pinout from Setup14_ILI9341_Parallel.h:

LCD ESP32
VCC 3v3
GND GND
LEDA 3v3
CS 33
DC 15
REST 32
WR 4
RD 2
DB8 12
DB9 13
DB10 26
DB11 25
DB12 17
DB13 16
DB14 27
DB15 14

Also tried this pinout I found on some github comment (edited Setup14_ILI9341_Parallel.h after rewiring):

LCD ESP32
VCC 3v3
GND GND
LEDA 3v3
CS 33
DC 15
REST 19
WR 32
RD 18
DB8 27
DB9 12
DB10 13
DB11 14
DB12 16
DB13 17
DB14 25
DB15 26

I uploaded the UTFT_demo.ino sketch, but all I got was a white screen. Tried using DB0-DB8 too, tested different upload speed and flash frequency, same white screen. When uploading the sketch, I get this on the serial monitor:

I've no idea what it means (switching baud rates doesn't "decode" the first part either). Rebooting the board doesn't clear the serial monitor and show that again, like other simple sketch do. So I added a printf() on setup() and another on loop() and they never show up on the serial monitor. (I also downloaded MCUFRIEND_kbv and tried the LCD_ID_reg sketch, but got the same issue). I removed most of the code of the demo like this:

#include "SPI.h"
#include "TFT_eSPI.h"

#define TFT_GREY 0x7BEF

TFT_eSPI myGLCD = TFT_eSPI();

unsigned long runTime = 0;
void setup()
{
// Setup the LCD
 //myGLCD.init();
 //myGLCD.setRotation(1);
 printf("setup!\n");
}

void loop()
{
 printf("loop!\n");
 //myGLCD.fillScreen(TFT_BLACK);
 delay(1000);
}

And the printf only works when all calls to myGLCD are commented like in the above code. If I uncomment myGLCD.init(), the printfs stop showing up, only shows whats in the last image. It does this regardless if the lcd is connected or not to the board.

Should I go ahead and try the R1-R2 swap thing in the lcd flex? Or what else could I try before doing that? What worries me is that printf thing, it's like the program is crashing or something.