thought the hardware phase was over but my old TFT screen died 🤡 so i had to order a replacement. it looked exactly the same from outside but internally it behaved completely differently. because of that the whole project got delayed for a bit and i had to go back into hardware debugging again instead of continuing the software side
got a replacement that looked identical but touch refused to work. turns out these cheap screens have different internal wiring depending on the batch. wrote a diagnostic script and figured out the pins were different. had to swap XP and YM to digital pins 8 and 9 and route XM and YP to analog A2 and A3 to wake it up
once it was alive it started reading garbage noise with the Z axis pressure hitting crazy numbers like -13681. added strict MINPRESSURE 5 and MAXPRESSURE 3500 limits in the C++ code to filter out the fake inputs.then realized the manufacturer slapped the touch digitizer upside down. tapping top left opened the bottom right app. just inverted the coordinates in the Arduino map() function and flipped the Y axis completely through software.i have also pushed all the changes made for the new display in this commit
if you want to compare what changed after replacing the hardware you can check it here Commit
after recalibrating everything on the new display the hardware is finally back to the same stage as before. now the touch feels accurate again the bridge is stable and i can finally continue building the actual UI instead of fighting the hardware 😭