The software for the Toastmasters Automatic Timing Light is written in the Arduino IDE.  If you are not familiar with uploading programs into the Arduino, I recommend doing an Internet search, as there are many Arduino tutorials available.


To upload a program into the Arduino, you will need an appropriate USB Cable, either a USB A-Male to B-Male cable, or a Micro USB cable, depending upon the revision of Arduino you have.  The original Arduinos mostly used USB A-to-B, while newer versions have started using the Micro USB Cable, which is the same USB cable used for most Android devices, and other non-Apple portable electronics.

If you haven’t done so yet, dowload and install the Arduino IDE, available from the Arduino web-site.

Next, you will need to download and install two Arduino libraries, which are used by the Automatic Timing Light Program.  Both libraries are available free on GitHub.  For instructions in installing external libraries, see this tutorial.

Finally, you are ready to load the program to your Arduino:

  • Download the Automatic Timing Light program from GitHub.
  • Connect the Arduino board to the computer via USB.
  • Open the file TimingLight.ino in the Arduino IDE.
  • Select the right COM port.
  • Compile and upload the program by selecting Sketch –> Upload from the menu

Hopefully, everything should compile an load just fine.  If everything is right, you will see either “Manual Mode” or the Time Limits and “0:00” on the LCD.  In some cases, you may have to change the I2C address of LCD.  Refer to the code comments for this.

I built and compiled the program in the Arduino IDE 1.6.13.  I would expect it to work in other versions of the IDE, but obviously, I can’t test and guarantee every version.  If you get a compile error, it could be due to incompatibility in one of the libraries, and I recommend that you Google the error message and search the various help forums.

If the program compiles and uploads to the Arduino just fine, but something doesn’t work (e.g. the LCD, one of the buttons, or a light) then there is a good chance that something is wrong with your wiring.  Also make sure the I2C address of the LCD is correct.

Next: Final Assembly