The Starscape app is used to control a collection of light panels manufactured by Starscape Star Ceilings. The app uses Bluetooth to connect to two controlling modules, the Shooting Star or the Quasar, and modify their properties.
Role: Programming Intern
Team: 1 Developer
Timeframe: 12 weeks
Engine: .NET Maui (C#, XAML)
I worked on this project as part of my Internship with Starscape Star Ceilings. The aim of this project is to have an mobile app that could replace the functionality of a physical remote for the light sources. I Created the app using .Net Maui, usilising the BLE Plugin to connect to Bluetooth devices. I also worked with Arduinos to take the Bluetooth signal and convert it to a usable DMX signal that the lights can use.
The first task I completed was planning out the functionality. I created a UML diagram and wireframes that encompassed all required functionality. After this was agreed on by the manager, I began drafting out the screen layouts in XAML. User experience was of key importance to the company, so they put a lot of time into refining the screen layouts. Once the screens were in place, I began working on the backend functionality. I usalised Plugin.BLE for the Bluetooth functionality. This allowed me to scan and connect to any devices with a specified name (a list of prefixes for each device). A device could be selected and when its properties are changes, a signal is sent out and received by the control module, either a Shooting Star or Quasar.
The Shooting Star was pre-existing when I began working on the project. It uses a Arduino ESP32 to run a timer and flash a LED strip at a random interval. This needed updating to be customisable with the app. I first wrote some C++ code on the ESP32 that allows it to be connected to and receive signals over Bluetooth. Once it could successfully connect, I randomly generated a name, based in a type identifier (a three digit combination for what it will control) and a four digit random number - 0000 to 9999. The identifier determines the signal that the app will send it, to differentiate from a Quasar. The next stage was receiving the data.
The Quasar was an entirely new creation during my time working on the project. It also uses an ESP32 and the same Bluetooth functionality. The difference was what it did with the data it receives. Once the Quasar reveived a signalsignal, the ESP32 converted this to a DMX signal and transmitted it to the connected light source, either through an XLR or RJ45 port. This controlled the properties of the lights. There were a number of different