V2.0.1 Won't Complie for Hyperdisplay Library

I’m trying to get my Artemis Thing Plus to compile the DrawingBasics (in the HyperDisplay UG library) example for a Sparkfun Transparent OLED breakout. The example compiles for my Nano 33 so I believe this is an issue with the board. DrawingBasics had no issue with V 1.2.0 Apollo3, but did have an issue with BLE that was resolved in 2.0.1.

Artemis is using Apollo3 V. 2.0.1.

HyperDisplay Library V. 2.0.1

HyperDisplay_UG Library V. 1.1.0

HyperDisplay_SSD Library V. 1.1.1

Arduino: 1.8.13 (Windows 10), Board: "Artemis Thing Plus, 921600, Ambiq Secure Bootloader (Recommended)"


In file included from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src/HyperDisplay_SSD1309.h:19,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_Transparent_Graphical_OLED\src/HyperDisplay_UG2856KLBAG01.h:19,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\hudCodeMain\hudCodeMain.ino:3:

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay\src/hyperdisplay.h:25:2: warning: #warning "No custom configuration supplied for hyperdisplay, using default" [-Wcpp]

 #warning "No custom configuration supplied for hyperdisplay, using default"

  ^~~~~~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\hudCodeMain\hudCodeMain.ino: In function 'void loop()':

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\hudCodeMain\hudCodeMain.ino:62:18: warning: unused variable 'warningWindowMem' [-Wunused-variable]

   SSD1309_Bite_t warningWindowMem[20 * 20]; //allocate buffer memory

                  ^~~~~~~~~~~~~~~~

In file included from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src/HyperDisplay_SSD1309.h:19,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_Transparent_Graphical_OLED\src\HyperDisplay_UG2856KLBAG01.h:19,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_Transparent_Graphical_OLED\src\HyperDisplay_UG2856KLBAG01.cpp:1:

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay\src/hyperdisplay.h:25:2: warning: #warning "No custom configuration supplied for hyperdisplay, using default" [-Wcpp]

 #warning "No custom configuration supplied for hyperdisplay, using default"

  ^~~~~~~

In file included from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.h:19,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:1:

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay\src/hyperdisplay.h:25:2: warning: #warning "No custom configuration supplied for hyperdisplay, using default" [-Wcpp]

 #warning "No custom configuration supplied for hyperdisplay, using default"

  ^~~~~~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp: In member function 'virtual void SSD1309::swpixel(hd_extent_t, hd_extent_t, color_t, hd_colors_t, hd_colors_t)':

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:249:17: warning: unused variable 'x0w' [-Wunused-variable]

  hd_hw_extent_t x0w = (hd_hw_extent_t)x0; // Cast to hw extent type to be sure of integer values

                 ^~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:250:17: warning: unused variable 'y0w' [-Wunused-variable]

  hd_hw_extent_t y0w = (hd_hw_extent_t)y0;

                 ^~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp: In member function 'void SSD1309::lineClear(hd_extent_t, hd_extent_t, hd_extent_t, hd_extent_t, uint16_t)':

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:346:18: warning: variable 'pix' set but not used [-Wunused-but-set-variable]

   SSD1309_Bite_t pix;

                  ^~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp: In member function 'virtual SSD1309_Status_t SSD1309_Arduino_I2C::writeBytes(uint8_t*, bool, size_t)':

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:895:20: error: call of overloaded 'write(int)' is ambiguous

    _i2c->write(0x00);

                    ^

In file included from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.h:21,

                 from C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:1:

C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1\libraries\Wire\src/Wire.h:39:20: note: candidate: 'virtual size_t arduino::MbedI2C::write(uint8_t)'

     virtual size_t write(uint8_t data);

                    ^~~~~

In file included from C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/mbed-bridge/core-api/api/Stream.h:25,

                 from C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/mbed-bridge/core-api/api/Client.h:22,

                 from C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/mbed-bridge/core-api/api/ArduinoAPI.h:29,

                 from C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/mbed-bridge/Arduino.h:14,

                 from C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/sdk/ArduinoSDK.h:9,

                 from <command-line>:

C:\Users\dmjaf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.1/cores/arduino/mbed-bridge/core-api/api/Print.h:50:12: note: candidate: 'size_t arduino::Print::write(const char*)'

     size_t write(const char *str) {

            ^~~~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp: In member function 'virtual SSD1309_Status_t SSD1309_Arduino_SPI::writeBytes(uint8_t*, bool, size_t)':

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:935:10: warning: unused variable 'addr' [-Wunused-variable]

  uint8_t addr = SSD1309_BASE_ADDR; // Not used in SPI mode but still set for good practice

          ^~~~

C:\Users\dmjaf\Desktop\HUD Project\Sparkfun Artemis Thing Plus\bluetoothSlave\libraries\SparkFun_HyperDisplay_SSD1309\src\HyperDisplay_SSD1309.cpp:937:19: warning: unused variable 'retval' [-Wunused-variable]

  SSD1309_Status_t retval = SSD1309_Nominal;

                   ^~~~~~

exit status 1

Error compiling for board Artemis Thing Plus.

Thanks for the report! I will create an issue on GitHub

https://github.com/sparkfun/HyperDispla … y/issues/3

Any updates on this issue? Are you sure it is not an Apollo3 issue? It’s weird that it complies on genuine Arduino boards but not the Apollo3 Artemis Thing Plus board.

Sorry, nobody has been able to get to that issue yet.

It is possible that this is an issue with the Arduino core itself

Okay I got it to compile but it was not an issue with the Artemis…more of an issue with the SSD1309.cpp file.

Line 895 should be “.Write((byte) 0x00)” for the reason explained here https://stackoverflow.com/questions/204 … -ambiguous.