   byte movePref; // CW or CCW preference
 } cycle_t;
 
-#define MAX_CYCLES 20
+#define MAX_CYCLES 50
 cycle_t cycles[MAX_CYCLES];
 
 #define CYCLE_DICK_MOVE_PERCENT 15 // chance that a cycle will throw some "zigs" in it's path around the rim

      case 2: addCycle(BLU_X, ALL_Y, Blu); break;
      case 3: addCycle(YEL_X, ALL_Y, Yel); break;
    }

  }



  rimJob.setPixelColor(getPixelN(x,y), color);

  // cycles don't start in exactly the same place; "thereabouts"
  cycles[availableCycle].x = constrain((int)x + random(-5,6), 0, RIM_X);
  cycles[availableCycle].y = constrain((int)y + random(-1,2), 0, RIM_Y);
  cycles[availableCycle].color = color;
  cycles[availableCycle].live = true;

