Hi, I am happy to have discovered the fastspi2 library,

Hi,
I am happy to have discovered the fastspi2 library, but run into some problems when trying to compile the fast2dev example for the teensy 3, which I get to work fine with an Arduino Uno.

I suspect it is something very basic (I am new with the teensy 3, but have used previous teensies for led strips before). Is there something I need to add/modify to get the fastspi2 library to work on the teensy 3? After not getting it to work I copied the fastspi2 library into the library folder inside the Arduino.app where the other teensyduino libraries are, but this didn´t seem to change anything.

Below is the long error report, if that helps.

hc

Arduino: 1.0.5 (Mac OS X), Board: “Teensy 3.0”
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/arm-none-eabi/bin/arm-none-eabi-g++ c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mcpu=cortex-m4 -DF_CPU=96000000 -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -mthumb -nostdlib -D__MK20DX128__ -fno-rtti -felide-constructors -std=gnu++0x -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/Applications/Arduino.app/Contents/Resources/Java/hardware/teensy/cores/teensy3 -I/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2 /var/folders/Gi/GiTf5ITdHWm++psK9TEs5++++TQ/-Tmp/build1713018055754262571.tmp/Fast2Dev.cpp o /var/folders/Gi/GiTf5ITdHWm++psK9TEs5++++TQ/-Tmp/build1713018055754262571.tmp/Fast2Dev.cpp.o
In file included from /Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi.h:45:0,
from /Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/FastSPI_LED2.h:6,
from Fast2Dev.ino:10:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeWord(uint16_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:232:41: error: ‘SPI0_PUSHR_EOQ’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:233:41: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:234:34: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:234:34: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeByte(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:240:41: error: ‘SPI0_PUSHR_EOQ’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:241:41: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:242:34: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWord(uint16_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:247:107: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWordNoWait(uint16_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:248:105: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByte(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:250:106: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytePostWait(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:251:106: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByteNoWait(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:252:104: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWordCont(uint16_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:254:94: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:254:129: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWordContNoWait(uint16_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:255:92: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:255:127: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByteCont(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:257:93: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:257:128: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByteContPostWait(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:258:93: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:258:128: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In static member function ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByteContNoWait(uint8_t)’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:259:91: error: ‘SPI0_PUSHR_CONT’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:259:126: error: there are no arguments to ‘SPI0_PUSHR_CTAS’ that depend on a template parameter, so a declaration of ‘SPI0_PUSHR_CTAS’ must be available [-fpermissive]
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByte(uint8_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:176:4: required from ‘void SM16716Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::clearLeds(int) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 6u]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:250:76: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByte(uint8_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:119:4: required from ‘void WS2801Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showColor(const CRGB&, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 96u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:250:76: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeByte(uint8_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:63:4: required from ‘void LPD8806Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::showColor(const CRGB&, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 4u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:250:76: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWord(uint16_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:269:3: required from ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBit(uint8_t) [with unsigned char BIT = 0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:175:4: required from ‘void SM16716Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::clearLeds(int) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 6u]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:247:77: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeByte(uint8_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:278:18: required from ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytesValueRaw(uint8_t, int) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:50:3: required from ‘void LPD8806Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::clearLeds(int) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 4u]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:240:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeByte(uint8_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:278:18: required from ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytesValueRaw(uint8_t, int) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:158:3: required from ‘void SM16716Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::writeHeader() [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 6u]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:182:3: required from ‘void SM16716Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::clearLeds(int) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 6u]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:240:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeWord(uint16_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 6u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:318:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 128u; D = DATA_NOP; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:364:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 128u; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 6u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:205:3: required from ‘void SM16716Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 6u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:232:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeWord(uint16_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:318:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; D = DATA_NOP; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:364:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:130:3: required from ‘void WS2801Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 96u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:232:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeByte(uint8_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 96u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:328:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; D = DATA_NOP; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:364:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:130:3: required from ‘void WS2801Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 96u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:240:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWord(uint16_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:341:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; D = DATA_NOP; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:364:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 96u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:130:3: required from ‘void WS2801Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 96u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:247:77: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::Write<CONT_STATE, WAIT_STATE, LAST_STATE>::writeWord(uint16_t) [with ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ECont CONT_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::ECont)1u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::EWait WAIT_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::EWait)0u; ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::ELast LAST_STATE = (ARMHardwareSPIOutput<11u, 13u, 4u>::ELast)0u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:318:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; D = LPD8806Controller<11u, 13u, (EOrder)10u, 4u>::LPD8806_ADJUST; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:367:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with D = LPD8806Controller<11u, 13u, (EOrder)10u, 4u>::LPD8806_ADJUST; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:74:3: required from ‘void LPD8806Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 4u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:232:4: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h: In instantiation of ‘static void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeWord(uint16_t) [with unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint16_t = short unsigned int]’:
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:341:5: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with unsigned char SKIP = 0u; D = LPD8806Controller<11u, 13u, (EOrder)10u, 4u>::LPD8806_ADJUST; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:367:3: required from ‘void ARMHardwareSPIOutput<_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER>::writeBytes3(uint8_t*, int, uint8_t) [with D = LPD8806Controller<11u, 13u, (EOrder)10u, 4u>::LPD8806_ADJUST; EOrder RGB_ORDER = (EOrder)10u; unsigned char _DATA_PIN = 11u; unsigned char _CLOCK_PIN = 13u; unsigned char _SPI_CLOCK_DIVIDER = 4u; uint8_t = unsigned char]’
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/chipsets.h:74:3: required from ‘void LPD8806Controller<DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED>::show(const CRGB*, int, uint8_t) [with unsigned char DATA_PIN = 11u; unsigned char CLOCK_PIN = 13u; EOrder RGB_ORDER = (EOrder)10u; unsigned char SPI_SPEED = 4u; uint8_t = unsigned char]’
Fast2Dev.ino:96:1: required from here
/Applications/Arduino.app/Contents/Resources/Java/libraries/FastSPI_LED2/fastspi_arm.h:247:77: error: ‘SPI0_PUSHR_CTAS’ was not declared in this scope

THANK YOU for posting the long report!

The library works generally great on teensy3; that was one of our main testing platforms.

I suspect the issues is in differences between “Arduino 1.0.5” vs the bundled IDE builds that Paul (Mr Teensy)(?) bundles.

Dan’s busy at this moment; I’ll see if we can help out later today. And seriously-- thank you again for posting the long report!

Ack - paul changed a bunch of the SPI macro defs with the most recent teensy software updates (good changes, to be fair - but changes all the same).

RC2, which fixes this, and a handful of other bugs, is now up - https://code.google.com/p/fastspi/downloads

Thanks both for the quick replies, and RC2 compiles without errors on my teensy 3 :slight_smile:

I seem to get some latching issues when using the lpd8806 strip with the fastspi_led2 library. If I use less of the leds than what´s on the strip the unused leds are red instead of being off. Is there a command I can set to clear this?
this is using the default fast2dev example

After a bit more investigation it seems like the lpd8806 chips aren´t reset if I change the number of leds.
I guess what I am trying to do is to access the clearLeds function (which I see in the chipsets.h under the LPD8806 section) by writing LEDS.clearLeds(300), but I get an error message: “Fast2Dev.ino: In function ‘void setup()’:
Fast2Dev:40: error: ‘class CFastSPI_LED2’ has no member named ‘clearLeds’”.
My procedure now is before I change the number of leds to set all leds to 0 using LEDS.showColor.

Ah - i should remove that code from the example, it’s a bit of a hack (that i put in there for a similar reason to what you’re seeing - the lpd8806’s “remember” their last color when power cycled ): – it’s abusing the fact that LEDS.addLeds() returns the controller object for the leds being added, an instance of CLEDController (or something along those lines) - and clearLeds(int) is a method on the controller, but not one that’s exposed to the LEDS class, in part because it wasn’t clear to me how to [present the meaning of "clearLeds(300)’ when you have multiple controllers - is that clear 300 on each controller, or clear 300 total, in which case how do you go from controller to controller? :slight_smile:

In the meantime, you can do something like:

CLEDController *p8806;

void setup() {
p8806 = LEDS.addLeds(leds, NUM_LEDS);
}

void loop() {
// make them all go away
p8806->clearLeds(300);
}

thanks!
I am new to the library, but couldn´t it be an option that the clearLeds be accessed the same as addLeds? LEDS.clearLeds(300)
Or is it possible to create multiple LPD8806 controllers so it would still be unclear which controller is being referenced?

It is possible to have multiple LPD8806 controllers, so doing clearLeds in that style isn’t quite as straightforward. I’ll come up with an option for it eventually.

I’ve also thought about just having the LPD8806 code silently clear 1000 leds on initialization, just to take care of the fact that the chips like to remember their setting.