#include <FastLED.h>

#define LED_PIN     3
#define NUM_LEDS    241
#define LED_TYPE    WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

// how many LEDs in each ring
const uint8_t led_count[] = {60, 48, 40, 32, 24, 16, 12, 8, 1};

void setup() {
  FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
}


void loop() {
  static uint16_t k = random16();
  
  uint8_t H[NUM_LEDS];
  memset(H, 0, NUM_LEDS);

  fill_raw_noise8(H, NUM_LEDS, 4, 0, 10, k);

  for (int i = 0; i < NUM_LEDS; ++i) {
    uint8_t index = 255.0 * i / NUM_LEDS;
    uint8_t one = sin8(index * 4 - k * 2);
    uint8_t two = sin8(index * 16 + k);
    leds[i] = CHSV(H[i] + k, 255, one * two / 255.0);
  } 

  k++;

  FastLED.show();
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
pixel1:VDD
pixel1:DOUT
pixel1:VSS
pixel1:DIN
ring8:GND
ring8:VCC
ring8:DIN
ring8:DOUT
ring12:GND
ring12:VCC
ring12:DIN
ring12:DOUT
ring16:GND
ring16:VCC
ring16:DIN
ring16:DOUT
ring24:GND
ring24:VCC
ring24:DIN
ring24:DOUT
ring32:GND
ring32:VCC
ring32:DIN
ring32:DOUT
ring40:GND
ring40:VCC
ring40:DIN
ring40:DOUT
ring48:GND
ring48:VCC
ring48:DIN
ring48:DOUT
ring60:GND
ring60:VCC
ring60:DIN
ring60:DOUT