Draw an animation. Get the exact code for your screen.
Pixel Studio is a free animation maker for the displays makers actually use: OLED, LCD, TFT, e-ink and LED. Start from a ready-made animation or draw your own, then download a header file that runs on Arduino and ESP32.
Open Pixel Studio, free →Runs in your browser · nothing you draw leaves it · zero credits
Every screen above is running the same preset code Pixel Studio exports.
How it works
- Pick your screenThe canvas becomes that exact display: its resolution, its colours, the way its pixels light.
- Start from a preset, or drawLoad one of 16 ready-made animations, or draw frames yourself with text, icons, QR codes and images. Play it back before you export.
- Download the headerOne
.hfile: the frames, their timings, and a small player for your screen's library. Include it in your sketch, switch on the player at the bottom, and flash.
Every kind of screen
Pick the display you have. The export targets the library that screen is normally used with.
| Kind | Displays | Library in the export |
|---|---|---|
| OLED | 0.96″ 128×64 and 0.91″ 128×32 (SSD1306) · 1.3″ 128×64 (SH1106) · 0.66″ 64×48 | Adafruit_SSD1306, Adafruit_SH110X, U8g2 |
| Character LCD | 16×2 and 20×4 with an I2C backpack: the animation plays in a block of the LCD's 8 custom characters | LiquidCrystal_I2C |
| Graphic LCD | Nokia 5110 84×48 · 12864 128×64 (ST7920) | Adafruit_PCD8544, U8g2 |
| Colour TFT | 1.8″ 128×160 (ST7735) · 2.4″/2.8″ 240×320 (ILI9341) · 1.14″ 135×240 T-Display (ST7789) · 1.28″ round 240×240 (GC9A01) · 3.5″ 480×320 shield (ILI9486) | Adafruit_ST7735, Adafruit_ILI9341, TFT_eSPI, Adafruit_GC9A01A, MCUFRIEND_kbv |
| E-ink | 1.54″ 200×200 · 2.9″ 296×128 · 2.13″ 212×104 | GxEPD2 |
| LED | MAX7219 8×8 and 32×8 · WS2812 8×8 matrix, 16-LED ring, 8-LED strip | LedControl, Adafruit_NeoPixel |
16 ready-made animations
Each preset draws itself at your screen's size, so the same animation fits an 8×8 matrix or a 2.8″ TFT. The ones that can't be read at a size are hidden for that screen.
- Bouncing ball
- Loading spinner
- Beating heart
- Blinking eyes
- Starfield
- Progress bar
- Sine wave
- Rain
- Fireworks
- Music equalizer
- Analog clock
- Wi-Fi connecting
- Battery charging
- Diya
- Waving flag
- Scrolling text
Why the bytes are right
There is no AI in this path. What you draw is packed into bytes by the same code every time, pixel for pixel, and the preview is drawn from those same pixels. Each display family wants its data a different way: a horizontal bitmap for OLED and graphic LCDs, 5×8 custom characters for a character LCD, RGB565 for a colour TFT, wire-order colours for a WS2812 ring. Pixel Studio writes whichever one your screen needs, and the player uses millis(), not delay(), so it won't stall the rest of your sketch.
Questions
- Will it fit on an Arduino Uno?
- Small screens, yes. The export panel shows the byte count as you go and warns when a design is too big for an Uno or Nano's 32 KB of flash. Colour TFT animations usually want an ESP32, Mega or RP2040.
- Why are e-ink animations slow?
- An e-ink panel redraws the whole screen for every change, which takes around two seconds. Pixel Studio keeps e-ink animations to a few frames and holds each one for at least three seconds, which suits badges, signs and dashboards.
- How does a 16×2 character LCD show an animation?
- A character LCD can hold 8 custom characters of 5×8 dots. Pixel Studio treats them as one 4×2 block and redraws those 8 characters every frame, so the animation plays in the middle of your screen.
- Does it work on my phone?
- Yes. Design and export work on a phone. Flashing a board needs a computer, and Pixel Studio gives you a QR code to carry your design across.
- Which pins do I use?
- The player at the bottom of the header lists the usual wiring for that screen, with a note on each line to change. Want the wiring and the whole sketch done for you? Describe your build in Soldr.
More detail: the Pixel Studio guide.
Your screen is waiting for something better than Hello World.