Ok;
Seems I don't have to keep writing GPX data to scroll the screen. It is now working (Yay!). From my Scroll Screen function, I was missing the Column set and page set functions, along with the RAMWR function.
void TFT::tft_ScrollScreen(uint16_t Line){
tft_write(0x37, COM_MODE, Wx);
tft_write(Line >> 8, DAT_MODE, Wx);
tft_write(Line & 0xFF, DAT_MODE, Wx);
// X Start
tft_write(Line >> 8, DAT_MODE, Wx);
tft_write(Line & 0xFF, DAT_MODE, Wx);
// X End
tft_write((Line+1) >> 8, DAT_MODE, Wx);
tft_write((Line+1) & 0xFF, DAT_MODE, Wx);
tft_write(ILI9341_PASET, COM_MODE, Wx); // Y Set
// Y Start
tft_write(Line >> 8, DAT_MODE, Wx);
tft_write(Line & 0xFF, DAT_MODE, Wx);
// Y End
tft_write((Line+1) >> 8, DAT_MODE, Wx);
tft_write((Line+1) & 0xFF, DAT_MODE, Wx);
tft_write(ILI9341_RAMWR, COM_MODE, Wx); // Write to RAM
}
I'm now struggling to set the "area" for scrolling. I think you were right about the Wx Rx pin, as I've changed it to Wx in the scrolling function.
I'm now guessing that this function isn't correct and the flow charts aren't helping lol.
void TFT::tft_VertScrollingSetup(){
// Setup the area of screen defined for scrolling
tft_write(ILI9341_VSCRDEF, COM_MODE, Wx);
tft_write(SCROLLING_TFA >> 8, DAT_MODE, Wx);
tft_write(SCROLLING_TFA & 0xFF, DAT_MODE, Wx);
tft_write(SCROLLING_AREA >> 8, DAT_MODE, Wx);
tft_write(SCROLLING_AREA & 0xFF, DAT_MODE, Wx);
tft_write(SCROLLING_BFA >> 8, DAT_MODE, Wx);
tft_write(SCROLLING_BFA & 0xFF, DAT_MODE, Wx);
}