Firmware for Arduino - microsoft/ExpressivePixels GitHub Wiki
The Expressive Pixels firmware has been designed so that it can be easily transposed to different microprocessor and toolchain platforms.
Layer | Description |
---|---|
ExpressivePixelsCore | This layers contains the main application logic for connectivity, control & storage so the Expressive Pixels application, and communication protocol compatible software can control the device. |
Minimal | The Minimal implementation contains just the necessary classes to render animations using the binary format that is exported from the Expressive Pixels authoring app. |
ExpressivePixelsPlatform | This layer contains the platform specific implementation of functionality for subsystems the Core layer is built upon, such as storage, Bluetooth, USB, and other hardware interfacing. |
Configuring local project
These are the steps to compile the Expressive Pixels application for Arduino. For ease of authoring, deployment and debugging our examples are standardized around using Visual Studio Code and the Arduino extension, visit our VSCode Wiki page for more information.
- Copy the ExpressivePixelsCore folder to your \Documents\Arduino\libraries folder
- Copy your appropriate platform folder (eg: Platform_CircuitPlaygroundBluefruit) to your \Documents\Arduino\libraries folder
- You may optionally need any specific Arduino driver libraries installed.
- Open or Copy an existing Arduino project as a basis for your hardware implementation, such as Device_Arduino_VSCode_AdafruitCPXBluefruit.
- Modify GPIO pin assignments based on your hardware configuration.
Creating a new Platform implementation
If you'd like to get the Expressive Pixels firmware running on for new microprocessor/toolchain a new Expressive Pixels Platform folder will need to be created and modified. Each of the respective files in this folder will need to be modified accordingly using the platform specific libraries and conventions.