Overview

Nobody likes a meeting that drags on forever. But how to keep people on topic and the meeting moving along? Circuit Playground to the rescue!

This simple device allows you to increase the efficiency of meetings by putting a countdown timer in the hands of the speaker. 

This talking stick gives warnings of increasing urgency as the speaker's time runs down, and an alarm goes off when they've run over their allotted speaking time.

A 60 second countdown starts when user presses the A button. At 30 seconds it beeps and the onboard NeoPixels illuminate yellow. At 15 seconds it turns orange and beeps again, and at 5 seconds beeps again and goes red. The countdown can be paused by flipping slide switch to the left, and can be restarted by flipping switch back to the right and pressing the A button again. When the countdown hits 0 it beeps and flashes continually until it's tossed to the next speaker (basically shaken), at which point the countdown automatically restarts. 

This project is an extension of the "talking stick" concept, except this talking stick provides active feedback, limiting the amount of time the holder has to make their point and ensuring everyone equal opportunity to speak (other examples of this concept also exist elsewhere on the internet). 

Required Electronics

Circuit Playground Express

PRODUCT ID: 3333
Circuit Playground Express is the next step towards a perfect introduction to electronics and programming. We've taken the original Circuit Playground Classic and...
$24.95
IN STOCK

USB cable - USB A to Micro-B

PRODUCT ID: 592
This here is your standard A to micro-B USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your Metro, Feather, Raspberry Pi or other dev-board or...
$2.95
IN STOCK

Enclosures

You may want to enclose your Circuit Playground Express somehow and make it easy to toss around. These two enclosures are both good options. The enclosure has a screw mount which works with the adapter for making a handle.

Adafruit Circuit Playground Express Enclosure

PRODUCT ID: 3915
We've got nice cases for many of our beloved boards, but the Circuit Playground Express has been left out of couture enclosure...
$4.95
IN STOCK

1/4" to 1/4" Screw Adapter - For Camera / Tripod / Photo / Video

PRODUCT ID: 2632
"Simplicity is the ultimate sophistication" - Leonardo da VinciThis 1/4" screw to...
$1.50
IN STOCK

DIY Ornament Kit - 6cm Diameter - Perfect for Circuit Playground

PRODUCT ID: 4036
Have you put up with mainstream, uninspiring, low-tech tree ornaments for too long? This season why not deck the halls with codes of holly?This DIY Ornament...
OUT OF STOCK

Power

In addition to the Circuit Playground Express, you will need some way to power it so you can use it without being attached to a computer. Choose an option that works best for you.

3 x AAA Battery Holder with On/Off Switch and 2-Pin JST

PRODUCT ID: 727
This battery holder connects 3 AAA batteries together in series for powering all kinds of projects. We spec'd these out because the box is slim, and 3 AAA's add up to about...
$1.95
IN STOCK

Alkaline AAA batteries - 3 pack

PRODUCT ID: 3520
Battery power for your portable project! These batteries are good quality at a good price, and work fantastic with any of the kits or projects in the shop that use AAA's. This is a...
$1.50
IN STOCK

Lithium Ion Polymer Battery Ideal For Feathers - 3.7V 400mAh

PRODUCT ID: 3898
Lithium ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery...
$6.95
IN STOCK

If you choose to use a LiPo battery, be sure you have a way to charge it.

Materials

For this project you may also want to have:

MakeCode

Getting Familiar

The code was created using Microsoft MakeCode for Adafruit, a web-based code editor. MakeCode provides a block editor, similar to Scratch or Code.org, and also a JavaScript editor for more advanced users.

If you'd like to learn more about MakeCode, this guide is a good place to start.

Bootloader Mode

Your Circuit Playground Express board comes ready to work with CircuitPython. When you connect the board to your computer for the first time, it will appear as a flash (or thumb) drive named CIRCUITPY.

BUT

We'd like to make it work with MakeCode, which is done by putting it into "bootloader mode".

All that's required to do this is to connect the board to your computer with a micro USB cable and click the small reset button in the center of the board. The available thumb drive should eject itself and show up again as CPLAYBOOT. Your code file will be placed on CPLAYBOOT.

Click this link or the button below to enter the portal to interact with the code for this project (you may need to zoom out to see all the blocks).

How to Upload Code

To upload code, connect you Circuit Playground Express to your computer using the micro USB cable, click the Download button to download the .uf2 file to your computer, and drag 'n drop that .UF2 file onto the CPLAYBOOT drive in your computer's file explorer or finder.

