Light Emitting Diodes, or LEDs, are used in an array of applications from providing reading light to turn signals on vehicles. Most applications simply convey information. The material exploration centers on the property and contexts of the colors of LEDs with the context of sharing information.

The ultimate goal of this exploration is the creation of a hit point puck; a small device that shows a general sense of how many hit points a player has during a role playing game, such as Dungeon and Dragons.

D&D and other table games lack a context of health. Fighters engaged hand-to-hand can readily tell the health of their opponent by bruising, bleeding and general stamina. This visual cue is lacking in role playing games so a hit point base is just one more piece of information that a player can use to plan strategy and tactics during gameplay.

Considerations and Affordances

The hit point puck should be self contained and easy to use. The top will be sensitive to touch via capacitive touch with two finger tapping to add ten points and single touch to add one point.

During play, single tap will take away points while tow finger touch will allow for points to be added for healing potions and spells.

A slide switch on the side will allow unit to be turned on/off to save battery life and to allow for resetting.

Design Brief

Design Brief:
Exploration of LED Lights, Color and a Hit Point Base

Design Methods – Fall 2019
John Williams

Motivation: What is my material? Why is it worthwhile/interesting?

LED lights are used in an array of applications from providing reading light to turn signals on trucks. Most of that application is in conveying information. My material for this final project is LED light with a focus on the property and context of color and sharing information.This could expand to other materials, such as paper (used in reflection/absorption). LEDs seem most approachable for my project. 

Most of us are programmed for color especially within the narrow range of the electromagnetic spectrum between 700 nm (red) to 400 nm (violet). Color is particularly useful in conveying information whether it’s in data visualizations, computer games or traffic lights and signs. Color enhances storytelling and its impact can be driven by societal conditions and maybe universal human perceptions. Colors can influence the mood and tone of situations and data.

Subject: What specifically do I want to do with the material? Track 1 or 2…

For this project, I will concentrate on Track 2 – creating a physical product. The idea is to build a hit point base that shows in a general sense the health of a gaming character or monster. This could be through different colors, such as green for healthy, red for damaged. But the display could also show a pattern such as bright to dark; or flashing fast to flashing slower to mimic heartbeat. 


  • Wavelength of light
    • Which wavelengths correspond to a particular emotion.
    • Which colors best convey health? Which pain?
      • Other color possibilities. Is this societal, hereditary, evolutionary?
  • Reflection/Absorption
    • How does the color of light affect the appearance of a color or color pattern on a character or background?
  • Shadows (lack of color)
    • How do colors interact when one color is blocked by an object.
    • Does this shadow differ on the ground or the wall?
  • Intensity
    • Do a spectrum of colors impart more information than a simple gradient of color.
  • Animation
    • How are pulsing lights interpreted (pulsing is a gradual buildup and letdown of light intensity)
    • How are flashing lights interpreted (flashing lights are staccato display of light. Either on/off)
    • Does the speed of pulsing and flashing affect comprehension
    • Patterns. The above assumes a steady pattern of light. But do other patterns, similar to Morse code, impart better understanding or comprehension
  • Configuration
    • Does a ring of color convey information better than a string of lights, a group of three lights. Is direct, reflected or diffuse lighting 
    • To consider
      • Ring of LEDs
      • Dividing ring of LEDs into equal area light areas to convey other information
      • Group of three lights (similar to stoplight)
      • Single bulb (for instance, a red, green and blue LED)
      • Single source diffuse light (single bulb being used to cast light into a translucent material. Could be used to show colors or animation) 
      • ANGLES Lights from different angles. Different colors from different angles could create colored shadows that might also convey information 

 Scope: What are the parameters of my exploration? How am I scheduling/structuring the project?

Week 1 and 2: Explorations during this time will delve into what makes effective color choices for simple data visualization. What role does color, shade, flashing and pulsing give to visualization and gameplay. A decision on the best strategy to communicate health (and other information) during gameplay will be formulated and tested perhaps using classmates or other students.

Additionally, I will explore colors that convey emotion or other informational states (a form of information). In the real world, many times, emotional state can be seen in facial and body language. For instance, what is the color for being awake? Is green always a “healthy” color like for healthy plants. What emotion does red convey (rage or pain?) Or orange? Or yellow? How can these new emotions or states of being be accounted for in a HP base? Colors needed for new emotional and information states include wakefulness, alertness, bravery, fear, intelligence or heightened awareness, constitution, dexterity. 

