Using Your RGB Dice Lamp

Now for sale on Etsy!

https://www.etsy.com/listing/1134612821/rgb-dice-lamp?

Thank you for your interest in the RGB dice lamp! The dice lamp contains a 3D printed base with custom electronics to drive 5 LEDs to animate your dice lamp.

It is simple to use with only 2 buttons, menu and select, and a 5V power input. It is based on Arduino code making customizing it to your liking a breeze.

Some useful accessories are an extension cable: https://www.sparkfun.com/products/11707

Or an line switch: https://www.sparkfun.com/products/11705

To change settings on your dice lamp use the instructions or see the chart below:

The dice lamp is operated using two buttons: menu (M) and setting (S).  

Use the two buttons to choose speed of animation, brightness, animation mode (and static color if desired)

  1. Animation Running and Choose Speed
    1. Use S to change the speed of the animation
    2. There are 10 speed levels.  If speed is at a maximum, press again to loop to the slowest option.
    3. Press M to confirm speed and to move into Brightness Selection
  2. Brightness Selection
    1. Use S to change the brightness; the 5 LEDs show different colors to show the currently selected brightness
    2. There are 10 brightness levels.  If brightness is at maximum, press again to loop back to the lowest setting
    3. Press M to confirm brightness and move into choose an Animation Mode
  3. Choose Animation Mode
    1. Use S to scroll through 5 options; a single LED lights up to show your currently selected animation
      1. Disco ball- rotating rainbow colors
      2. Rainbow race- A single color races around and changes color each revolution
      3. Rainbow fade- fades seamlessly between colors
      4. Fade in/out- fades in and out of brightness choosing a new color each time
      5. Static color- holds a static color, color chose in the static color menu
    2. When you have selected your animation mode, select M to confirm animation and move into Static Color Selection
  4. Static Color Selection
    1. If you selected STATIC COLOR as your animation mode, use the S button to choose your color; LED 2 changes and matches the currently selected color
    2. Select M to confirm color and move into the Stop Animation/Save menu
  5. Stop Animation/Save
    1. In the stop menu no LEDs are lit up.  This can be used to turn off the lamp without unplugging it.  
    2. Also, when going into this menu the settings are saved for when the light is unplugged.  Remember to do this after you change speed or any other settings to save them.  
Menu Flow Diagram

In case it wasn’t clear in the instructions, when entering the stop mode your settings will save in event of uplugging or other power loss. Because speed is a setting that changes outside of the normal menus it doesn’t automatically save, remember scroll through the menus to enter and leave the stop menu to save your speed setting.

Enjoy!

Still Here? Want to do more?

If you want to modify your dice lamp code to your liking, you’ll find under the bottom plate an Arduino Uno compatible board with a populated FTDI header. You’ll need an FTDI programmer to convert from your USB to the serial the Arduino wants, try this one: https://amzn.to/2YpxhtA. Do not have the FTDI and the 5V supply plugged in at the same time as the 5V lines are tied together, only one at a time!

After that you’ll want the starting code to modify, it is available here:

The LEDs are HD107S which are functionally similar to the APA102 or DOTSTAR LEDs. Information on using them can be found here: https://learn.adafruit.com/adafruit-dotstar-leds

I used the DOTSTAR library to communicate with the LEDs, but if you notice I’m also using the WS2812 library, which is the older style NEOPIXEL. The lamp used to be based on NEOPIXELs so I still used some of the things that library provides, I think mainly the color definitions. If you want to really dig into it and have good LED control I recommend checking out the FASTLED library located here: http://fastled.io/

Electrical Schematic is located here: