Skip to content

Snail Timer

  • by

I made a countdown timer using a string of WS2818 LED lights coiled in a spiral pattern which is driven by an ATMega328p.

Source code and hardware files available here: https://github.com/benjohnemmett/Snail-Timer

Red spiral indicating time is up

User Interface

The controls are simple. The Snail Light has three buttons: minus, plus, & start/stop. Before starting the timer, the plus & minus buttons are used to set the countdown time in 1 minute increments with a max of 30 minutes. The start/stop button is used to start the timer. While the timer is counting down, the plus & minus buttons are not used.

Hardware Layout

Front Side Light Coil
Back Side Hardware Layer

Control Board

I created a control board in Kicad which breaks out the following

  • GPIO pins for the four control buttons
  • LED strip data, power, & ground
  • Reset button
  • Power switch
  • Crystal oscillator
  • ICSP header pins
  • UART pins
Control Board Schematic

Not all of these elements are used in the first version of the timer but putting them in opens up the possibility of adding features without ordering new boards. The kicad project files are included in the github repo.

I ordered the minimum five boards from JLCPBC. The price was reasonable and although it took a while to get them here, I’m happy with the quality of the boards.

3D PCB View on the JLCPCB site

Retrospective

If I were to build Snail Timer version 2 here are a few things I would consider.

  • Use a crystal oscillator for improved time accuracy
  • Replace plus & minus buttons with a dial (pot/rotary encoder) to set the time
  • Add sound when time is up and for user interaction
  • Create an enclosure
  • Allow for setting custom light colors

Leave a Reply

Your email address will not be published. Required fields are marked *