element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum Tools (or tricks) to develop graphics/animations for OLED displays (single-color 128x64 or 64x64 style)?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 21 replies
  • Subscribers 490 subscribers
  • Views 11998 views
  • Users 0 members are here
  • oled
  • i2c
  • display
Related

Tools (or tricks) to develop graphics/animations for OLED displays (single-color 128x64 or 64x64 style)?

baldengineer
baldengineer over 3 years ago

image

I'm working on a project that is using one of those I2C OLEDs with 128x64 pixels.

I'd like to jazz it up with some simple graphics and maybe even 2-3 frames of animation. Very simple stuff like a Hershey's kiss-shaped blob of pixels that falls "down" the screen.

As I think about drawing the graphics, all that comes to mind is some graph paper and lots of shading.

Does anyone have other tools they have used or know of that could help to create these graphics (and bonus if they generate arrays in C!)

(For now this specific project, I'm writing code for an ESP32 using the Arduino library.)

Edit

I do not need any more tools to convert bitmaps into C-Arrays. I'm up to a dozen now.

But thank you for the suggestions!

  • Sign in to reply
  • Cancel

Top Replies

  • BigG
    BigG over 3 years ago +4
    I use the Inkscape export function (set to 96 dpi) to create the graphic (png format) and then the LVGL online tool to convert: https://lvgl.io/tools/imageconverter .
  • rsc
    rsc over 3 years ago +4
    Here's a tool I wrote for 96 x 96 OLEDs on HexiWear boards https://www.hackster.io/r-scott-coppersmith/hexiwear-oled-bitmap-tool-938ed1 https://github.com/CapperLabs/HexiWearOLEDbitmapTool Scott
  • robogary
    robogary over 3 years ago +3
    found this but hadnt tried it. https://www.mischianti.org/images-to-byte-array-online-converter-cpp-arduino/ https://manytools.org/hacker-tools/image-to-byte-array/ the trick is to search for the needed…
  • wolfgangfriedrich
    0 wolfgangfriedrich over 3 years ago

    I was successfully using "The Dot factory" tool to create C include files for fonts and graphics.

    http://www.eran.io/the-dot-factory-an-lcd-font-and-image-generator/

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • wolfgangfriedrich
    0 wolfgangfriedrich over 3 years ago

    Just an idea: you could use the everything-tool Excel. 

    Enter a number in a field and have a bunch of conditional formatting to set a representative background colour to make the design more visual. With the numbers it should be not too hard to generate hex values of the pixel matrix to import;copy-paste into a c-file. 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • BigG
    0 BigG over 3 years ago

    I use the Inkscape export function (set to 96 dpi) to create the graphic (png format) and then the LVGL online tool to convert: https://lvgl.io/tools/imageconverter.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rsc
    0 rsc over 3 years ago

    Here's a tool I wrote for 96 x 96 OLEDs on HexiWear boards

    https://www.hackster.io/r-scott-coppersmith/hexiwear-oled-bitmap-tool-938ed1

    https://github.com/CapperLabs/HexiWearOLEDbitmapTool

    Scott

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • saadtiwana_int
    0 saadtiwana_int over 3 years ago

    baldengineer  I'm a bit late to the party. Probably you have found some tools that works for you by now. However, I just want to point you to one tool that I have found very useful in my embedded projects in the recent years. It's called LVGL (LVGL - Light and Versatile Embedded Graphics Library). It's designed for microcontrollers  (Arduino, ESP32 included) and is easy to set up. The quality of embedded UIs you can build with it is very good! I highly recommend having a look. This is not a sponsored comment Slight smile. I have even used this to create UIs on some FPGA (Zynq) projects with very good results.

    The particular bit about gifs can be found here GIF decoder — LVGL documentation

    Hope it helps..!

    -Saad

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • scottiebabe
    0 scottiebabe over 3 years ago

    Not really an answer but a environment I have found helpful at times for testing small code snippets without the actual hardware in front of you.

    image

    https://wokwi.com/projects/346340290067432020 

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • scottiebabe
    0 scottiebabe over 3 years ago in reply to scottiebabe

    This Arduino stuff is pretty cool!

    image

      for(;;) { // Loop forever...
        display.clearDisplay(); // Clear the display buffer
    
        // Draw each snowflake:
        for(f=0; f< NUMFLAKES; f++) {
          display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, SSD1306_WHITE);
        }
    
        display.display(); // Show the display buffer on the screen
        delay(200);        // Pause for 1/10 second
    
        // Then update coordinates of each flake...
        ...

    https://wokwi.com/projects/344892392214626898 

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • scottiebabe
    0 scottiebabe over 3 years ago in reply to BigG

    BigG! That is soo cool!

    I uploaded this as 32x32 pixel png:

    image

    I requested a 1bit alpha:

    image

    And it just worked!

    image

    https://wokwi.com/projects/350400426373284435 

    Very neat!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • BigG
    0 BigG over 3 years ago in reply to scottiebabe

    You're welcome. Nice animation and a cool way to share projects using wokwi.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • dang74
    0 dang74 over 3 years ago in reply to wolfgangfriedrich

    I never thought of this approach.  But I just might try it out.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube