microOLED no longer works.

Changed (upgraded) to Apollo2 v2.0.5, to solve some problems with SF Thng Plus ExpLoRaBLE. Now, previously working codes do not work on SF Redboard Artemis nor on SF Artemis Nano.

This configuration:

Arduino: 1.8.13 (Windows 10), TD: 1.53, Board: “RedBoard Artemis, 921600, SparkFun Variable Loader (Recommended)”

This error:

Multiple libraries were found for “SPI.h”

In file included from C:\Users\clsnf\OneDrive\Documents\Arduino\libraries\SparkFun_Micro_OLED_Breakout\examples\Example3_MultiDemo\Example3_MultiDemo.ino:23:

Used: C:\Users\clsnf\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.0.5\libraries\SPI

C:\Users\clsnf\OneDrive\Documents\Arduino\libraries\SparkFun_Micro_OLED_Breakout\src/SFE_MicroOLED.h:48:10: fatal error: avr/pgmspace.h: No such file or directory

Not used: C:\Users\clsnf\OneDrive\Documents\Arduino\libraries\SPI-master

#include <avr/pgmspace.h>

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

compilation terminated.

exit status 1

Error compiling for board RedBoard Artemis.

Now microOLED no longer works???

It looks like the library you’re using is specific to AVR processors, that could be part of your issue.

The Micro OLED certainly works on v1.2 of the Apollo3 core. I haven’t been brave enough to upgrade to v2 - yet…

It looks like the root cause is the “#include <avr/pgmspace.h>”. I’m guessing that program memory space is not supported by v2. I’ll raise an issue and will take a look at this as soon as I can.

https://github.com/sparkfun/SparkFun_Mi … /issues/29

Best wishes,

Paul

Despite upgraded micoOLED library (to 1.3.1) this still does not work, same errors as above. Any progress? FYI I had this all working on Artemis boards under earlier version of Apollo 3 code.

Hi,

Sorry - no progress as yet. For now, please use v1.2.1 of the Apollo3 core.

Best wishes,

Paul

If you’re willing to try editing the library files yourself, the solution may be as simple as:

  • delete all of the lines which try to #include <pgmspace.h>

  • delete the references to PROGMEM

There are several font header files which will need to be edited:

E.g. here: delete lines 28-32

https://github.com/sparkfun/SparkFun_Mi … ment.h#L28

And here: delete the word PROGMEM

https://github.com/sparkfun/SparkFun_Mi … ment.h#L34

This is one of those occasions when it may be impossible to maintain compatibility between older Uno-like architectures and shiny new Mbed architectures.

Let me know how you get on.

Thanks!

Paul

Removing the AVR pgmspace files entirely, including from font files, seemed to work. Thanks for this hint about font files. System working now on SF RedBoard Artemis.

Transfer to SF Artemis Nano failed. Any ideas?

What kind of “failed”? :wink:

Fails to compile - or just doesn’t work?

If the latter, then please check which pins you are using. Are the RESET, DC and CS pin numbers correct (assuming you are using SPI)?

Cheers,

Paul

Identical code, change Artemis Nano for Redboard Artemis; change driven by space concerns. No output to serial monitor nor to OLED from Artemis nano. Probably a power problem on my end, I will test.

Support for the Artemis (APOLLO3 core v2 MBED) has been added in v1.3.2 of the library. Please give it a try!

Best wishes,

Paul

I have same problem. MacOS 11.3.1. Redboard Artemis (version 10). Have upgraded usbserial.kext to July 4, 2018 version. I HAD updated Micro OLED library to 1.3.3 (which did not work) so backed to 1.3.2 based on previous post that it should work. That doesn’t work either (fails to compile successfully). Trying Hello example. I’m guessing you know what the error messages look like, but just in case:

Arduino: 1.8.13 (Mac OS X), Board: “SparkFun RedBoard Artemis, 115200, SparkFun Variable Loader (Recommended)”

.

.

.

Sketch uses 22736 bytes (2%) of program storage space. Maximum is 960000 bytes.

Global variables use 53100 bytes of dynamic memory.

[1835] Failed to execute script artemis_svl

Traceback (most recent call last):

File “artemis_svl.py”, line 38, in

File “”, line 983, in _find_and_load

File “”, line 967, in _find_and_load_unlocked

File “”, line 677, in _load_unlocked

File “/usr/local/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py”, line 627, in exec_module

File “serial/tools/list_ports.py”, line 29, in

File “”, line 983, in _find_and_load

File “”, line 967, in _find_and_load_unlocked

File “”, line 677, in _load_unlocked

File “/usr/local/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py”, line 627, in exec_module

File “serial/tools/list_ports_posix.py”, line 31, in

File “”, line 983, in _find_and_load

File “”, line 967, in _find_and_load_unlocked

File “”, line 677, in _load_unlocked

File “/usr/local/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py”, line 627, in exec_module

File “serial/tools/list_ports_osx.py”, line 32, in

ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found

ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found

Hi CapeZinFan,

This does not look like an issue with the OLED library. It looks like your code has compiled OK - otherwise you would not see the “Sketch uses 22736 bytes (2%) of program storage space. Maximum is 960000 bytes. Global variables use 53100 bytes of dynamic memory.” messages. It seems to be a compatibility issue with the SVL upload tool you are using? Do you see the same errors if you try to upload a simple “Blink” example?

Best wishes,

Paul