Introduction: LED Cylon Scooter - 80s Larson Scanner

About: Making and sharing are my two biggest passions! In total I've published hundreds of tutorials about everything from microcontrollers to knitting. I'm a New York City motorcyclist and unrepentant dog mom. My wo…

This project is a very 80s upgrade to a very 80s scooter-- I'm putting an LED strip in the grille of my boyfriend Smokey's Honda Elite to create a larson scanner animation effect while teaching him how to solder.

The circuit and code are remixed from Phil B's Larson Scanner Shades project.

Supplies

For this project I used a strip of WS2812b LED strip, also known as NeoPixels. I chose the densest variety to pack as many LEDs in as possible for a nice smooth animation effect.

To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter. As an Amazon Associate I earn from qualifying purchases you make using my affiliate links.

Step 1: Attach Power and Ground Wires

The board is powered directly from the scooter's 12v power, so we attached wires to the power and ground pads on the back of the board.

Step 2: Attach LED Strip

Since the pixels can't handle 12v, they're being powered by the Trinket's voltage regulator, which isn't generally a good idea. But since there are so few LEDs lit up at once in this circuit, we can sneak in under the regulator's max current output.

Step 3: Arduino Code

I used Phil B.'s larson scanner code, modifying only the number of LEDs in the strip:

// Larson Scanner by Phil Burgess: 
// https://learn.adafruit.com/larson-scanner-shades?view=all

#include <Adafruit_NeoPixel.h>

#define N_LEDS 31
#define PIN     4

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRBW + NEO_KHZ800);

void setup() {
  strip.begin();
}

int pos = 0, dir = 1; // Position, direction of "eye"

void loop() {
  int j;

  // Draw 5 pixels centered on pos.  setPixelColor() will clip any
  // pixels off the ends of the strip, we don't need to watch for that.
  strip.setPixelColor(pos - 2, 0x100000); // Dark red
  strip.setPixelColor(pos - 1, 0x800000); // Medium red
  strip.setPixelColor(pos    , 0xFF3000); // Center pixel is brightest
  strip.setPixelColor(pos + 1, 0x800000); // Medium red
  strip.setPixelColor(pos + 2, 0x100000); // Dark red

  strip.show();
  delay(30);

  // Rather than being sneaky and erasing just the tail pixel,
  // it's easier to erase it all and draw a new one next time.
  for(j=-2; j<= 2; j++) strip.setPixelColor(pos+j, 0);

  // Bounce off ends of strip
  pos += dir;
  if(pos < 0) {
    pos = 1;
    dir = -dir;
  } else if(pos >= strip.numPixels()) {
    pos = strip.numPixels() - 2;
    dir = -dir;
  }
}

Step 4: Glue It Up

I used Permatex silicone adhesive to fill in the open ends of the LED strip's silicone sheathing as well as to glue the LED strip to the inside of the grille. I used tape to hold the strip in place while the glue dried.

Step 5: Install and Enjoy!

Smokey installed the grille into his scooter and wired the trinket's power and ground wires to the bike's 12v power, with a switch under the seat.

I hope to see you build one of these for your own purposes. I'd love to see your versions posted in the "I Made It" section below.

If you like this project, you may be interested in some of my others:

Thanks for following along! To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter.