QWIIC Alphanumeric Display - Multiple Modules

With multiple modules daisy chained, you reference the modules with display.begin (ADDR1, ADDR2, ADDR3). Doing so treats the displays as one. Referencing the digits are done:

display.printChar(newValue[0], 0);

display.printChar(newValue[1], 1);

display.printChar(newValue[2], 2);

display.printChar(newValue[3], 3);

display.printChar(newValue[4], 4);

display.printChar(newValue[5], 5);

display.printChar(newValue[6], 6);

display.printChar(newValue[7], 7);

display.printChar(newValue[8], 8);

display.printChar(newValue[9], 9);

display.printChar(newValue[10], 10);

display.printChar(newValue[11], 11);

Due to the API I am using, some digits are set via separate functions like:

function1{

display.printChar(newValue[0], 0);

display.printChar(newValue[1], 1);

display.printChar(newValue[2], 2);

display.printChar(newValue[3], 3);

display.printChar(newValue[4], 4);

display.printChar(newValue[5], 5);

display.printChar(newValue[6], 6);

display.printChar(newValue[7], 7);

}

function2{

display.printChar(newValue[8], 8);

display.printChar(newValue[9], 9);

}

function3{

display.printChar(newValue[10], 10);

display.printChar(newValue[11], 11);

}

The problems are:

I have to clear the display of previous data but the clear function clears the RAM of all the modules on the I2C bus.

I am not sure if it’s a timing issue or data issue but after a few seconds one of the displays goes blank or all three displays freeze or some digits displayed are garbled.

What I need to do is this:

function1{

display1.clear();

display1.printChar… // 8 digits across 2 modules

}

function2{

// first 2 digits in the same module as the next function

display3.clear(digit0, digit1);

display3.printChar(value[0], 0);

display3.printChar(value[1],1);

}

function3{

// third and fourth digits in the same module for function2

display3.clear(digit2, digit3);

display3.printChar(value[0], 2);

display3.printChar(value[1],3);

}

Looking at the source code and trial and error, it doesn’t look like you can create a instance/reference for each display.

Adafruits version allows you to do so but I need to use the Sparkfun version because of the display size.

Can anyone offer any solutions, options or workarounds?

Thanks,

I think your best bet is to file an issue on the GitHub repo. Perhaps one of our engineers can prioritize it and modify to the firmware to improve the product:

https://github.com/sparkfunX/Qwiic_Alphanumeric_Display

Hope this helps. Happy holidays.