Skip to content

Firmware for Arduino

Gavin Jancke edited this page Sep 2, 2020 · 12 revisions

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.

  1. Copy the ExpressivePixelsCore folder to your \Documents\Arduino\libraries folder
  2. Copy your appropriate platform folder (eg: Platform_CircuitPlaygroundBluefruit) to your \Documents\Arduino\libraries folder
  3. You may optionally need any specific Arduino driver libraries installed.
  4. Open or Copy an existing Arduino project as a basis for your hardware implementation, such as Device_Arduino_VSCode_AdafruitCPXBluefruit.
  5. 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.