Hey guys, I backed a kickstarter which got me a couple Rabid Prototypes TAU boards. They are Arduino Zero compatible, so much so that if I have the TAU set in the boards manager and get board info, it reports as a Zero.
The problem I am having is I am trying to do a FastLED project with it, and it wont compile for the TAU. If I switch the board manager to Zero, it compiles.
The error I get is this.
fastpin.h:206:2: error: static assertion failed: Invalid pin specified
static_assert(validpin(), "Invalid pin specified");
I tried every pin and I get the same error.
From what I have googled, this means there is no board definition for the tau in FastLED.
I found this thread
opened 07:40PM - 18 May 16 UTC
closed 07:43PM - 18 May 16 UTC
Hi,
I've got a strip of W8212 LED's hooked up to a custom PCB running a Atmega6… 44PA at 16Mhz, I'm using FastLED 3.1 and IDE 1.6.7. I get a compiling error whenever i include the FastLED library. I have the the DATA PIN connected to the PB7 pin on the 644 which translates to pin 15 in IDE. I've used this library before on a custom PCB running a Atmega328 at 16Mhz without any issue, i do see that with the Atmega328 PB7 would just be pin 7 in IDE and with the 644 it translates a bit differently (PB7 = pin 15)... So i don't know if that has something to do with it.
```
In file included from C:\Program Files (x86)\Arduino\libraries\FastLED-master/FastLED.h:40:0,
from C:\Users\feste\AppData\Local\Temp\arduino_ee0154f342bd35375a3767f897a1a60c\Blink.ino:1:
C:\Program Files (x86)\Arduino\libraries\FastLED-master/fastpin.h: In instantiation of 'class FastPin<4u>':
C:\Program Files (x86)\Arduino\libraries\FastLED-master/platforms/avr/clockless_trinket.h:96:49: required from 'class ClocklessController<4u, 4, 10, 6, (EOrder)10u, 0, false, 10>'
C:\Program Files (x86)\Arduino\libraries\FastLED-master/chipsets.h:322:7: required from 'class WS2812Controller800Khz<4u, (EOrder)10u>'
C:\Program Files (x86)\Arduino\libraries\FastLED-master/FastLED.h:92:52: required from 'class WS2812B<4u, (EOrder)10u>'
C:\Program Files (x86)\Arduino\libraries\FastLED-master/FastLED.h:263:39: required from 'static CLEDController& CFastLED::addLeds(CRGB*, int, int) [with CHIPSET = WS2812B; unsigned char DATA_PIN = 4u; EOrder RGB_ORDER = (EOrder)10u]'
C:\Users\feste\AppData\Local\Temp\arduino_ee0154f342bd35375a3767f897a1a60c\Blink.ino:22:62: required from here
C:\Program Files (x86)\Arduino\libraries\FastLED-master/fastpin.h:206:2: error: static assertion failed: Invalid pin specified
static_assert(validpin(), "Invalid pin specified");
^
exit status 1
Error compiling.
```
TIA
(yes thats me at the end) that says you just need to
add a section defining the pin/port mappings for your board
I assume that has to do with adding a section like so
#elif defined(AVR_ATmega1284P )
I guess my main question is, how do I find out what processor definition the TAU is?
Can I just copy the one from the zero and make it work for the tau?
Where is the file that defines the zero?
Thanks!
westfw
August 18, 2017, 12:21am
2
how do I find out what processor definition the TAU is?
Turn on the verbose option for compilation in the Arduino preferences, then copy the compile dialog and see what it defines.
For example, compiling for a genuine zero produces:
/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g++
-mcpu=cortex-m0plus -mthumb -c -g -Os -w -std=gnu++11 -ffunction-sections
-fdata-sections -fno-threadsafe-statics -nostdlib --param max-inline-insns-single=500
-fno-rtti -fno-exceptions -MMD -DF_CPU=48000000L
-DARDUINO=10802 -D[color=red]ARDUINO_SAMD_ZERO[/color] -DARDUINO_ARCH_SAMD -D__SAMD21G18A__
-DUSB_VID=0x2341 -DUSB_PID=0x804d -DUSBCON '-DUSB_MANUFACTURER="Arduino LLC"'
'-DUSB_PRODUCT="Arduino Zero"'
"-I/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/tools/CMSIS/4.5.0/CMSIS/Include/"
"-I/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/tools/CMSIS-Atmel/1.1.0/CMSIS/Device/ATMEL/"
"-I/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/hardware/samd/1.6.15/cores/arduino"
"-I/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/hardware/samd/1.6.15/variants/arduino_zero"
"/Applications/arduino/Arduino-1.8.2.app/Contents/Java/portable/packages/arduino/hardware/samd/1.6.15/cores/arduino/WMath.cpp"
-o "/var/folders/jz/5yb8f2hr8xjcpf0059bsfz4r0000gn/T/arduino_build_637127/core/WMath.cpp.o"
Where the part I've highlighted is what fastpin_arm_d21.h uses to define some pins.
Can I just copy the one from the zero and make it work for the tau?
Probably, if they are as compatible as you say... Or change the #if statement to include several symbols
#if defined(ARDUINO_SAMD_ZERO) || defined(ARDUINO_SAMD_TAU)
For those of you that may go looking for this info,
it appears to be..
ARDUINO_SAMD_TAU