Introduction: Daily Standup Timer

This is a hardware project to build a timer/clock which can be used for Daily Standup Meetings in an agile developer team.

Features

  • Countdown timer for each team member.
  • Controlled with swipe gesture !

Hardware

Step 1: Wire It Up

Wire display to Arduino as in the Source

Display.A   connect to Arduino.2
Display.B   connect to Arduino.3
Display.C   connect to Arduino.4
Display.D   connect to Arduino.5
Display.OE  connect to Arduino.6
Display.STB connect to Arduino.10
Display.R1  connect to Arduino.MOSI(11)
Display.CLK connect to Arduino.SCK(13)
Display.GND connect to Arduino.GND

Sensor.OUT  connect to Arduino.12
Sensor.VIN  connect to Arduino.5V
Sensor.GND  connect to Arduino.GND

When using other Arduinos, make sure to wire Display.CLK to Arduino.SCK(13) and Display.Data to Arduino.MOSI(11). This is because the Micro has dedicated Pins for the SPI interface which is used to drive the matrix.

Step 2: Programming It

Theory...

The Display is a bit stupid one, it works like an oldscool TV set, The 32 Pixels of one Line are stored in shift registers, so U drive in serial data for one line, select the line with the ABCD connections, these are decoded into 1 of 16 lines and by pulling OE down, the line lights up, then U turn the line off, serialize data for next line in, turn next line on and so forth…

The cycling through the lines needs a bit of clever timing otherwise it will flicker or consume to much CPU time. That’s why I changed the code to use the timer interrupt and the SPI.

The interrupt (Timer1 Overflow) ensures that the display refreshes no matter what else your program is busy with and the SPI is just a better way to serialize data out of one port, using it, is much faster then toggling a pin 8 times up and down because it uses hardware (the SPI - SerialPeripheralInterface) which does it for us and requires only one write operation per byte - Pin toggling requires about 24 digitalWrite calls per byte, bit shifting and and and....

The button is as simple as in certain Arduino examples. Nothing fancy here. The Button is used to wake up the timer and to skip over people's initials to the next one. I actually used a proximity sensor, just because it's cooler when a button, you can interact with a wink .. uuuhhh so coool.

The program will show the initials of the guy who's talking and a count down timer, it starts blinking when it's close to zero. On the top of the source listing you can set the number of people, their initials and the time for the meeting.

SourceCode is attached..

  • DailyStandupTimer.zip contains the sketch, usually goes to Documents/Arduino
  • TimerAndLED_library.zip are the patched libs used. usually go to Documents/Arduino/libraries (restart the Arduino GUI after copying libs there)

Potential Improvements:

  • Real sleep mode when off - where is some doc for that on the web.
  • Nicer graphics , would require more advance font painting, at the moment the font is just copied byte wise, thats why it can only be drawn at pos 0,8,16,24. For more flexibility, it must be shifted to a one pixel position and or'ed into the display buffer.

Microcontroller Contest

Participated in the
Microcontroller Contest