Week three involves experimentation with light color and shadow. Through angles, shadows, color combinations will the colors all shine equally in the lit and shadow areas.  What is that light combo going to add to the play experience. Need to decide on the colors of the base. And see how they interact. 

In particular two questions

  • Experiment: How does colored light reflect off of colored surfaces. My theory is that red objects are invisible in red light; green objects are invisible in green light and blue objects are invisible in blue light. Combinations of RGB values would render similar color values invisible as well. 
  • Experiment: If an object is introduced that casts a shadow, how will the light that spills from the other colors combine. 

Then a simple prototype will be developed in the remaining three to four weeks. I believe a method of adding (setting) and subtracting hit points to the base could be accomplished by using capacitive touch points. Tapping the bottom would be used to add hit points, while tapping the top would subtract points.

  • Experiment: Can a method be created where using one finger to tap increase just one point. Two fingers for five points, and three fingers for 10 points? This would increase efficiency in adding original hit points to the base.
  • Experiment: Is there enough room on the base for the inclusion of more than one or two capacitive touch sensors to detect a three-finger tap?

 Deliverables: What do I hope to produce at the end of this semester? Document and communicate… 

I hope to deliver a unique base that allows a user to not only add the proper number of points but also to keep track of any health related to the character in play. Multiple units, interconnected by bluetooth and a mobile app, are desirable but out of the scope for this iteration.

Assessment: What does a successful exploration look like?

A successful exploration ends with a simple, useful and aesthetically pleasing and therefore marketable prototype. Additional success will be accomplished in determining how best such player information can be conveyed effectively. Can a successful combination of light and shadow (lack of light) be used to convey player information.

Other Thoughts:

I think one interesting feature of this might be the exploration of color filters on a cellphone camera used in augmented reality in conjunction with a physical hit point base.

A Working Example

The first step to puck realization was creating the outer case. I actually found a case sketch that had many of the components I was seeking. I increased the height of the case to allow for a battery to be inserted. The rest remained the same.

Finished puck bottom

The top called for the printing of a translucent ring. I did not have this material so I obtained some mylar that had the right translucency but no structural component to bind the outer ring and center tap area together. Clement suggested using a piece of acrylic.

This worked nicely. For final assembly, this acrylic disk was sanded to remove transparency. It requires more sanding than I gave it.

I needed to familiarize myself with programming the Neopixel ring.

A basic circuit setup shows how I set up the ring for this testing.

And I got the basic string test working

A test of the rainbow algorithm in the string test sketch.

finished pinout testing

Settled on green for healthy, yellow for good, orange for ok, and red for hurting

Considering adding/subtracting hitpoints again. I had thought it would be neat to tap in points from the bottom and subtract from the top using captouch sensing. One idea was to let user tap in hitpoints from the bottom and then have the puck wait 5 seconds or so, and then set that number as the working hitpoint total. But…what if a player took a potion and needed to add hitpoints. I would need to add again. Well, that’s not necessarily true. Still need a way to set the upper hitpoint value so I can track the percentage of HP’s lost. So this still makes sense.

The scenario…
  • User turns puck on.
  • taps in hitpoints from the bottom. After a five second lull in adding hitpoints, the hitpoints are set at that number. If that is incorrect, user would have to turn off puck to reset.
  • During play…user taps top to subtract points
  • Other options explored
  • using 1 finger tap to subtract points
  • using multifinger tap to add points
  • using left side of top to subtract points and right side to add points. This subtracts from the appeal of no orientation to the puck. It just sits on the table without thought to direction
  • Decided…going with 1 finger/multifinger tap

Ran into some issue where the pinouts for capacitive touch were not working. Turns out not all combinations will work.

Here are my results. Note…each setting was preceded by a arduino reset.

Pin Combo Direct Indirect
12,14 760


3,14 600 20-75
15,14 600 20-75
0,14 600 7-150
16,14 600 50-110
2,14 600 23-110
5,14 600 15-110
4,14 600 35-110
13,12 700 15-70
15,12 650 10-100
0,12 610 10-80
16,12 650 20-60
2,12 650


