Start of Lightbox Project


One of the required projects in the Robotics Curriculum is The Lightbox Project, because it is required I had to do this before continuing to work on the Float Project. The lightbox is a project where LEDs controlled by some external variable illuminate a piece of etched acrylic.

My Design Outline

The basic outline for the design of my lightbox is a cylinder with 6 indents where pieces of acrylic are placed with logos for different stocks on them, the logos will then be illuminated with different intensities of green or red depending on the percentage change of yesterday’s price to the current price.

Current Progress (as of 11/30/2022)

I started the project by working on the software. I did this because I wanted to make sure that my goals were achievable and the software is by far the most complicated part of my project.

I wrote code in MicroPython that first connects to the shop’s WIFI network, then takes data from the API Yahoo Finance’s web client connects to,^IXIC&range=1d&interval=5m&indicators=close with ^IXIC replaced with the desired stock symbol. I found this API by using the inspect menu’s network tab on the Yahoo Finance Website.

Once I have the data I do a basic calculation to find the percent change of the current price from yesterday’s price. I then use a conversion factor that will be specified in a configuration menu to decide on how bright the LEDs will be. The larger the change the brighter the lights. I have gotten this code working on a breadboard with two NeoPixel Sticks.

Code running with two NeoPixel Sticks showing data from NASDAQ and Dow Jones

I have started the very first steps in making a custom PCB for the project, and will likely have a finished model by next week.

Features That May Get Added

I haven not yet committed to these features, but if I think that I can spare the time I will implement them.

Web Interface Configuration

To get the project to the point where it could theoretically we sold as a consumer product I will need to make it configurable without editing the code. The best solution to this that I have thought of is having it open it’s own network with a captive portal that has a settings page when it cannot connect to any of the networks already configured into it or when the configuration button is pressed. This page would have settings like how bright the lights should be (by editing the previously mention conversion factor), the SSIDs and passwords to networks it can connect to, and what stock symbol is wanted in each slot.

Magnetically Attaching Pieces of Acrylic

I want my lightbox to have a premium and professional feel, to achieve this I want to have the pieces of acrylic with stock logos on them snap into place magnetically.

PDF Version