Larson Scanner with input for timing and width.

"The Larson Scanner is named after Glen A. Larson, who produced the Battlestar Galactica and Knight Rider series, and is responsible for introducing scanning red light effects to the sci-fi TV viewing population of the 1970s and 80s. We coined the term "Larson Scanner" when we wrote an article with instructions for an analog version of the circuit for the Make Magazine Halloween Special Edition in 2007." - Copy/pasted from Evil Mad Science Wiki

Here is a simple Arduino Larson Scanner using two types of inputs to control the speed (analog) and the width (4bit digital) of the scanning pattern.

See the scanWidth() routine for how I read 4 digital inputs as binary and converted it to an integer. (The routine has built in capability for 1 to 8 bits, and can be easily modified for more bits.)

This circuit came from my extensions of ARDX tutorial circuit#5 (8 More LEDs, 74HC595 Shift Register). Except for the 4-bit dip switch, all the parts came with my SparkFun Arduino Inventor's Kit. I was going to use a 4-bit rotary encoder instead of the dip switches, but I didn't have one in my misc parts bin.

Also used it as a example to learn how to use Fritzing.

Change Log:


  • Noticed that the generic 8-pin component works better for the DIP Switch than the Mystery Part, at least on the schematic view. So I replaced it. Eventually I may come up with better svg files specifically for dip switches.
  • Added some tags used in other projects.
  • Added quote explaining the term "Larson Scanner" to the description, above.


  • Corrected formatting once I figured out that deleting and re-uploading the header picture allows saving of changes to other fields.