5,12 650 20-60
4,12 640 4-40
15,13 600 60-130
0,13 600 14-120
16,13 650 50-120
2,13 650 30-130
5,13 670 30-90
4,13 650



0,15 -2 -2
16,15 -2 -2
2,15 -2 -2
5,15 -2 -2
4,15 -2 -2
16,0 -2 -2
2,0 -2 -2
5,0 -2 -2
4,0 -2 -2
2,16 -2 -2
5,16 -2 -2
4,16 -2 -2
5,2 -2 -2
4,2 -2 -2
4,5 650 7-120

Note: -2 denotes a null value.

Once I determined the pinouts that would work for capacitive touch, I settled on pins 14 and 12. I chose pin 4 for data into the pixel ring.

Starting the assembly in the puck.


A video shows the puck working before assembly.

Picture of connecting capacitive touch to the top

Picture of inserting the switch.

Snaking the little wires in the puck case.

Picture of the life puck working showing a state near death.

A working version of the puck.

Closing Thoughts

Each exploration uncovered some new aspect of using LED light to convey information. I spent way too much time exploring how red, green and blue light can be used to “hide” information. This aspect of exploring picqued and interest from my early newspaper days when cyan, magenta, yellow and black were used in various combinations to create boxes or pictures of color. Rediscovering this color theory was interesting but cut into build time.

I eventually abandoned ideas of integrating hiding story aspects with color into the hit point puck instead settling on the original concept of creating a product that would convey simple hit point information.

I am not convinced that the capacitive touch capability of the puck is the right solution. The puck would need calibrating every time it is turned on creating a chance that the readings will never be met and the puck would appear to be non-responsive.

The importance of smoothing the data became apparent during testing of the capacitive touch. This allowed me to program around the noisiness of the sensor. It was also important to include debouncing code so that the Arduino could sense a discreet touch instead of firing off values every millisecond (the Arduino code’s default polling value). Though I find setting these values and values for capactive touch a very tricky exercise. I also considered writing code that would calibrate the puck every time it was turned on. For a count of five a user would leave the puck alone so the low end of the data could be gathered and set. A second five count period, this time with the user touching the puck top with two fingers would give a good range for the top end. Then the entire range could be smoothed out so accurate percentages could be used for decrementing health.

One item that was mentioned several times was instead of having just a glowing disk, a countdown could be used in conjunction with the color. This would give not only the impression of lost health but would visually show the character’s health. I considered this and will continue to consider. The idea with the puck was to show a general state of health, not an absolute hitpoint counter. Some of this is to avoid the possibility of the count reaching zero before expected because of the sensitivity of the capacitve touch. But the other consideration was for players who really shouldn’t know their opponent’s actual hit point count. 

If I were to build this again, I might consider integrating a simple push button to ensure that hit points are added and subtracted fairly accurately. The puck was never intended to be an absolute measure of health. Just like in real life, health is subjective and the colors were always meant to mimic what is seen in reality. But having switches would make the whole unit work better, I believe. Relying on a changing zone of information coming from the capacitive touch sensor is not the best long term solution.

Supplemental: Weekly Explorations and Random Thoughts

Week 1: November 4, 2019

What insights emerged from my material exploration so far?

I think my biggest insight this week isn’t about the material itself but about how I’m thinking about the project. I have an idea that I want to bring to life. And it’s causing me to be stuck in how I look at this exploration. So…I need to start experimenting trusting that the effort will open my mind to some different possibilities. Clement has been great at offering suggestions that are way beyond what I would have explored myself. Using RGB LEDs to cast shadows or other colors on objects seems like a fascinating way to convey information. Now just to blow the doors off this exploration and start coming up with some questions.

Some that have come to mind so far…

  • How might shadows convey information (or lack of a color in an area of shadow)?
  • How can I push the aesthetic of this project to come up with interesting artifacts?
  • Does this light exploration matter for small objects or big objects. Does it scale?
  • How does positioning of separate colors add to information conveyance?
  • Does distance affect information conveyance as well?

Week 2: November 11, 2019

November 11, 2019               

1- What tools are critical to designing with my material? How are they organized throughout my making process?

