Search

Animated E-paper Badge

Made by Shahariar Hossain

About the project

An animated e-paper display badge for Hacksters.

Project info

Difficulty:

Categories:

Estimated time:

6 hours

Published:

28th January 2019

Items used in this project


Hardware components

SparkFun Capacitor Kit x 2
Genuino Uno Rev3 x 2
Polymer Lithium Ion Battery - 1000mAh x 1
HDMI 7 800x480 Display Backpack - With Touchscreen x 1
Jumper Wire Kit x 1

Software app and online services

Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic) x 1

Story


Intro

E-paper displays are fantastic for visual art but not fast enough for video or animation. Yet, I wanted to animate something in black and white canvas in slow motion. So, I made this badge!

Video Demonstration

Animated real-time speed!

Hardware: Initial Build

To build the hardware, two pieces of 2cmx8cm protoboards are glued side by side. Next, the XMC2Go board, LiPo battery, and 1.54-inch e-paper display are placed on the top of the protoboards.

XMC2go (XMC1100 MCU board), paper display and battery

Inter-connections are made according to the schematic (below) and soldered with soldering iron.

Soldering and interconnection on backside

Hardware Updated

Following updates are made later to the badge :-

  • LiPo battery is placed under the display
  • ADC sense (voltage divider) 5 user push switches installed
  • Buzzer added for melody playback option with jumper to PWM pin
  • I/O pins (ADC 1, PWM, I2C, Serial & Gnd) are routed for further development

Programming

To program the system in Arduino IDE, the 2Go kit's board support must be added. This is done by following these steps:

Adding 2Go kit support on Arduino IDE

  • Now go to Tools > Board Manager > type "xmc" in search box and download board support files

Install board files for version 1.1.0

  • Next, Install Segger Link for communication between kit and IDE from here:

https://www.segger.com/downloads/jlink/JLink_Windows_beta.exe

  • Then, go to tools and set

Board: XMC1100XMC2Go

Serial Output Selection: On-board

Port: Port 4 (select whichever new port appears after plugging kit to usb )

Artistic Images

Following images are printed one after another to create the illusion!

Scroll to right faster to see the effect of animation.

1 / 141

Image to Code Conversion

Monochromatic Bitmap images of 200 x 200 pixels are converted to code with Image2Lcd program according to following settings.

Image 2 LCD

These settings are critical, any deviation from these settings (marked in red polygon) might corrupt/mirror/rotate image output.

Placing image data in code imagedata.cpp

Technical Info

  • The XMC2Go kit (XMC1100 mcu) has 16k RAM and 64k Flash for code.
  • Each image frame (200 x 200 pixel) require about 4k Flash
  • For the E-Paper display's memory buffer, 8k RAM is allocated
  • Maximum 13 Frames can be stored inside program memory
  • Power consumption during display update is 7.6 - 9.1 mA and during deep sleep 1.8 - 2.4 mA

RAM and FLASH Limit !

References

2Go Kit Modification for power source selection and LiPo Charging :- https://www.infineon.com/dgdl/Board_Users_Manual_XMC_2Go_Kit_with_XMC1100_R1.0.pdf

Power Selection between USB and LiPo

Badge Capabilities : Build Something That Matters

The badge says " Build Something That Matters " It's not just a badge. It will be used to make another project. The badge has following capabilities :

  • Low Power Display Project
  • Midi Playback
  • I2C/ADC/Serial/PWM Breakout for add-on board support
  • 5 User button for Game Development and Menu Scrolling
  • USB Charging for LiPo Battery

Calligraphy on E-Paper

I was wondering, how cool it would be to do some calligraphy on large touch e-paper, something like this :

Darkness of Heart

Schematics


wiring

wiring for xmc1100 mcu, e-paper display

pinout

pin mapping between xmc2go and e-paper display

Code


Full Code

IDE ver 1.8.15.0 XMC Board ver 1.1.0

Full Code

IO Test

PWM ADC SLEEP I2C UART GPIO Numericals

IO Test

Animated EPD Badge

main c

ADC, PWM, Sleep, RTC, RAM test code

Optional code for ADC, PWM, RTC, Sleep etc for development purpose

ADC, PWM, Sleep, RTC, RAM test code

Mario melody play on buzzer

https://www.hackster.io/jrance/super-mario-theme-song-w-piezo-buzzer-and-arduino-1cc2e4

Mario melody play on buzzer

Leave your feedback...