Strange errors involving example

For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
AndrewElectronics
 
Posts: 5
Joined: Wed Feb 15, 2023 2:37 pm

Strange errors involving example

Post by AndrewElectronics »

Hello all!
I used the following example code on my CLUE: (I deleted the SPI Flash part, because it didn't work)

Code: Select all

#include <Adafruit_Arcada.h>
#include <Adafruit_SPIFlash.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM6DS33.h>
#include <Adafruit_LIS3MDL.h>
#include <Adafruit_SHT31.h>
#include <Adafruit_APDS9960.h>
#include <Adafruit_BMP280.h>
#include <PDM.h>

#define WHITE_LED 43

Adafruit_Arcada arcada;
Adafruit_LSM6DS33 lsm6ds33;
Adafruit_LIS3MDL lis3mdl;
Adafruit_SHT31 sht30;
Adafruit_APDS9960 apds9960;
Adafruit_BMP280 bmp280;
extern PDMClass PDM;
extern Adafruit_FlashTransport_QSPI flashTransport;


uint32_t buttons, last_buttons;
uint8_t j = 0;  // neopixel counter for rainbow

// Check the timer callback, this function is called every millisecond!
volatile uint16_t milliseconds = 0;
void timercallback() {
  analogWrite(LED_BUILTIN, milliseconds);  // pulse the LED
  if (milliseconds == 0) {
    milliseconds = 255;
  } else {
    milliseconds--;
  }
}

void setup() {
  Serial.begin(115200);

  // enable NFC pins  
  if ((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) == (UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)){
    Serial.println("Fix NFC pins");
    NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy);
    NRF_UICR->NFCPINS &= ~UICR_NFCPINS_PROTECT_Msk;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy);
    NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy);
    Serial.println("Done");
    NVIC_SystemReset();
  }
  
  pinMode(WHITE_LED, OUTPUT);
  digitalWrite(WHITE_LED, LOW);

  Serial.println("Hello! Arcada Clue test");
  if (!arcada.arcadaBegin()) {
    Serial.print("Failed to begin");
    while (1);
  }
  arcada.displayBegin();
  Serial.println("Arcada display begin");

  for (int i=0; i<250; i+=10) {
    arcada.setBacklight(i);
    delay(1);
  }

  arcada.display->setCursor(0, 0);
  arcada.display->setTextWrap(true);
  arcada.display->setTextSize(2);
  
  /********** Check MIC */
  PDM.onReceive(onPDMdata);
  if (!PDM.begin(1, 16000)) {
    Serial.println("**Failed to start PDM!");
  }
  

 
  
   /********** Check filesystem next */
  if (!arcada.filesysBegin()) {
    Serial.println("Failed to load filesys");
    arcada.display->setTextColor(ARCADA_YELLOW);
    arcada.display->println("Filesystem not found");
  } else {
    Serial.println("Filesys OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
    arcada.display->println("Filesystem OK");
  }

  arcada.display->setTextColor(ARCADA_WHITE);
  arcada.display->println("Sensors Found: ");

  /********** Check APDS */
  if (!apds9960.begin()) {
    Serial.println("No APDS9960 found");
    arcada.display->setTextColor(ARCADA_RED);
  } else {
    Serial.println("**APDS9960 OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
    apds9960.enableColor(true);
  }
  arcada.display->print("APDS9960 ");

  /********** Check LSM6DS33 */
  if (!lsm6ds33.begin_I2C()) {
    Serial.println("No LSM6DS33 found");
    arcada.display->setTextColor(ARCADA_RED);
  } else {
    Serial.println("**LSM6DS33 OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
  }
  arcada.display->println("LSM6DS33 ");
  
  /********** Check LIS3MDL */
  if (!lis3mdl.begin_I2C()) {
    Serial.println("No LIS3MDL found");
    arcada.display->setTextColor(ARCADA_RED);
  } else {
    Serial.println("**LIS3MDL OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
  }
  arcada.display->print("LIS3MDL ");

  /********** Check SHT3x */
  if (!sht30.begin(0x44)) {
    Serial.println("No SHT30 found");
    arcada.display->setTextColor(ARCADA_RED);
  } else {
    Serial.println("**SHT30 OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
  }
  arcada.display->print("SHT30 ");

  /********** Check BMP280 */
  if (!bmp280.begin()) {
    Serial.println("No BMP280 found");
    arcada.display->setTextColor(ARCADA_RED);
  } else {
    Serial.println("**BMP280 OK!");
    arcada.display->setTextColor(ARCADA_GREEN);
  }
  arcada.display->println("BMP280");

  buttons = last_buttons = 0;
  arcada.timerCallback(1000, timercallback);
  arcada.display->setTextWrap(false);
}


void loop() {
  arcada.display->setTextColor(ARCADA_WHITE, ARCADA_BLACK);
  arcada.display->setCursor(0, 100);
  
  arcada.display->print("Temp: ");
  arcada.display->print(bmp280.readTemperature());
  arcada.display->print(" C");
  arcada.display->println("         ");
  
  arcada.display->print("Baro: ");
  arcada.display->print(bmp280.readPressure()/100);
  arcada.display->print(" hPa");
  arcada.display->println("         ");
  
  arcada.display->print("Humid: ");
  arcada.display->print(sht30.readHumidity());
  arcada.display->print(" %");
  arcada.display->println("         ");

  uint16_t r, g, b, c;
  //wait for color data to be ready
  while(! apds9960.colorDataReady()) {
    delay(5);
  }
  apds9960.getColorData(&r, &g, &b, &c);
  arcada.display->print("Light: ");
  arcada.display->print(c);
  arcada.display->println("         ");

  sensors_event_t accel, gyro, mag, temp;
  lsm6ds33.getEvent(&accel, &gyro, &temp);
  lis3mdl.getEvent(&mag);
  arcada.display->print("Accel:");
  arcada.display->print(accel.acceleration.x, 1);
  arcada.display->print(",");
  arcada.display->print(accel.acceleration.y, 1);
  arcada.display->print(",");
  arcada.display->print(accel.acceleration.z, 1);
  arcada.display->println("         ");

  arcada.display->print("Gyro:");
  arcada.display->print(gyro.gyro.x, 1);
  arcada.display->print(",");
  arcada.display->print(gyro.gyro.y, 1);
  arcada.display->print(",");
  arcada.display->print(gyro.gyro.z, 1);
  arcada.display->println("         ");
  
  arcada.display->print("Mag:");
  arcada.display->print(mag.magnetic.x, 1);
  arcada.display->print(",");
  arcada.display->print(mag.magnetic.y, 1);
  arcada.display->print(",");
  arcada.display->print(mag.magnetic.z, 1);
  arcada.display->println("         ");

  uint32_t pdm_vol = getPDMwave(256);
  Serial.print("PDM volume: "); Serial.println(pdm_vol);
  arcada.display->print("Mic: ");
  arcada.display->print(pdm_vol);
  arcada.display->println("      ");
    
  Serial.printf("Drawing %d NeoPixels\n", arcada.pixels.numPixels());  
  for(int32_t i=0; i< arcada.pixels.numPixels(); i++) {
     arcada.pixels.setPixelColor(i, Wheel(((i * 256 / arcada.pixels.numPixels()) + j*5) & 255));
  }
  arcada.pixels.show();
  j++;

  uint8_t pressed_buttons = arcada.readButtons();
  
  if (pressed_buttons & ARCADA_BUTTONMASK_A) {
    Serial.println("BUTTON A");
    tone(ARCADA_AUDIO_OUT, 4000, 100);
  } else {
    tone(ARCADA_AUDIO_OUT, 0);
  }
  if (pressed_buttons & ARCADA_BUTTONMASK_B) {
    Serial.println("BUTTON B");
    digitalWrite(WHITE_LED, HIGH);
  } else {
    digitalWrite(WHITE_LED, LOW);
  }
  last_buttons = buttons;
}


// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return arcada.pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return arcada.pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return arcada.pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}


/*****************************************************************/

int16_t minwave, maxwave;
short sampleBuffer[256];// buffer to read samples into, each sample is 16-bits
volatile int samplesRead;// number of samples read

int32_t getPDMwave(int32_t samples) {
  minwave = 30000;
  maxwave = -30000;
  
  while (samples > 0) {
    if (!samplesRead) {
      yield();
      continue;
    }
    for (int i = 0; i < samplesRead; i++) {
      minwave = min(sampleBuffer[i], minwave);
      maxwave = max(sampleBuffer[i], maxwave);
      //Serial.println(sampleBuffer[i]);
      samples--;
    }
    // clear the read count
    samplesRead = 0;
  }
  return maxwave-minwave;  
}


void onPDMdata() {
  // query the number of bytes available
  int bytesAvailable = PDM.available();

  // read into the sample buffer
  PDM.read(sampleBuffer, bytesAvailable);

  // 16-bit, 2 bytes per sample
  samplesRead = bytesAvailable / 2;
}
Here are the strange internal error codes:
In file included from D:\Arduino\libraries\Adafruit_TinyUSB_Library\src/Adafruit_TinyUSB.h:46,

from D:\Arduino\libraries\Adafruit_NeoPixel/Adafruit_NeoPixel.h:48,

from D:\Arduino\libraries\Adafruit_Arcada_Library/Adafruit_Arcada.h:10,

from D:\Arduino\sketch_feb15a\sketch_feb15a.ino:1:

D:\Arduino\libraries\Adafruit_TinyUSB_Library\src/arduino/hid/Adafruit_USBD_HID.h:42:40: error: 'HID_ITF_PROTOCOL_NONE' was not declared in this scope; did you mean 'HID_PROTOCOL_NONE'?

42 | uint8_t protocol = HID_ITF_PROTOCOL_NONE,

| ^~~~~~~~~~~~~~~~~~~~~

| HID_PROTOCOL_NONE

In file included from D:\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:18,

from D:\Arduino\libraries\Adafruit_Arcada_Library/arcadatype.h:5,

from D:\Arduino\libraries\Adafruit_Arcada_Library/Boards/Adafruit_Arcada_Clue.h:21,

from D:\Arduino\libraries\Adafruit_Arcada_Library/Adafruit_Arcada.h:21,

from D:\Arduino\sketch_feb15a\sketch_feb15a.ino:1:

D:\Arduino\libraries\Adafruit_SPIFlash\src/Adafruit_SPIFlash.h:55:8: error: conflicting return type specified for 'virtual bool Adafruit_SPIFlash::end()'

55 | bool end(void);

| ^~~

In file included from D:\Arduino\libraries\SdFat_-_Adafruit_Fork\src/SdCard/SdCardInterface.h:27,

from D:\Arduino\libraries\SdFat_-_Adafruit_Fork\src/SdCard/SdioCard.h:28,

from D:\Arduino\libraries\SdFat_-_Adafruit_Fork\src/SdCard/SdCard.h:27,

from D:\Arduino\libraries\SdFat_-_Adafruit_Fork\src/SdFat.h:32,

from D:\Arduino\libraries\Adafruit_SPIFlash\src/Adafruit_SPIFlash.h:32,

from D:\Arduino\libraries\Adafruit_ImageReader_Library/Adafruit_ImageReader.h:18,

from D:\Arduino\libraries\Adafruit_Arcada_Library/arcadatype.h:5,

from D:\Arduino\libraries\Adafruit_Arcada_Library/Boards/Adafruit_Arcada_Clue.h:21,

from D:\Arduino\libraries\Adafruit_Arcada_Library/Adafruit_Arcada.h:21,

from D:\Arduino\sketch_feb15a\sketch_feb15a.ino:1:

d:\arduino\libraries\sdfat_-_adafruit_fork\src\common\fsblockdeviceinterface.h:42:16: note: overridden function is 'virtual void FsBlockDeviceInterface::end()'

42 | virtual void end() {}

| ^~~

Using library Adafruit_Arcada_Library at version 2.5.4 in folder: D:\Arduino\libraries\Adafruit_Arcada_Library

Using library Adafruit_GFX_Library at version 1.11.5 in folder: D:\Arduino\libraries\Adafruit_GFX_Library

Using library Adafruit_BusIO at version 1.8.2 in folder: D:\Arduino\libraries\Adafruit_BusIO

Using library Wire at version 1.0 in folder: D:\ArduinoData\packages\adafruit\hardware\nrf52\0.21.0\libraries\Wire

Using library SPI at version 1.0 in folder: D:\ArduinoData\packages\adafruit\hardware\nrf52\0.21.0\libraries\SPI

Using library Adafruit_NeoPixel at version 1.11.0 in folder: D:\Arduino\libraries\Adafruit_NeoPixel

Using library Adafruit_TinyUSB_Library at version 1.18.1 in folder: D:\Arduino\libraries\Adafruit_TinyUSB_Library

Using library Adafruit_TouchScreen at version 1.1.3 in folder: D:\Arduino\libraries\Adafruit_TouchScreen

Using library Adafruit_LSM6DS at version 4.6.0 in folder: D:\Arduino\libraries\Adafruit_LSM6DS

Using library Adafruit_Unified_Sensor at version 1.1.4 in folder: D:\Arduino\libraries\Adafruit_Unified_Sensor

Using library Adafruit_ST7735_and_ST7789_Library at version 1.10.0 in folder: D:\Arduino\libraries\Adafruit_ST7735_and_ST7789_Library

Using library Adafruit_ImageReader_Library at version 2.8.1 in folder: D:\Arduino\libraries\Adafruit_ImageReader_Library

Using library Adafruit_SPIFlash at version 3.11.0 in folder: D:\Arduino\libraries\Adafruit_SPIFlash

Using library SdFat_-_Adafruit_Fork at version 2.2.1 in folder: D:\Arduino\libraries\SdFat_-_Adafruit_Fork

Using library Adafruit_WavePlayer_Library at version 1.0.3 in folder: D:\Arduino\libraries\Adafruit_WavePlayer_Library

Using library ArduinoJson at version 6.20.0 in folder: D:\Arduino\libraries\ArduinoJson

Using library Adafruit_LIS3MDL at version 1.2.1 in folder: D:\Arduino\libraries\Adafruit_LIS3MDL

Using library Adafruit_SHT31_Library at version 2.2.0 in folder: D:\Arduino\libraries\Adafruit_SHT31_Library

Using library Adafruit_APDS9960_Library at version 1.2.2 in folder: D:\Arduino\libraries\Adafruit_APDS9960_Library

Using library Adafruit_BMP280_Library at version 2.6.5 in folder: D:\Arduino\libraries\Adafruit_BMP280_Library

Using library PDM at version 1.0 in folder: D:\ArduinoData\packages\adafruit\hardware\nrf52\0.21.0\libraries\PDM

Using library Adafruit_EPD at version 4.5.1 in folder: D:\Arduino\libraries\Adafruit_EPD

exit status 1

Error compiling for board Adafruit CLUE.
I went through all the libraries listed in your tutorial guide (https://learn.adafruit.com/adafruit-clue) individually, and updated each one. It still didn't work.
Thank you so much in advance!
Andrew.
Last edited by adafruit_support_carter on Wed Feb 15, 2023 3:59 pm, edited 1 time in total.
Reason: change to [code] tags

User avatar
dastels
 
Posts: 15608
Joined: Tue Oct 20, 2015 3:22 pm

Re: Strange errors involving example

Post by dastels »

First, make sure everything is up to date, not just the the ones listed. There could be dependencies. Same for board support packages.

Dave

User avatar
adafruit_support_carter
 
Posts: 29056
Joined: Tue Nov 29, 2016 2:45 pm

Re: Strange errors involving example

Post by adafruit_support_carter »

Just did a test compile here with above sketch and had no errors. So something with your Arduino setup.

Yep - check for any "Updatable" libraries in the Arduino Library Manager.

May also help to make sure all Board Support Packages are up to date.

User avatar
AndrewElectronics
 
Posts: 5
Joined: Wed Feb 15, 2023 2:37 pm

Re: Strange errors involving example

Post by AndrewElectronics »

Thank you for the help! I installed a more recent version of Arduino IDE, updated all the libraries, and it works perfectly now. Thank you again for your help.

Locked
Please be positive and constructive with your questions and comments.

Return to “CLUE Board”