Welcome fellow dreamers, hackers, and developers!
Aurora is an easy-to-use EEG headband designed for sleep monitoring but capable of so much more. Aurora is here to help scientists, researchers, developers, and hobbyists alike dream up the next generation of BCI and EEG experiments, sleep studies, and home-automation applications. This documentation is mainly geared towards developers looking to get the most out of Aurora, however those looking for general information about how Aurora works or troubleshooting tips will also find this documentation useful.
See a typo or another way this documentation can be improved? Simply click on the "Improve This Page" link in the top right to directly modify the page. Your modification will be submitted for review by an Aurora team member and if approved will automatically be incorporated.
Built for Data
Aurora measures brainwaves (EEG), eye-movement (EOG), heart rate 'pulse' (~EKG), and body movement to inform a powerful embedded machine learning algorithm designed for automatic sleep stage classification. In addition to collecting data from its various sensors (see streams), Aurora is also capable of presenting light and sound stimuli using two multi-color LEDs and a peizo sound buzzer (helpful for lucid dream induction). Data is saved to an onboard SD card and later synced with an Aurora Cloud account using Aurora Mobile or Aurora Desktop. Use of the Aurora App Suite is entirely optional, however they do bring with them many powerful features so we encourage all Aurora users to check them out.
One of the goals when designing Aurora was to support a wide range of use cases. It was also important that Aurora not depend on a smart phone or desktop for essential functionality. To solve these two problems, Aurora exposes a wide array of commands that can be used to configure and control its various features as well as multiple ways of issuing these commands. These methods are described at a high-level below with links to more details.
I. Command Line Interface
When testing commands or making quick adjustments, the CLI provides an easy way to execute arbitrary commands. While connected over USB, any serial port terminal (or Aurora Desktop's command console) can be used to issue commands as well as to receive Aurora Events and real-time data stream output.
II. Profile System
Aurora's Profile System provides a scriptable way to configure how the Aurora behaves after startup. Using a simple syntax, profiles can execute any Aurora command in response to any Aurora event. This powerful feature is what allows Aurora to be controlled without an external device and enables Aurora to remember configuration parmameters across nights of use.
For developers looking for the most control, SDKs are provided to interact with Aurora directly. Execute commands, receive events, and configure profiles without worrying about all the boilerplate and connection logic. Available for iOS, Android, and NodeJS, these are the same SDKs powering the official Aurora apps.