The tools that are critical to designing with my material are 

  • computer
  • Internets (for research)
  • Books (for research)
  • Research Papers (for research)
  • code editor
  • microprocessor
  • breadboard
  • soldering iron
  • knife/cutter
  • my hands
  • my brain
  • 3d printer
  • camera/gopro/phone
  • pen/paper (for brainstorming)


  • wires
  • lights
  • switches
  • solder
  • arduino code
  • 3d printed base
  • translucent ring (3d printed)
  • light stands

2- What new tools/jigs/building blocks can I construct to expedite my design process?

New tools that I can construct to expedite my design process include a test bench for my lighting experiments. With small towers to raise an LED to different levels along with specific guides on the angles that are needed to explore direct illumination, reflections and color combinations related to shadows.

Week 3: November 18, 2019

I started to build this week and ran up against a lack of knowledge when it comes to the Arduino. So more tutorials. In general, I was interested in setting up a simple LED experiment. But ran into problems maybe because I had the wrong resistor on the board. I’m finding it hard to determine the Ohm value of the resistors in my kit. I think that is just experience or lack thereof. What was interesting is that I got a slight glow from an LED at some point. 

Here’s a single LED circuit drawing.

More experimentation and exploration this week. Last week, based on a book of 3D star maps, I experimented with the colors generated with red, green and blue LED lights. Using a toilet paper cardboard core, I cast a shadow showing that combinations of RGB light produce cyan, magenta and yellow colors in the shadows. 

Red, green and blue lights arrayed at about 45 degree angles to the paper roll seemed offer the best color array. The result is aesthetically pleasing and regular to me in any case.


It seemed to me that a famous scientist had explored this nature of light sometime in the past. Turns out Isaac Newton studied this with sunlight and prisms. He wrote a book called Optiks that explores the nature of light and color.

As a side note, my DSLR camera is not very sensitive to the red end of the spectrum. This is an introduced feature to the camera and many astrophotographers who want to capture the reddish colors of nebula (Hydrogen glows red when excited) complain about this camera deficiency.

So I had to do several adjustments of ISO and exposure to get colors to come out.

Interesting Patterns

Interesting patterns show when multiple shadows are cast. I did this with my fingers but was unable to capture an image. Third hand needed.

Inspired by a book that shows starfields in 3D by using a red and green lens to trick the brain into seeing in 3D, I colored some numbers. The hypothesis is that numbers in a color closely matching the red, green and blue light would cause that color (and number) to disappear. One limitation to using this approach was a realization that color pencils might not accurately match the color hue. 

In white light, all numbers show.


In Red light, numbers with any sort of red seem to fade or disappear.





In blue light, numbers with a blue component seems to fade or disappear.





In green light, the colors of the colored pencils must not have closely matched the hue of green in the LED light. Though the number 6 seems to fade quite a bit as it was a green color. I thought 8 might have faded more but it must have hues of red and blue in the color.

Because of my background in analog layout and design, I became interested in how information can be hidden in images and complex geometric patterns. The science is called steganography. I embedded a simple message in these three geometric patterns. It’s hidden as a 8% cyan screen.

Hello is barely visible without any filters. Placing a red filter in front of your eyes will show the letters clearly. Hello is placed in this image with 8% cyan screen.

The more complex patterns lend themselves well to hiding “Hello” in this image. Again, the letters are barely visible as an 8% cyan screen but placing a red filter in front of your eyes will show the text.


Even simple geometric patterns can hide the text effectively. Hello is printed in an 8% cyan screen. Using a red filter in front of your eye shows the text plainly.

While exploring and experimenting how shadows cast by separate red, green and blue lights could convey information I started experimenting with various colors and patterns, I became interested in seeing if I could hide simple information within geometric patterns. Can you see the text? If you view it through a red lens, it becomes apparent.

This exploration is a bit of a tangent from my experiments mainly because I got interested in what’s called steganography – hiding images within images.

Here are some resources that I have found

These experiments are using complex geometric patterns.

Results on screen:

Viewing the patterns with a red filter show the text clearly.


My hypothesis is that shining red light on the screen will produce no effect. Text will not be visible.


No change. Text is not visible. Probably due to backlit nature of screens. Since the blue text only shows because reflected light is negated.

Results printed:

Viewing the patterns with red filter shows the text clearly.


Shining red light on the printed paper will show the text.


While slightly out of focus, it is interesting that taking a picture through a colored lens produces a flat red field obliterating all geometric lines.. Looking through the lens with the naked eye clearly shows the message on the computer screen.