The drive will automatically eject itself. (Your computer may give you a "failed to eject drive correctly" error, you can ignore this.) The code is now on your Circuit Playground Express and ready to run!

If you'd like to play with this code, click "Edit" and a new window will open in which you can create your own version.

Troubleshooting

Problem: My Circuit Playground Express doesn't show up as CPLAYBOOT!

Solution: Your Circuit Playground Express board comes ready to work with CircuitPython, and will show up as a flash drive named CIRCUITPY the first time it's connected to your computer. To switch over to work with MakeCode, connect the board to your computer with a micro USB cable and click the small reset button in the center of the board.  

When Circuit Playground Express is in Bootloader mode, all the LEDs will flash red briefly, then turn green. Your computer should now show removable drive called CPLAYBOOT. Now you can copy the MakeCode file to the CPLAYBOOT flash drive.

Understanding the Code

Deep Dive

Before moving forward, let's take a moment to more closely examine the code for this project and how it works.

This MakeCode example provides instructions for a 60 second countdown and provides visual & audible warnings at 30 seconds, 15 seconds, and 5 seconds. The code also allows the user to pause and restart the countdown whenever they need to. When the countdown hits 0 it beeps and flashes continually until it's tossed to the next speaker, at which point the countdown automatically restarts. 

Let's take a look at how each of these functions are coded in MakeCode.

Startup

 

In the green on start block there are a series of instructions for Circuit Playground Express to perform as soon as it's powered on.

 

Here you can set the length of the timer, adjust the sensitivity to being shaken, change the volume of the beeps, etc.

 

On startup, the board will show the rainbow animation for 1 second before illuminating two NeoPixel LEDs at their starting point, indicating it is ready.

Tick Tock

 

In this pink input block, there are some instructions telling the timer when and how to operate.

 

As you can see in the while statement, the slide switch must be slid right in order for the timer to start. Once this condition is met, pressing the A button will start the countdown.

This while statement also allows the user to pause the timer if necessary and restart it again right where it left off.

Flipping the slide switch to the left will pause the countdown.

Flipping the switch to the Right again primes the countdown, and pressing the A button starts it counting down again. 

Forever

 

In the green forever block are the instructions that are always running in the background, watching the countdown and waiting for it to hit certain numbers.

 

The blue if statement at the end of this block tells Circuit Playground Express to beep and flash red continually until it detects a shake.

Shake to Restart

 

In the on shake block there are instructions for how Circuit Playground Express should reset itself when it detects a sudden change in acceleration.

Make it Portable

The clear plastic enclosure for Circuit Playground Express is an excellent way to encase and protect your project. This enclosure has a threaded adapter which fits a handy 1/4" to 1/4" screw adapter.

Adding a cardboard handle to this enclosure makes it into a handy and functional "talking stick" that can easily be passed or tossed around in meetings.

Cardboard Handle

 

Cut a short piece of cardboard tube lengthwise.

 

Roll into a compact cylinder.

Attach Screw Adapter

 

The 1/4" to 1/4" Screw Adapter is excellent for connecting things to the Circuit Playground Express.

 

Roll the tube so that it matches the diameter of the screw adapter, then hold the tube in place with a strip of tape.

 

A ring of hot glue is sufficient to make a strong connection between the screw adapter and cardboard tube.

As a final touch, two strips of differently colored tape (in this case, black and green), can add a beautiful spiral pattern to your handle, and make it much easier to find besides.

If a toss-able orb is more enticing, the Circuit Playground Express fits nicely inside one of these 6cm diameter globes

3D Printing a case is also an option if you have access to a 3D printer. This ornament fits a Circuit Playground Express and could easily be re-purposed for this project. 

Making Changes

This project has the benefit of being highly adaptable, with changes able to be made in MakeCode and implemented with lightning speed. 

If you would like to lengthen the amount of time the speaker has before the timer starts beeping, it's as simple as adjusting two numbers, downloading the new UF2 file, and dragging it over onto your Circuit Playground Express.

Firstly, go to the on start block and change the value in set seconds to from 60 to, say, 120 to change it to a 2 minute timer. Make sure you mirror this change in the same instance in the on shake block, otherwise the timer will reset itself back to a 1 minute timer when it's shaken!

Game Time?

If you like this MakeCode project but wish it was more of a game than an efficiency device for meetings, check out this Hot Potato project!

Exploring Further

If you want to continue exploring you can check out lots more MakeCode projects on the Adafruit Learn System.

This guide was first published on Jan 05, 2019. It was last updated on Jan 05, 2019.