Qwiic Alphanumeric display, all segments are turned on

The display is connected to a Arduino Nano Every by i2c.

Qwiic Alphanumeric display version 2.2.5 is installed in the Arduino IDE.

When running Example_01_PrintString all segments on all 4 displays gets turned on. Not what I expected.

But, when I run the Example_02_TurnOnOneSegment it works as expected.

It seems like the board communicates somehow. Calls like display.illuminateSegment(‘A’, 0); works but display.print(“Milk”); does not.

What have I missed here?

The display board is marked v10

Are there any other sensors on the bus? Share a photo of the wiring/set-up

No, it’s plain simple.

https://drive.google.com/drive/folders/ … sp=sharing

This might be a hint: In the PrintString example the first row causes an compilation error:

C:\Users\lfs\AppData\Local\Temp.arduinoIDE-unsaved2022927-8036-h503t1.bpo0d\Example_01_PrintString\Example_01_PrintString.ino:1:13: error: found ‘:’ in nested-name-specifier, expected ‘::’
language:c
^
C:\Users\lfs\AppData\Local\Temp.arduinoIDE-unsaved2022927-8036-h503t1.bpo0d\Example_01_PrintString\Example_01_PrintString.ino:1:5: error: ‘language’ does not name a type
language:c
^~~~~~~~
In file included from C:\Users\lfs\AppData\Local\Temp.arduinoIDE-unsaved2022927-8036-h503t1.bpo0d\Example_01_PrintString\Example_01_PrintString.ino:20:0:
C:\Users\lfs\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.7\libraries\Wire\src/Wire.h:34:1: error: expected class-name before ‘{’ token
{
^
C:\Users\lfs\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.7\libraries\Wire\src/Wire.h:78:18: error: type ‘arduino::Print’ is not a base type for type ‘TwoWire’
using Print::write;
^~~~~
exit status 1
Compilation error: found ‘:’ in nested-name-specifier, expected ‘::’

Removing the first line ( language:c, not present in the other examples) it compiles.

From the output window:

Sketch uses 6816 bytes (13%) of program storage space. Maximum is 49152 bytes.

Global variables use 583 bytes (9%) of dynamic memory, leaving 5561 bytes for local variables. Maximum is 6144 bytes.

avrdude: jtagmkII_initialize(): Cannot locate “flash” and “boot” memories in description

This is an issue I am having too.

I have an Arduino Nano Every connected to a Qwiic OpenLog and a Qwiic alphanumeric display.

It seems to me like the SparkFun libraries are not 100% compatible with the Arduino Nano Every (megaAVR).

When compiling the code, the compiler throws a number of messages:

In file included from C:\Users\currentUser\Documents\Arduino\libraries\SparkFun_Qwiic_Alphanumeric_Display_Arduino_Library\src/SparkFun_Alphanumeric_Display.h:28:0,

from C:\Users\currentUser\Documents\Arduino\libraries\SparkFun_Qwiic_Alphanumeric_Display_Arduino_Library\src\SparkFun_Alphanumeric_Display.cpp:32:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘bool HT16K33::readRAM(uint8_t, uint8_t, uint8_t*, uint8_t)’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

In file included from C:\Users\currentUser\Documents\Arduino\libraries\SparkFun_Qwiic_OpenLog\src\SparkFun_Qwiic_OpenLog_Arduino_Library.h:36:0,

from C:\Users\currentUser\Documents\Arduino\libraries\SparkFun_Qwiic_OpenLog\src\SparkFun_Qwiic_OpenLog_Arduino_Library.cpp:28:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘arduino::String OpenLog::getVersion()’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘uint8_t OpenLog::getStatus()’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘int32_t OpenLog::size(arduino::String)’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘void OpenLog::read(uint8_t*, uint16_t, arduino::String)’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘arduino::String OpenLog::getNextDirectoryItem()’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h: In member function ‘uint32_t OpenLog::remove(arduino::String, boolean)’:

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)

size_t requestFrom(int, int);

^~~~~~~~~~~

C:\Users\currentUser\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8\libraries\Wire\src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)

size_t requestFrom(uint8_t, size_t);

^~~~~~~~~~~

Googling these messages suggests that there’s some ambiguity in which function the compiler is supposed to call.