Pixie Chroma
Documentation for the easiest 5x7 LED displays for Arduino!
Pixie Chroma Documentation


Arduino library and documentation for Pixie Chroma displays!
  · · ·   LIBRARY DOCS   · · ·   DATASHEET   · · ·   TUTORIALS   · · ·   OSHW   · · ·  



PIXIE CHROMA is a dual-5x7 character display for Arduino, that can be easily chained to create easy-to-use displays as long or tall as you'd like! Featuring 70 addressable RGB LEDs, Pixie Chroma can be controlled with as little as a single GPIO!

**NOTE: *This repository/library are still under construction, make sure to follow our Twitter for official releases!***

Table of Contents

The Coolest Character Display for Arduino

  • Dual 5x7 RGB LED matrices
  • 3.7V to 5.5V supply
  • Fast bitmap control
  • 8-bit global dimming
  • 27.5mm * 16.5mm matrix size (10.16 ppi)
  • 30mm * 24mm package

Code Demo

Here's a quick peek at how easy it is to use a Pixie display:

#include "Pixie_Chroma.h" // Include library
#define PIXIES_X 6 // Total amount and x x x x x x
#define PIXIES_Y 2 // arrangement of Pixies = x x x x x x
void setup() {
pix.begin( 13, PIXIES_X, PIXIES_Y ); // ... Use Pin 13
pix.color( CRGB::Blue ); // ............... Set color to blue
}
void loop() {
pix.clear(); // ..................... Clear display
pix.println( "Hello World!" ); // ... Write text on first row
pix.print( millis() ); // ........... Write the value of millis() on the second row
pix.show(); // ...................... Show changes
}
This is the software documentation for using Pixie Chroma functions on Arduino! For full example usag...
void color(CRGB col)
Sets the entire color buffer to a CRGB value.
void println(const uint8_t *icon)
Prints an Icon to the displays at the current cursor position, then jumps to the next row in the Pixi...
void begin(const uint8_t data_pin, uint8_t pixies_x, uint8_t pixies_y)
Initializes the display buffer, populates the XY coordinate table, defaults the display colors to gre...
void print(const uint8_t *icon)
Prints an Icon to the displays, at the current cursor position.
void clear()
Clears (blackens) the current mask buffer and resets the cursor to 0,0.
void show()
Processes 1D image data into truncated versions, sending them to the Pixie Chroma displays.

In just 16 lines, you're in control of over 800 LEDs to show any text you'd like!

Pixie Chroma also makes it extremely easy to control advanced animation in the background while other code runs! For example:

#include "Pixie_Chroma.h" // ... Include library
PixieChroma pix; // ............ Get class instance
#define PIXIES_PER_PIN 3 // ... Pixies per data line
#define PIXIES_X 6 // ......... Total amount and x x x x x x
#define PIXIES_Y 2 // ......... arrangement of Pixies = x x x x x x
void setup() {
pix.begin_quad( PIXIES_PER_PIN, PIXIES_X, PIXIES_Y ); // Initialize Pixies to use 4 GPIO in
// parallel, with three Pixies on each line
pix.set_max_power( 5, 500 ); // ............................ Set power budget to 5V, 500mA
// Set the color palette to use for showing our text
make_gradient( // ........... For our palette, we'll generate a gradient from:
CRGB(255, 0, 0 ), // ... RED,
CRGB(0, 255, 0 ), // ... GREEN,
CRGB(255, 0, 0 ) // ... and RED.
)
);
// Set the animation preset to "PALETTE SHIFT RIGHT",
// which will cause our gradient to scroll left-to-right
// Run animation at half-speed
pix.set_animation_speed( 0.5 );
// Sets the library into AUTOMATIC mode, which keeps
// the animation running smoothly in the background
// while the microcontroller runs other functions
}
uint32_t counter = 0; // This is a number to show on the display
void loop() {
pix.clear(); // ............ Clears the display
pix.print( counter ); // ... Prints the value of "counter" to the display
delay(500); // ............. Delay. During this time, animation will continue
// smoothly scrolling our gradient defined in setup()
counter++; // .............. Increment counter
}
void set_animation(void(*action)(PixieChroma *, float))
Accepts a preset or custom function to use for the animation ISR.
void set_animation_speed(float speed)
Used to scale the animation speed of animation ISRs that can use pix.animation_speed() to scale their...
void set_max_power(float volts, uint16_t milliamps)
Sets the maximum power budget in volts and milliamps.
void set_palette(const uint8_t *pal)
Accepts a const uint8_t (8-bit) array to generate a FastLED Gradient Palette at runtime:
void set_update_mode(t_update_mode mode, uint16_t FPS=60)
Allows for automatic show() calls at a specified frames per second if AUTOMATIC is used....
void begin_quad(uint8_t pixies_per_pin, uint8_t pixies_x, uint8_t pixies_y)
Initializes the display buffer, populates the XY coordinate table, defaults the display colors to gre...
CRGBPalette16 make_gradient(CRGB col1, CRGB col2)
Converts a set of CRGB colors to a gradient, and creates a color palette from that gradient.
void ANIMATION_PALETTE_SHIFT_RIGHT(PixieChroma *_p, float delta)
Shows the current color palette, while constantly shifting it to the right.

As you can see, Pixie Chroma is as easy or advanced as you need! Luckily, you don't need to dive into documentation to get started - the included examples (File -> Examples -> Pixie_Chroma) are an easy template to modify for your own projects!