Printing the geometric pattern did result in the text showing similarly to viewing the pattern through red filters on the computer screen.


Week 4: November 25, 2019

Research vs Making (https://www.terrazoom.com/atlas/research-vs-making/)

After reading Thomas Kuhn’s Structure of Scientific Revolutions in the 80s, I am hesitant to even use the word paradigm as a means of describing something new. Evolution was a new paradigm in biology. Copernicus broke the astronomical paradigm of an earth-centered universe. 

But I’ve been thinking alot about something Clement mentioned the other day about the need to make more and sooner. I think the real hangup is in the word research. This had really affected my thinking this week. Making implies a creative act; bringing something to life. Questions to explore will occur along the way which is really just research. You see a problem, you explore the problem, you theorize ways to solve the problem, you test the problem and adjust based on your theory and the results. That is research at its core but I think most designers, including myself, see research as a purely intellectual pursuit. It’s alien because makers use their hands to create. Artists and designers do this as well. I think we (designers/creators) see research as something that’s in our head. We don’t see the mathematical scrawls of a theoretical astrophysicist as a creative process which really is absurd.

Scientists are telling stories. Artists are telling stories. The paths may be slightly different but ultimately are very similar.

Week 5 Explorations: Dec 1, 2019

How should we concentrate efforts for next three weeks.
hook up basic setup
program basic functionality
add complexity
  • take pictures all the time
  • hook up arduino to neopixel ring
  • basic programming to show color
  • 3d print base/top/ring
  • Add on/off switch
  • add way to add/subtract points
  • programming to track points
  • add point counter to electronics
  • add some animation to lights
  • add battery to power separately
  • encapsulate
  • create circuit diagrams…and add to document
  • recall something that surprised you while you were exploring your material
  • Why was it surprising?
  • how can you make use of this surprise?
  • How can you support more surprise?
  • List the properties of the materials
  • come up with ideas for your material that connects more than one property
    • (looking at material in more elegant more holistic way)
  • List all things that the material is bad at
  • how can you twist all the bad properteis into something useful/interesting
  • consider context
Resources for final project
Week 6 Explorations: December 1, 2019
  • Basic setup of board and neopixels to test connectivity. Full ring lit up.

  • Got ring hooked up after some issues.
  • Added an on/off switch which will be in final setup to turn the puck on and off to save battery.
  • Battery just connects and it charges when connected to usb power.
  • Wrote a sort of flame-like light show for it based on another sketch that I scraped together.
  • Started with entire rig hooked up with neopixel ring and works
  • Tried to add capactive touch but problems.
  • Problems with capacitive touch continues from 12/1/2019. Forums suggest that it’s not possible. But after some playing around I got captouch to work on pins 2,14.
  • 14 may be problematic. This is the pin I had attached to the neopixel ring and it was working. I don’t want to change.
  • Testing pins 2,12 – WORKS! [pic]
  • getting values 1 to 550
  • Connected foil panel to resistor…works [pic]
  • Next need to test to see if it works behind puck side
  • WORKS…values between 6 and 61.
  • hooked up ring again with on and off switch. Code is set to show green pixels if val1 > 20. else red values.
  • this is not ideal but preliminary works (video). Ring turns green but not with the puck top in the way. May have to make more sensitive. But otherwise…a good effort.
  • With Clement’s help, laser cut the acrylic ring. This will look nice.
  • Systematically tested the pinouts to see what worked with the neopixel ring and which pins worked as capacitive touch sensors. Given the difficulties I was having settling on the cap touch sensors, this will be good information [include findings in documentation]
  • finished pinout testing
  • Settled on green for healthy, yellow for good, orange for ok, and red for hurting
  • Considering adding/subtracting hitpoints again. I had thought it would be neat to tap in points from the bottom and subtract from the top using captouch sensing. One idea was to let user tap in hitpoints from the bottom and then have the puck wait 5 seconds or so, and then set that number as the working hitpoint total. But…what if a player took a potion and needed to add hitpoints. I would need to add again. Well, that’s not necessarily true. Still need a way to set the upper hitpoint value so I can track the percentage of HP’s lost. So this still makes sense.
The scenario…
  • User turns puck on.
  • taps in hitpoints from the bottom. After a five second lull in adding hitpoints, the hitpoints are set at that number. If that is incorrect, user would have to turn off puck to reset.
  • During play…user taps top to subtract points
  • Other options explored
  1. using 1 finger tap to subtract points
  2. using multifinger tap to add points
  3. using left side of top to subtract points and right side to add points. This subtracts from the appeal of no orientation to the puck. It just sits on the table without thought to direction
  • Decided…going with 1 finger/multifinger tap



  • oof…reading a discreet tap is not straightforward. I ran into situation where I check for the resistance value every millisecond but I if I code average > 30 && average < 60, then hp++, every millisecond that it is between those values will add a hp. That’s not what I want. I need to register the percentage difference between one value compared with another. So if it jumps from 0 to 30…it will register…I guess I need to find the percent change between values. It will note a huge increase in change. Will have to be on the increase not the decrease change.


  • needs to constantly compare latest 2 values.
  • Clement gave me some code that debounces value. Also smoothed the data to try and counter the sensitivity of the sensor.
  • exploring whether two and three finger is better than one and two finger. Having an issue where there is a decrement when the hand moves close to the sensor. It’s detecting which is good, but it doesn’t. Perhaps this is part of debouncing.
  • Result…not very satisfying. Three finger tap was too tough.


  • calibration may be a problem. After leaving the project for a little while and resaving, beginning values went up substantially. Turning it off/on seems to reset it
  • new values
    • low: 42
    • high: 93


  • Check value in smooth function for val1. I don’t think it’s taking
  • strategy for hpMax timer. when a hit sensed, a timer starts, if it is hit again, timer is reset. Otherwise, after five seconds the maxHP will be set.
  • strategy for calibration. I was thinking that really we need values not only from the background noise but also when someone presses with two or three fingers. We need the whole range. A user could let the unit sit for five seconds, or count to five, then touch the top with three fingers for five seconds. This would give the calibrator an entire range from the noisy bottom to the high tops. Then the unit could be set. and it could normalized that way.


  • Interesting that when large foil square is used, the values are pretty high with just noise. When smaller circle used, it becomes much more predictable.
  • Noticed this first with copper tape. I was considering placing copper tape on “TOP” of the unit. Just to get a reliably good connection
  • smoothing function working good.
  • increasing debounce settings. debounce of 500 good but finger lingering still causes HP to decrease. Needs to see just the tap
  • threshold increased to 28
  • ** decreasing range that sees a tap from 35-75 to 55-75 45-75
  • worry about consistency after unit is reset
  • had challenge with numbers when trying to get percentage of hitpoints. I had int(val). This, it turns out, returns a whole number. I changed to double(val) and this worked.


  • Problems with soldering.
  • Soldering ring and microprocessor went well but while adding it to the case, I found that the I had connected the wrong, larger, battery. Upon removing everything, a solder broke. And then they all broke.
  • Demo is in jeopardy. It seems I do not have a solder wick and the solder sucker I have is not working. Spent 4 hours trying to clean the board and the neopixel ring.
  • Unsuccessful.
  • I cannot tell if the ring or the board are damaged. The board seems to have power and I can load a sketch but the moment I connect the board to ground, connection is lost. There must still be a short somewhere among the terminals.


  • I still cannot get the device to work.
  • There appears to be a glob of solder on the USB lede. This is probably shorting out the board.
  • Demo will be carried out with a video of the puck working.


  • Using a solder wick, I carefully remove excess solder from USB lede
  • Systematically soak up solder from the entire board
  • Turn attention to removing solder from the neopixel ring.
  • Board runs as expected even when wires are connected to ground
  • Neopixel ring at first lights all but 9 LEDs. But after removing more solder (that I cannot even see) the ring starts to work as expected.
  • No damage to ring or board.
  • Reconnect to prior spec and all seems to work.
  • Solder wires to board. Soldering wires to the LED ring remains problematic. The ring appears to be very sensitive to soldering and refuses to work.
  • After removing solder again, I decide to contact wire the ring.
  • Insert smaller battery in the bottom of the puck and carefully insert board, neopixel ring and route wires along grooves in the puck. Seems to be working as expected


  • Setback.
  • While testing and showing it off, the slider switch gets pushed too far inside the puck.
  • After repositioning switch and reassembling, the puck works intermittently.