Skip to content

twopoint718/prismatic-spray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prismatic Spray 🌈

License

Designing a handheld RGB widget for light painting. Named after the D&D spell by the same name.

Wizard casting the Prismatic Spray spell A wizard casting the Prismatic Spray spell

Statechart

This statechart gives an overview of the operation of Prismatic Spray:

Statechart diagram

When turned on, the device immediately transitions to the active state. Conceptually, this initial transition can be seen as when the initialization code runs in the StateMachine() constructor.

In the Active state each of the concurrent sub-states for the 4 buttons are initially set to "Led(N)Off". When a button is pressed down, the corresponding LED will illuminate until the button is released. Pressing a button also has the side effect of setting the focused LED. This is the LED for which adjustments of the Hue knob or the Brightness knob will subsequently affect. Only one LED can be focused like this and it will always be the last button pressed. If no buttons have been pressed, it is LED0.

The rotary encoder sets the hue/color of the focused LED in 24 equal steps. These are spaced evenly around the HSL color wheel:

colorwheel

The brightness adjustment uses a potentiometer instead of a rotary encoder like hue. This means that the brightness is set on an absolute scale from off to 100%.

Prototype

Prototype photo

Short video: https://twitter.com/twopoint718/status/1552858497666240512

PCB

PCB Rendering

  • split pcb into two files for main and daughter board
  • measure height of knobs for case lid clearance

Resources/Parts Datasheets

About

Designing a handheld RGB widget for light painting.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages