I have a project that relies on the adafruit neopixel library. It compiles and runs fine on Argon.
When I try and compile for P2, I get the following error. I have no idea how to fix this.
error: invalid user-defined conversion from 'int' to 'SPIClass&' [-fpermissive]
30 | #define D5 5
| ^
src/quaternion_yaw_pitch_roll.ino:53:19: note: in expansion of macro 'D5'
53 | #define PIXEL_PIN D5 //D2,3,4 used by OLED pins
| ^~
src/quaternion_yaw_pitch_roll.ino:65:38: note: in expansion of macro 'PIXEL_PIN'
65 | Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
| ^~~~~~~~~
In file included from ./inc/application.h:54,
from ./inc/Particle.h:5,
from src/quaternion_yaw_pitch_roll.cpp:19:
../wiring/inc/spark_wiring_spi.h:160:3: note: candidate is: 'SPIClass::SPIClass(hal_spi_interface_t)' (near match)
160 | SPIClass(hal_spi_interface_t spi);
| ^~~~~~~~
../wiring/inc/spark_wiring_spi.h:160:3: note: conversion of argument 1 would be ill-formed:
In file included from ../hal/src/rtl872x/pinmap_impl.h:54,
from ../hal/inc/pinmap_hal.h:77,
from ../hal/inc/interrupts_hal.h:39,
from ../wiring/inc/spark_wiring.h:29,
from ./inc/application.h:42,
from ./inc/Particle.h:5,
from src/quaternion_yaw_pitch_roll.cpp:19:
../hal/src/tron/pinmap_defines.h:30:29: error: invalid conversion from 'int' to 'hal_spi_interface_t' [-fpermissive]
30 | #define D5 5
| ^
| |
| int
src/quaternion_yaw_pitch_roll.ino:53:19: note: in expansion of macro 'D5'
53 | #define PIXEL_PIN D5 //D2,3,4 used by OLED pins
| ^~
src/quaternion_yaw_pitch_roll.ino:65:38: note: in expansion of macro 'PIXEL_PIN'
65 | Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
| ^~~~~~~~~
../hal/src/tron/pinmap_defines.h:30:29: error: invalid conversion from 'int' to 'hal_spi_interface_t' [-fpermissive]
30 | #define D5 5
| ^
| |
| int
src/quaternion_yaw_pitch_roll.ino:53:19: note: in expansion of macro 'D5'
53 | #define PIXEL_PIN D5 //D2,3,4 used by OLED pins
| ^~
src/quaternion_yaw_pitch_roll.ino:65:38: note: in expansion of macro 'PIXEL_PIN'
65 | Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
| ^~~~~~~~~
In file included from ./inc/application.h:54,
from ./inc/Particle.h:5,
from src/quaternion_yaw_pitch_roll.cpp:19:
../wiring/inc/spark_wiring_spi.h:160:32: note: initializing argument 1 of 'SPIClass::SPIClass(hal_spi_interface_t)'
160 | SPIClass(hal_spi_interface_t spi);
|~^
src/quaternion_yaw_pitch_roll.ino:65:59: error: conversion to non-const reference type 'class SPIClass&' from rvalue of type 'SPIClass' [-fpermissive]
65 | Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
| ^
In file included from src/quaternion_yaw_pitch_roll.cpp:23:
lib/neopixel/src/neopixel.h:77:43: note: initializing argument 2 of 'Adafruit_NeoPixel::Adafruit_NeoPixel(uint16_t, SPIClass&, uint8_t)'
77 | Adafruit_NeoPixel(uint16_t n, SPIClass& spi, uint8_t t=WS2812B);
|^
src/quaternion_yaw_pitch_roll.ino: In function 'void loop()':
src/quaternion_yaw_pitch_roll.ino:193:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
193 | quaternionToEulerRV(&sensorValue.un.arvrStabilizedRV, &ypr, true);
| ~^
src/quaternion_yaw_pitch_roll.ino:194:7: note: here
194 | case SH2_GYRO_INTEGRATED_RV:
| ^~~~
make[2]: *** [../build/target/user/platform-32-msrc/quaternion_yaw_pitch_roll.o] Error 1
make[2]: Leaving directory/firmware/user' make[1]: *** [user] Error 2 make[1]: Leaving directory
/firmware/modules/tron/user-part'
make: *** [modules/tron/user-part] Error 2