     return 1;
   }
 
-  static bool rainbow_pulse(uint16_t sequence, color_t& color,
-			    uint8_t& intensity) {
+  static bool pulser(uint16_t sequence, color_t& color, uint8_t& intensity) {
     const int PHASE = 32;
-    color = G35::rainbow_color((sequence + PHASE) / (PHASE * 2));
+    color = G35::max_color((sequence + PHASE) / (PHASE * 2));
     intensity = abs(PHASE - (int)(sequence) % (PHASE + PHASE));
     return true;
   }

  uint16_t sequence_;
};

// How long each program should run.
#define PROGRAM_DURATION_SECONDS (30)


    sequence_(0) {}

  uint32_t Do() {
    g35_.fill_sequence(0, count_, sequence_, 1, pulser);
    if (count_ < light_count_) {
      ++count_;
    } else {
