Cymaspace Audiolux Opensource code
The Audiolux device is a product developed by Portland-based company CymaSpace that visualizes music or other performing arts on LED strips, enabling the deaf and hard of hearing to participate in these events. The Audiolux device is a pre-existing product, so the goal of this project is to make improvements such as adding user configurable modes, increasing the number of visualization patterns on the LEDs, making configuration wireless, and improving accuracy of pitch detection.
Please check out our Wiki for more user info and documentation.
Dev environment:
- To get step-by-step instructions select one of the following link accordingly to your operating system.
Windows (http://docs.arduino.cc/software/ide-v1/tutorials/Windows)
Mac OS (http://docs.arduino.cc/software/ide-v1/tutorials/macOS)
Linux (http://docs.arduino.cc/software/ide-v1/tutorials/Linux)
We have bundled all of the manually required libraries into a single libraries/
folder on the dependencies
branch. That way, you don’t have to install each one by hand. See the next section if you want/need to manually install them.
-
Clone (or fetch) the repo and switch to
dependencies
:git clone https://github.com/OPEnSLab-OSU/Nanolux.git cd Nanolux git fetch origin git checkout dependencies
-
Locate the
libraries/
folder at the root of this branch. It contains:- ESPAsyncWebServer (v1.2.3)
- AsyncTCP (v1.1.4)
- AudioPrism
- All other custom or manually‑required libraries as seen in the next section
-
Copy (or symlink) that
libraries/
folder into your Arduino sketchbook’s “libraries” directory.- On Windows, your sketchbook is usually:
C:\Users\<YourUserName>\Documents\Arduino\libraries
- On macOS/Linux, it’s typically:
~/Arduino/libraries
For example:
# if your sketchbook is ~/Arduino cp -r libraries ~/Arduino/
Once that’s done, Arduino IDE will automatically pick up those libraries the next time you open it.
- On Windows, your sketchbook is usually:
-
Switch back to
main
(if you want to compile/upload the main firmware):git checkout main
Because your
main/
folder references those libraries by name, Arduino can now find them.
You will also need several libraries. See the IDE Setup Guide Wiki Page for steps on how to install these libraries.
- Ai ESP32 Rotary Encoder (1.6)
- ArduinoJson (7.1.0)
- FastLED (3.7.0)
- fast4ier (1.0.0)
- ESP32 Board Library (2.0.17)
All dependencies above are installable through the Library Manager of the Arduino IDE, or with the Arduino CLI tool.
The following dependencies must be installed manually. Refer to Wiki for more info.
- ESPAsynWebServer (1.2.3): https://github.com/me-no-dev/ESPAsyncWebServer
- AsyncTCP (1.1.4): https://github.com/me-no-dev/AsyncTCP
- AudioPrism: https://github.com/udellc/AudioPrism
You will need to install the ESP32 board driver for developing on this board.
- Install ESP32 Board: https://www.hackster.io/abdularbi17/how-to-install-esp32-board-in-arduino-ide-1cd571 You will also need to check the port connection with ESP32 Board.
- Serial Connection with ESP32: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/establish-serial-connection.html
Use the “ESP32” package by Espressif Systems at version 2.0.16. In Arduino IDE, open Tools → Board → Boards Manager, search for “esp32,” and install or roll back to esp32 by Espressif Systems v2.0.16. This version is required to compile FastLED 3.7.0 without errors.
Once the device is set up correctly, it can be powered on using its micro USB and fed audio through the 3.5mm audio jack. To configure the device, either use the rotary encoder to cycle through patterns and modes or use the AudioLux web app (ensure the web application is deployed by following these steps in the Wiki: The Web App). Once deployed by the device, the web app can be connected to by opening your device's Wifi settings and selecting the AudioLux Wifi (AudioluxUnsecured
) that is hosted by the AudioLux device, and then opening the web app by going to http://192.168.4.1/
if the device has not been configured before or http://audiolux.local
if the device has been configured. Once connected, the AudioLux device can be configured freely using all of the web app's functionality and/or the device's rotary encoder.
-
The most up to date stable release is located in the Main directory. This is the code that should be uploaded to the device. Make sure to follow the Web App Wiki to upload the code needed to run the Web App.
-
If you wish to disable the webapp, you can comment out the flag "ENABLE_WEB_SERVER". Make note to which analog ports are being used, disabling the webapp however should not give a boost in performance, given that the webapp is asynch and on a seperate core.
2021-2022 Team:
John Zontos (zontosj@oregonstate.edu)
Evan Cochran (cochraev@oregonstate.edu)
Longjie Guan (guanl@oregonstate.edu)
Ming Wei (weimi@oregonstate.edu)
2022-2023 Team:
Andrew Gingerich (gingeria@oregonstate.edu)
Luke Goldsworthy (goldswol@oregonstate.edu)
Mac Handley (handlem@oregonstate.edu)
Vishnu Kalidas (kalidasv@oregonstate.edu)
Jorden Mortenson (mortejor@oregonstate.edu)
David Mora (morad@oregonstate.edu)
2023-2024 Team:
Andrew Adisoemarta (adisoema@oregonstate.edu)
Anshul Batish (batisha@oregonstate.edu)
Caleb Shilling (shillinc@oregonstate.edu)
Can Yang (yangca@oregonstate.edu)
Scout Hawkey (hawkeys@oregonstate.edu)
2024-2025 Team:
Andrew Craeton (craetona@oregonstate.edu)
Theodore Ngo (ngoth@oregonstate.edu)
Matthew Manuguid (manuguim@oregonstate.edu)
Nicholas Wooldridge (wooldrni@oregonstate.edu)