@imolodkin

The redraw technique used works best on small displays but if you make the following changes to the post #27 sketch then it should fix your missing pixels. If it does not then post your sketch so I can run it and see what changes you have made.

Near the start of sketch change the line as follows:

`#define HOR 400 // Horizon vector line length ### was 172`

Then use this adapted drawHorizon() function:

`// #########################################################################`

// Draw the horizon with a new roll (angle in range -180 to +180)

// #########################################################################

void drawHorizon(int roll, int pitch)

{

// Calculate coordinates for line start

float sx = cos(roll * DEG2RAD);

float sy = sin(roll * DEG2RAD);

int16_t x0 = sx * HOR;

int16_t y0 = sy * HOR;

int16_t xd = 0;

int16_t yd = 1;

int16_t xdn = 0;

int16_t ydn = 0;

if (roll > 45 && roll < 135) {

xd = -1;

yd = 0;

}

if (roll >= 135) {

xd = 0;

yd = -1;

}

if (roll < -45 && roll > -135) {

xd = 1;

yd = 0;

}

if (roll <= -135) {

xd = 0;

yd = -1;

}

if ((roll != last_roll) || (pitch != last_pitch))

{

xdn = 6 * xd;

ydn = 6 * yd;

tft.drawLine(XC - x0 - xdn, YC - y0 - ydn - pitch, XC + x0 - xdn, YC + y0 - ydn - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xdn, YC - y0 + ydn - pitch, XC + x0 + xdn, YC + y0 + ydn - pitch, BROWN);

xdn = 5 * xd;

ydn = 5 * yd;

tft.drawLine(XC - x0 - xdn, YC - y0 - ydn - pitch, XC + x0 - xdn, YC + y0 - ydn - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xdn, YC - y0 + ydn - pitch, XC + x0 + xdn, YC + y0 + ydn - pitch, BROWN);

xdn = 4 * xd;

ydn = 4 * yd;

tft.drawLine(XC - x0 - xdn, YC - y0 - ydn - pitch, XC + x0 - xdn, YC + y0 - ydn - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xdn, YC - y0 + ydn - pitch, XC + x0 + xdn, YC + y0 + ydn - pitch, BROWN);

xdn = 3 * xd;

ydn = 3 * yd;

tft.drawLine(XC - x0 - xdn, YC - y0 - ydn - pitch, XC + x0 - xdn, YC + y0 - ydn - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xdn, YC - y0 + ydn - pitch, XC + x0 + xdn, YC + y0 + ydn - pitch, BROWN);

}

xdn = 2 * xd;

ydn = 2 * yd;

tft.drawLine(XC - x0 - xdn, YC - y0 - ydn - pitch, XC + x0 - xdn, YC + y0 - ydn - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xdn, YC - y0 + ydn - pitch, XC + x0 + xdn, YC + y0 + ydn - pitch, BROWN);

tft.drawLine(XC - x0 - xd, YC - y0 - yd - pitch, XC + x0 - xd, YC + y0 - yd - pitch, SKY_BLUE);

tft.drawLine(XC - x0 + xd, YC - y0 + yd - pitch, XC + x0 + xd, YC + y0 + yd - pitch, BROWN);

tft.drawLine(XC - x0, YC - y0 - pitch, XC + x0, YC + y0 - pitch, TFT_WHITE);

last_roll = roll;

last_pitch = pitch;

}

Since the larger display has ~ 4x the number of pixels to draw I would expect the code to run 4x slower than for a 160 x 128 display and thus the text/numbers will flicker when it is redrawn.