Sorry, I don't quite understand what are you trying to say.
Displaying the RSSI bar is working fine for me after modifying the code.
Showing items on the screen is a 2 stage process
Correction, it's 24 pixels rendering on MD-UV380/DM-1701.F1RMB wrote: ↑Wed Jan 24, 2024 7:33 pmJust moving down the header offset is not enough, you will get visual problem, as the header has 16 pixel height, past this it won't really work (like RSSI rendering).
Changing the screen scheme is not an easy task, because you should not break all other supported platform, and also don't harrass the MCU/BUS too much.
Code: Select all
void displayRenderRows(int16_t startRow, int16_t endRow)
Code: Select all
uint8_t opts[] = { 0x00, startRow, 0x00, endRow };
displayWriteCmds(HX8583_CMD_RASET, sizeof(opts), opts);
Code: Select all
int fakeStartRow = startRow + 8;// actually start line
int fakeEndRow =endRow + 8;// actually end line
if (fakeEndRow >DISPLAY_SIZE_Y)
{
fakeEndRow = DISPLAY_SIZE_Y;
endRow = DISPLAY_SIZE_Y;
}
uint8_t opts[] = { 0x00, fakestartRow , 0x00, fakeEndRow };
displayWriteCmds(HX8583_CMD_RASET, sizeof(opts), opts);
As far as I can tell the displayRenderRows(0,2) only renders two rows, thus 16 pixels, not 3 rows, right?F1RMB wrote: ↑Thu Jan 25, 2024 7:33 amCorrection, it's 24 pixels rendering on MD-UV380/DM-1701.F1RMB wrote: ↑Wed Jan 24, 2024 7:33 pmJust moving down the header offset is not enough, you will get visual problem, as the header has 16 pixel height, past this it won't really work (like RSSI rendering).
Changing the screen scheme is not an easy task, because you should not break all other supported platform, and also don't harrass the MCU/BUS too much.
Code: Select all
void displayRenderRows(int16_t startRow, int16_t endRow)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
// GD77 display controller has 8 lines per row.
startRow *= 8;
endRow *= 8;
I think what I did, changing the x,y positions of the header, RSSI bar and some other thing is easier, and since it's done with defines, like many other things, it won't affect any other radio platform.VK3KYY wrote: ↑Thu Jan 25, 2024 8:55 amA while ago, I did briefly investigate changingto render the entire screen 8 lines lower, but for some reason this crashed the firmwareCode: Select all
void displayRenderRows(int16_t startRow, int16_t endRow)
Re-reading the code, yes, 16 pixels. Hence the RSSI bar is not updated each 200ms, which is bad.HA5DS wrote: ↑Thu Jan 25, 2024 10:07 amAs far as I can tell the displayRenderRows(0,2) only renders two rows, thus 16 pixels, not 3 rows, right?F1RMB wrote: ↑Thu Jan 25, 2024 7:33 amCorrection, it's 24 pixels rendering on MD-UV380/DM-1701.F1RMB wrote: ↑Wed Jan 24, 2024 7:33 pmJust moving down the header offset is not enough, you will get visual problem, as the header has 16 pixel height, past this it won't really work (like RSSI rendering).
Changing the screen scheme is not an easy task, because you should not break all other supported platform, and also don't harrass the MCU/BUS too much.
Because with this code displayRenderRows(0,2) will became startRow=0, endRow=16, so 16 pixels, right?Code: Select all
void displayRenderRows(int16_t startRow, int16_t endRow) { GPIO_InitTypeDef GPIO_InitStruct = {0}; // GD77 display controller has 8 lines per row. startRow *= 8; endRow *= 8;
Why wouldn't the RSSI bar update? You assume I did not modify the display rendering parts of the code according to the changed position of the header.
Can you explain, how doing this:
Code: Select all
#if defined(PLATFORM_MD9600)
const int FILTER_TEXT_X_CENTER = 32;
const int POWER_X_CENTER = 60;
const int COLOR_CODE_X_CENTER = 89;
#elif defined(PLATFORM_DM1701)
const int FILTER_TEXT_X_CENTER = 40;
const int POWER_X_CENTER = 70;
const int COLOR_CODE_X_CENTER = 100;
#else
const int FILTER_TEXT_X_CENTER = 34;
const int POWER_X_CENTER = 63;
const int COLOR_CODE_X_CENTER = 92;
#endif
Code: Select all
#if defined(PLATFORM_MD9600)
const int FILTER_TEXT_X_CENTER = 32;
const int POWER_X_CENTER = 60;
const int COLOR_CODE_X_CENTER = 89;
#else
const int FILTER_TEXT_X_CENTER = 34;
const int POWER_X_CENTER = 63;
const int COLOR_CODE_X_CENTER = 92;
#endif
Why do you think that? Why would it break the VFO sweep, if I modified the VFO sweep area according to the modified header?
Code: Select all
#if defined(PLATFORM_RD5R)
#define VFO_SWEEP_GRAPH_START_Y 8
#define VFO_SWEEP_GRAPH_HEIGHT_Y 30
#elif defined(PLATFORM_MD380) || defined(PLATFORM_MDUV380) || defined(PLATFORM_MD2017)
#define VFO_SWEEP_GRAPH_START_Y 10
#define VFO_SWEEP_GRAPH_HEIGHT_Y 86
#elif defined(PLATFORM_DM1701)
#define VFO_SWEEP_GRAPH_START_Y 22
#define VFO_SWEEP_GRAPH_HEIGHT_Y 74
#else
#define VFO_SWEEP_GRAPH_START_Y 10
#define VFO_SWEEP_GRAPH_HEIGHT_Y 38
#endif