I recently designed my own board based on the usual ESP32 + ILI 240x320 touch. When buying the bare display (one without the PCB and header pins) I had the choice between “normal” and “IPS” displays. So I ordered the IPS aóne as these usually have a superior image.
The display worked fine out of the box but the colors were inverted. I have seen this with cheap R-Pi display addons as well.
One solution is to use the “invert display” command (0x21) to the ili9341 to adjust for this inversion right after calling the constructor:
disp = ili9341(miso=......) # call constructor as usual disp.send_cmd(0x21); # send "invert display" command
The resulting image has the correct colors and looks indeed significantly better than the normal non-IPS displays.