OpenLog Artemis (OLA) - Problem compiling to OLA

Hello all,

A disclamer: I’m new here and tried my best to look at everything I could find to solve this problem before posting here.

Just received the OLA kit and I’m trying to make a project similar to the Geologger but using the Sparkfun ADS1015.

I first wanted to check if I was able to compile and upload to the OpenLog_Artemis. I was unsuccessful at that.

Always using the Sparkfun RedBoard Artemis ATP as the board and having downloaded all the libraries using the links in the OpenLog_Artemis.ino file, I tried compiling the code.

It failed giving me this error :

exit status 1
'SERIAL_BUFFER_SIZE' was not declared in this scope

I attributed it to not having the right board settings because I used the “Additional Board Manager URL” :

https://raw.githubusercontent.com/spark … index.json

from https://learn.sparkfun.com/tutorials/ar … stallation

Looking around I found the other “Additional Board Manager URL” :

https://raw.githubusercontent.com/spark … index.json

from https://github.com/sparkfun/Arduino_Apo … ecommended

And I updated the SparkFun Apollo3 Boards to the latest version being : 2.1.1

This solved the problem of the non-definition but in the end the error now is :

exit status 1
Error compiling for board RedBoard Artemis ATP.

During the compilation, those notes/warning were shown:

C:\Users\XXXXX\Downloads\OpenLog_Artemis-2.0\Firmware\OpenLog_Artemis\zmodem_sz.cpp:177: warning: "zperr" redefined
 #define zperr(a, ... )
 
In file included from C:\Users\XXXXX\Downloads\OpenLog_Artemis-2.0\Firmware\OpenLog_Artemis\zmodem_sz.cpp:66:
C:\Users\XXXXX\Downloads\OpenLog_Artemis-2.0\Firmware\OpenLog_Artemis\zmodem_zm.h:49: note: this is the location of the previous definition
 #define zperr(...)
 
In file included from C:\Users\XXXXX\Downloads\OpenLog_Artemis-2.0\Firmware\OpenLog_Artemis\OpenLog_Artemis.ino:273:
C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Button_and_Qwiic_Switch_Library\src/SparkFun_Qwiic_Button.h:29: warning: "DEFAULT_ADDRESS" redefined
 #define DEFAULT_ADDRESS 0x6F //default I2C address of the button
 
In file included from C:\Users\XXXXX\Downloads\OpenLog_Artemis-2.0\Firmware\OpenLog_Artemis\OpenLog_Artemis.ino:268:
C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_MicroPressure_Library\src/SparkFun_MicroPressure.h:9: note: this is the location of the previous definition
 #define DEFAULT_ADDRESS 0x18
C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp: In member function 'bool AHT20::initialize()':
C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp:125:25: error: call of overloaded 'write(int)' is ambiguous
     _i2cPort->write(0x00);
                         ^
In file included from C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src/SparkFun_Qwiic_Humidity_AHT20.h:26,
                 from C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp:26:
C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1\libraries\Wire\src/Wire.h:41:20: note: candidate: 'virtual size_t arduino::MbedI2C::write(uint8_t)'
     virtual size_t write(uint8_t data);
                    ^~~~~
In file included from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/Stream.h:25,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/Client.h:22,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/ArduinoAPI.h:29,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/Arduino.h:17,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/sdk/ArduinoSDK.h:9,
                 from <command-line>:
C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.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\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp: In member function 'bool AHT20::triggerMeasurement()':
C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp:136:25: error: call of overloaded 'write(int)' is ambiguous
     _i2cPort->write(0x00);
                         ^
In file included from C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src/SparkFun_Qwiic_Humidity_AHT20.h:26,
                 from C:\Users\XXXXX\Documents\Arduino\libraries\SparkFun_Qwiic_Humidity_AHT20\src\SparkFun_Qwiic_Humidity_AHT20.cpp:26:
C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1\libraries\Wire\src/Wire.h:41:20: note: candidate: 'virtual size_t arduino::MbedI2C::write(uint8_t)'
     virtual size_t write(uint8_t data);
                    ^~~~~
In file included from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/Stream.h:25,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/Client.h:22,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/core-api/api/ArduinoAPI.h:29,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/mbed-bridge/Arduino.h:17,
                 from C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.1/cores/arduino/sdk/ArduinoSDK.h:9,
                 from <command-line>:
C:\Users\XXXXX\AppData\Local\Arduino15\packages\SparkFun\hardware\apollo3\2.1.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) {
            ^~~~~

I tried going trough all the versions of “SparkFun Apollo3 Boards” from 1.2.1 up to 2.1.1, deleting the folder each time but the problem persists with variation from the problem.

As I see that others can compile and upload to the OLA, I am would like to know if someone else had this problem and solved it. I might just be missing an obvious error on my part. Thank for your help and whatever advice your give me to solve my problem.

PS: The link to the OLA REPO ZIP on https://github.com/sparkfun/OpenLog_Art … UPGRADE.md is showing a “404: Not Found”.

Try selecting “SparkFun Artemis Module” as the board, and set the baud to 115200 - see if that helps. It also might be useful to run through our hookup guide https://learn.sparkfun.com/tutorials/op … e-overview

Hi @RiskLogger,

There was a problem in the Qwiic Humidity AHT20 library which was stopping the code from compiling. I have corrected that issue this morning. Please update to v1.0.1 of the library and those compilation errors will go away.

There was a similar problem with the MicroPressure library. Please update that library to v1.0.1 too.

You are right to use RedBoard Artemis ATP as the board, please keep using that. The “Module” will not work for you as it does not have Serial1 defined.

The code will - I think - compile successfully with v2.1.1 of the Apollo3 core but please be aware that 2.1.1 contains a ‘feature’ which makes communication with the u-blox GNSS modules problematic. Right now, I’d recommend using v2.1.0.

Thanks for the heads-up about the broken link in UPGRADE.md. I have fixed that this morning.

The stable release of the OLA firmware is v2.0 but, functionally, it is identical to v1.11. The hook-up guide is the same. The only difference is that v1.11 was based on v1.2 of the core, whereas v2.0 uses v2.1.0 of the core.

Good luck with your project!

Best wishes,

Paul

Hey Paul,

Thanks a lot ! It solved all my problems and I looked at what you did on the two libraries to make the ADS1015 library work with the OLA after following the steps in the https://github.com/sparkfun/OpenLog_Art … SENSORS.md

Just changed lines 304 and 325 of “SparkFun_ADS1015_Arduino_Library.cpp” from :

_i2cPort->write(ADS1015_POINTER_CONVERT);

to

_i2cPort->write((uint8_t)ADS1015_POINTER_CONVERT);

and the output is good.