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


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

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

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

PWM, ADC, I2C, Serial outputs (black female header under the display)

1 / 4 • PWM, ADC, I2C, Serial outputs (black female header under the display)

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

1 / 14 • 1

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

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

Placing image data in code imagedata.cpp

Each image/frame of 200 x 200 pixels is converted to hex data and copied to arduino IDE for flashing in the xmc1100 mcu.

Updating the header file imagedata.h is also required.

Updating imagedata.h header file

Updating imagedata.h header file

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 !

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

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...
Read more »