Introduction: FIRE EFFECT ON M5STICKC WATCH

About: PLC, Arduino - Do it yourself project

I had done some funny cartoon animated effects on M5StickC watch for my kid. During doing this, I had an idea to make a special watch which show all time digits by animated effects.

And I spent my free time to search on internet some beautiful GIF animated images, resized, splitted them into individual images and then converted to HEX codes for programming.

Finally, I selected the "fire burning font" to apply for my M5StickC watch. Actually, it took long time to convert all numbers and letters on the watch screen into animated effects but its result made me & my kid excited.

Before getting started, please check my video below.

Step 1: THINGS USED IN THIS PROJECT

Hardware components

  • M5StickC ESP32 PICO Mini IoT Development Board Finger Computer with Color LCD With accessories. My M5StickC is equipped with watch-base and watch-belt and it can be worn on my wrist.

https://www.digitspace.com/m5stickc-esp32-pico-min...

  • USB Type-C programming cable.

Software apps, library and documentation

Step 2: HOW IT WORKS

My watch is programmed in 4 working modes by pressing Home Button of M5StickC. In all modes, letters and numbers are displayed in fire burning effect font.

  • Mode 1: when the watch startup, it shows “FIRE TIME” on the screen.

  • Mode 2: The watch shows HOUR : MINUTE : SECOND.

  • Mode 3: The watch shows WEEKDAY and DATE.

  • Mode 4: The watch shows MONTH and YEAR.

Step 3: HOW TO CREATE THE ANIMATION FONT

Firstly, we should tried to find a full set of animation fonts which you like. I chose a “fire burning” font as below example because we only need to combine 3 images to create a beautiful effect for each letter and number. We can also save and reserve the M5Stack's memory space for other purposes.

Example: separated pictures for letter "A" from fire burning font.

In case the GIFs images need to be editted, we can use GIF editor tool - EZGIF - which is a simple online GIF maker and toolset for basic animated GIF editing. Here you can create, resize, crop, split, reverse, optimize, and apply some effects to GIFs. I mainly used the "resize" and "split" functions to create pictures size 40x40 that can fits two rows and four columns on 0.96 inch TFT color screen (80 x160 resolution) of the M5StickC.

For every number & upper case letter, after converting all GIFs to separated pictures size 40x40, we can use the following apps to convert them to HEX codes:

I used LCD Image Converter for this project because it can convert multiple pictures at the same time. In this case, it helped us saving a lot of time because there’re many images that need to be converted to HEX codes.

For example, the HEX code for first image of letter "A" is as below:

/*******************************************************************************
* generated by lcd-image-converter rev.129188f from 2019-07-09 00:20:51 +0500
* image
* filename: unsaved
* name: Fire_A_0
*
* preset name: Color R5G6B5
* data block size: 8 bit(s), uint8_t
* RLE compression enabled: no
* conversion type: Color, not_used not_used
* split to rows: yes
* bits per pixel: 16
*
* preprocess:
*  main scan direction: top_to_bottom
*  line scan direction: forward
*  inverse: no
*******************************************************************************/

/*
 typedef struct {
     const uint8_t *data;
     uint16_t width;
     uint16_t height;
     uint8_t dataSize;
     } tImage;
*/
#include <stdint.h>



static const uint8_t Fire_A_0[3200] = {
    // ████████████████████████████████████████
    // ███████████████▓▓██▓▒▓██████████████████
    // ████████████▓▓▓▓▓█▓▒▒▒██████████████████
    // ████████████▓▓▓▓▓▓▓▒▒▒▓█████████████████
    // ████████████▓▓▓▓▓▓▓▓▓▓▓▓████████████████
    // ████████████▓▓▓▓▓▓▓▓▓▓▓▓▓████▓██████████
    // ███████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓███▓▒██████████
    // ██████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██▓▒▓█████████
    // ███████▓█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██▓▓▓█████████
    // ███████▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓████████
    // ███████▓▓▓▓▓▓▓▒▒▒▓█▓█▓▓▓▓▓▓▓▓▓▓▓████████
    // ███████▓▓▓▓▓▓▓▒▒▓█▒▒▓█▓▓▓▓▓▓▓▓▓▓████████
    // ██████▓▓▓▓▓▓▓▒▒▒██▓▒▒██▓▓▓▓▓▓▓▓▓████████
    // █████▓▓▓▓▓▓▓▓▒▒▓█▓▓▒▒▒█▓▓▓▓▓▓▓▓▓████████
    // █████▓▓▓▓▓▓▓▒▒▒█▓▓▓▒▒▒▒█▓▓▓▓▒▓▓▓▓███████
    // █████▓▓▓▓▓▒▒▒▒██▒▓▓▒▒▒▒█▓▒▒▒▒▒▓▓▓███████
    // █████▓▓▓▓▒▒▒▒▒█▓▓▓▒▒▒▒░▒█▓▒▒▒▒▓▓▓███████
    // █████▓▓▓▒▒▒▒▒██▓▓▒▒▒▒░░▒▒█▒▒▒▒▒▓▓███████
    // ██████▓▓▒▒▒▒▒▓▓▓▓▒▒▒▒░░▒▒▓▓▒▒▒▒▓▓███████
    // ████▓▓▓▓▒▒▒▒█▓▓▒▒▒▒░░░░▒▒▒█▒▒▒▒▓▓███████
    // ████▓▓▓▒▒▒▒██▒▒▒▒▒░░░░░▒▒▓▓█▒▒▒▒▓▓██████
    // ████▓▓▓▒▒▒▒█▒▒▒▒▒░░░░░░▒▒▓▓██▒▒▒▓▓██████
    // ████▓▓▒▒▒▒▓▓▒▒▒▒░░░▒░░░░▒▓▓▓█▒▒▒▓▓██████
    // ████▓▓▒▒▒██▒▒▒░░░░░█▒░░░▒▓▓▓██▒▒▓▓██████
    // ████▓▓▒▒▒█▓▒▒░░░░▒██▓░░░░▒▓▓▒██▓▓▓██████
    // ████▓▓▓▒██▒░░░░░░░███▒░░░▒▒▒▒▒█▓▓███████
    // ████▓▓▓▓█▒░░░░░░░████▒░░░░▒▒▒▒██▓███████
    // █████▓▓█▓░░░░░░░░█░░█░░░░░░▒▒▒▒▓████████
    // ████████▒░░░░░░░░░░░░░░░░░░░░▒▒▒████████
    // ███████░░∙∙∙∙░░░∙░░░░░░░░░░░░░░░████████
    // ███████░∙∙░∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙░░░░░▒███████
    // ██████▒∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙░░∙∙░∙░∙░░░░██████
    // █████▓░∙∙∙∙∙∙∙░░▒▒▒▒░██░▒∙∙∙∙∙░░∙░▓█████
    // █████▒∙∙∙∙∙∙∙░███████████░∙∙∙∙∙∙∙░▓█████
    // █████▓░░∙∙∙∙░█████████████░∙∙∙∙∙░▒██████
    // ███████▒░░∙∙░█████████████▒∙∙∙░▒████████
    // █████████░░░░██████████████░░░▒█████████
    // ███████████▒▓██████████████▒▒███████████
    // ████████████████████████████████████████
    // ████████████████████████████████████████
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x72, 0xd5, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xcd, 0x54, 0xdb, 0x2b, 0xcd, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xb3, 0xdd, 0xf4, 0xd5, 0x94, 0xf4, 0xcb, 0xf4, 0xcc, 0xff, 0xff, 0xd5, 0xd6, 0xd3, 0x8c, 0xda, 0x47, 0xd3, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x91, 0xed, 0x2f, 0xed, 0x2f, 0xfd, 0x6c, 0xfd, 0x6b, 0xf5, 0x0d, 0xec, 0xee, 0xe3, 0x89, 0xe3, 0x28, 0xe3, 0x89, 0xdc, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x0b, 0xfd, 0x6c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xfd, 0x0b, 0xf4, 0x49, 0xfc, 0xea, 0xfc, 0xea, 0xf4, 0xab, 0xe5, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xf4, 0xcb, 0xd5, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0d, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xec, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x31, 0xe3, 0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x72, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xf4, 0xcb, 0xdd, 0x93, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x49, 0xe3, 0x89, 0xcd, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x38, 0xff, 0xff, 0xec, 0xcf, 0xf5, 0x4c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xf4, 0x8a, 0xf4, 0x8a, 0xf4, 0xca, 0xf4, 0xcb, 0xfd, 0x2b, 0xfd, 0x6c, 0xfd, 0x6c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xf5, 0x0d, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0d, 0xf4, 0x8a, 0xe3, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x31, 0xdd, 0x93, 0xec, 0xed, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xf4, 0x8a, 0xeb, 0xc9, 0xeb, 0x89, 0xeb, 0x89, 0xec, 0x8c, 0xdd, 0x93, 0xd6, 0x17, 0xdd, 0xf4, 0xfd, 0x6c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xf5, 0x4c, 0xe5, 0x31, 0xe5, 0x31, 0xf5, 0x0d, 0xfd, 0x0b, 0xec, 0x8c, 0xd5, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0d, 0xf5, 0x2e, 0xf5, 0x2c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfc, 0xeb, 0xeb, 0xc9, 0xe2, 0xa7, 0xd9, 0xa5, 0xda, 0xc9, 0xcd, 0x75, 0xff, 0xff, 0xcc, 0x4f, 0xff, 0xff, 0xdd, 0xd3, 0xf5, 0x4c, 0xfd, 0x6c, 0xfd, 0x6b, 0xfd, 0x6b, 0xf5, 0x2e, 0xed, 0x70, 0xfd, 0x6b, 0xfd, 0x2b, 0xf4, 0xab, 0xec, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0d, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xf4, 0xca, 0xeb, 0xc9, 0xe1, 0xe5, 0xe1, 0x85, 0xdc, 0x2d, 0xff, 0xff, 0xe3, 0xaa, 0xe3, 0x28, 0xd4, 0x90, 0xff, 0xff, 0xed, 0x70, 0xfd, 0x2b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xfd, 0x6b, 0xfd, 0x2b, 0xfd, 0x2b, 0xf4, 0x6a, 0xf4, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x0d, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xf4, 0x8a, 0xeb, 0x68, 0xe1, 0xe5, 0xda, 0x26, 0xff, 0xff, 0xff, 0xff, 0xec, 0x0b, 0xe3, 0x28, 0xd2, 0x47, 0xff, 0xff, 0xff, 0xff, 0xed, 0x0d, 0xfd, 0x2b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xf4, 0xca, 0xf4, 0x8a, 0xf4, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xb4, 0xf5, 0x2c, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x6b, 0xfd, 0x2b, 0xf4, 0x6a, 0xe2, 0xe7, 0xd9, 0xe6, 0xd4, 0x70, 0xff, 0xff, 0xe4, 0x2c, 0xf3, 0xe9, 0xeb, 0x89, 0xd2, 0x47, 0xda, 0xea, 0xff, 0xff, 0xec, 0xcf, 0xf4, 0xcb, 0xfd, 0x2b, 0xfd, 0x2b, 0xfd, 0x2b, 0xfc, 0xea, 0xf4, 0x6a, 0xf4, 0x8a, 0xf4, 0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x10, 0xfd, 0x6b, 0xfd, 0x2b, 0xfd, 0x2b, 0xfd, 0x0b, 0xf4, 0x8a, 0xf4, 0x6a, 0xe3, 0x48, 0xda, 0x05, 0xeb, 0x68, 0xff, 0xff, 0xdc, 0xf1, 0xec, 0x0a, 0xeb, 0xc9, 0xe3, 0x07, 0xda, 0x66, 0xd9, 0xe6, 0xdb, 0x4b, 0xff, 0xff, 0xf4, 0xab, 0xeb, 0xc9, 0xf4, 0x49, 0xf4, 0x29, 0xeb, 0x89, 0xeb, 0xc9, 0xf4, 0x8a, 0xf5, 0x2c, 0xf5, 0x0d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x2f, 0xfd, 0x6b, 0xfc, 0xeb, 0xf4, 0x8a, 0xf4, 0x29, 0xeb, 0x68, 0xe2, 0xe7, 0xda, 0x66, 0xda, 0x27, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xaa, 0xf4, 0x29, 0xeb, 0xc9, 0xe3, 0x48, 0xda, 0x66, 0xd9, 0x64, 0xda, 0xc8, 0xff, 0xff, 0xd5, 0x94, 0xdb, 0x29, 0xe2, 0xa7, 0xda, 0x66, 0xe2, 0xa7, 0xe3, 0x48, 0xf4, 0x6a, 0xfd, 0x2b, 0xfd, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0x93, 0xfd, 0x6b, 0xf4, 0xca, 0xeb, 0xc9, 0xe2, 0xa7, 0xda, 0x26, 0xd9, 0x65, 0xd9, 0xa5, 0xdb, 0xcd, 0xff, 0xff, 0xe4, 0xaf, 0xf4, 0x8a, 0xf4, 0x6a, 0xeb, 0x89, 0xe3, 0x28, 0xda, 0x66, 0xe1, 0x85, 0xc1, 0x03, 0xbb, 0x8d, 0xff, 0xff, 0xe3, 0xec, 0xd9, 0xa5, 0xd9, 0x64, 0xd9, 0xe6, 0xe2, 0xa7, 0xf4, 0x29, 0xfd, 0x2b, 0xfd, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xb3, 0xfd, 0x2b, 0xf4, 0xca, 0xeb, 0x89, 0xda, 0x26, 0xd9, 0x64, 0xd9, 0x64, 0xda, 0xea, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xc9, 0xf4, 0x6a, 0xeb, 0x89, 0xeb, 0x89, 0xe3, 0x28, 0xda, 0x66, 0xc1, 0x03, 0xc1, 0x03, 0xc1, 0xc7, 0xcb, 0xce, 0xff, 0xff, 0xdb, 0x2b, 0xd9, 0x64, 0xd9, 0x64, 0xd9, 0xc5, 0xe3, 0x28, 0xf4, 0xca, 0xfd, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xea, 0xf4, 0x8a, 0xe3, 0x28, 0xd9, 0xa5, 0xd9, 0x65, 0xd9, 0xe6, 0xe3, 0xac, 0xd5, 0xd6, 0xdc, 0x2d, 0xf4, 0x29, 0xf4, 0x29, 0xe3, 0x28, 0xe2, 0xe7, 0xda, 0xa7, 0xd9, 0xc5, 0xb8, 0xe3, 0xc1, 0x03, 0xd9, 0xe6, 0xd3, 0x2a, 0xcd, 0x96, 0xdc, 0x4f, 0xe2, 0x46, 0xd9, 0x64, 0xd9, 0xa5, 0xe2, 0xa7, 0xf4, 0x29, 0xfd, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xd6, 0xdd, 0xf4, 0xf4, 0x8a, 0xf4, 0x29, 0xe2, 0xe7, 0xd9, 0xa5, 0xd9, 0x65, 0xd9, 0xe6, 0xff, 0xff, 0xe4, 0x2c, 0xeb, 0xc9, 0xeb, 0x89, 0xeb, 0x68, 0xda, 0xa7, 0xda, 0x66, 0xb9, 0x44, 0xb0, 0xc3, 0xb0, 0xa2, 0xb9, 0x44, 0xda, 0x86, 0xda, 0xc7, 0xbb, 0xae, 0xff, 0xff, 0xe2, 0x46, 0xd9, 0xa5, 0xd9, 0x64, 0xd9, 0xe6, 0xeb, 0xc9, 0xfc, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xcf, 0xf5, 0x2c, 0xf4, 0x6a, 0xeb, 0x88, 0xd9, 0xc5, 0xd9, 0x64, 0xda, 0x27, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x8a, 0xe3, 0x28, 0xda, 0xa7, 0xda, 0xa7, 0xd1, 0xa5, 0xd1, 0x44, 0xb0, 0xc2, 0xc1, 0x03, 0xa0, 0xa2, 0xa8, 0xc2, 0xd2, 0x05, 0xeb, 0x68, 0xec, 0x4b, 0xdc, 0x4f, 0xff, 0xff, 0xda, 0xc9, 0xd9, 0x64, 0xd9, 0xa5, 0xe3, 0x48, 0xf4, 0xca, 0xe5, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x6a, 0xfc, 0xeb, 0xeb, 0xc9, 0xe2, 0xe7, 0xd9, 0xa5, 0xd9, 0xa5, 0xdb, 0x8b, 0xff, 0xff, 0xd3, 0x2a, 0xe3, 0x07, 0xda, 0xc7, 0xda, 0x86, 0xc9, 0xc5, 0xb0, 0xc2, 0xa0, 0xa2, 0xa9, 0x44, 0xa8, 0xc2, 0xa0, 0xa2, 0xb8, 0xe3, 0xda, 0x26, 0xe3, 0x07, 0xec, 0x0a, 0xf4, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xe5, 0xd9, 0xc5, 0xeb, 0x68, 0xf4, 0x6a, 0xe5, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x6a, 0xf4, 0x8a, 0xe3, 0x48, 0xd9, 0xe6, 0xd9, 0x64, 0xe2, 0xa7, 0xd5, 0xb5, 0xd4, 0xd2, 0xdb, 0x29, 0xda, 0x66, 0xc9, 0xc5, 0xd1, 0xa5, 0xb0, 0xa2, 0xb0, 0xc3, 0xa9, 0xa6, 0xbb, 0xef, 0xa8, 0xc3, 0xa8, 0xa2, 0xb0, 0xc3, 0xc1, 0x64, 0xda, 0xc7, 0xf4, 0x29, 0xfc, 0xea, 0xf4, 0xcc, 0xff, 0xff, 0xdb, 0xcd, 0xd9, 0xc5, 0xe3, 0x07, 0xf4, 0xca, 0xe5, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x8a, 0xf4, 0x29, 0xe3, 0x48, 0xd9, 0xe6, 0xd9, 0x64, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xad, 0xda, 0x26, 0xda, 0x66, 0xb1, 0x03, 0xb0, 0xc2, 0xa0, 0xa2, 0xa8, 0xa2, 0xa9, 0xc7, 0xff, 0xff, 0xc1, 0xc5, 0xa8, 0xa2, 0xb0, 0xc3, 0xc1, 0x24, 0xda, 0x66, 0xf4, 0x29, 0xf4, 0xcb, 0xf4, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xca, 0xeb, 0x89, 0xfc, 0xeb, 0xe5, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xeb, 0xf4, 0xca, 0xe3, 0x48, 0xd9, 0xe6, 0xdb, 0x6c, 0xff, 0xff, 0xd4, 0x90, 0xd2, 0x47, 0xd9, 0xa5, 0xc1, 0x03, 0xa8, 0xc3, 0xa0, 0xa2, 0xa0, 0xa2, 0xc1, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x91, 0xa8, 0xc3, 0xa0, 0xa2, 0xb0, 0xa2, 0xd1, 0x44, 0xda, 0xc7, 0xeb, 0xc9, 0xf4, 0x8a, 0xcb, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xec, 0x0a, 0xf4, 0xca, 0xe5, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xca, 0xfc, 0xeb, 0xf4, 0x29, 0xe3, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xd2, 0x47, 0xd1, 0x44, 0xc1, 0x03, 0xa0, 0xa2, 0xa8, 0xa2, 0xa8, 0xa2, 0xa8, 0xc3, 0xb9, 0x84, 0xff, 0xff, 0xd6, 0x59, 0xff, 0xff, 0xb2, 0x8a, 0xa0, 0xa2, 0xa8, 0xa2, 0xb1, 0x03, 0xd2, 0x26, 0xe3, 0x07, 0xeb, 0x68, 0xe3, 0x89, 0xd3, 0xed, 0xff, 0xff, 0xe5, 0x31, 0xf4, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x2f, 0xfc, 0xea, 0xf4, 0xab, 0xdc, 0xf1, 0xff, 0xff, 0xc3, 0x2c, 0xb9, 0x04, 0xa8, 0xa2, 0xa0, 0xa2, 0xa8, 0xa2, 0xa8, 0xa2, 0xa0, 0xa2, 0xb9, 0x44, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x0f, 0xb0, 0xc3, 0xa8, 0xa2, 0xc1, 0x03, 0xb0, 0xc3, 0xd2, 0x26, 0xda, 0xc7, 0xe3, 0x28, 0xda, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x91, 0xf5, 0x2e, 0xff, 0xff, 0xc4, 0x71, 0xb1, 0x85, 0xb8, 0xe3, 0xa0, 0xa2, 0xa8, 0xa2, 0xa0, 0xa2, 0xa8, 0xa2, 0xa0, 0xa2, 0xb0, 0xc3, 0xff, 0xff, 0xc9, 0x24, 0xb0, 0xc3, 0xff, 0xff, 0xb1, 0x03, 0xb1, 0x03, 0xa0, 0xa2, 0xa0, 0xa2, 0xa8, 0xc2, 0xb9, 0x23, 0xd1, 0xc5, 0xda, 0x66, 0xda, 0xa7, 0xcb, 0x8b, 0xd5, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x28, 0x88, 0x41, 0x98, 0x81, 0x98, 0x61, 0xa8, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa8, 0xc2, 0xb0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa8, 0xc2, 0xb0, 0xc3, 0xb0, 0xa2, 0xb9, 0x04, 0xd1, 0xa5, 0xd2, 0x48, 0xdb, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xc7, 0x90, 0x82, 0x78, 0x00, 0x80, 0x20, 0x78, 0x00, 0x80, 0x20, 0x98, 0x61, 0x88, 0x20, 0x98, 0x61, 0x80, 0x20, 0x90, 0x61, 0x88, 0x20, 0x98, 0x61, 0x88, 0x41, 0x98, 0x61, 0x90, 0x61, 0x90, 0x61, 0x98, 0x61, 0x88, 0x20, 0xa0, 0xa2, 0xa0, 0xa2, 0xa8, 0xa2, 0xc9, 0x24, 0xb8, 0xe3, 0xb1, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xa6, 0x78, 0x00, 0x78, 0x00, 0x90, 0x61, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x80, 0x20, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x80, 0x20, 0x88, 0x41, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xa0, 0xa2, 0xc2, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0x8e, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x90, 0x61, 0x98, 0x61, 0x80, 0x20, 0x80, 0x20, 0x88, 0x20, 0x78, 0x00, 0x90, 0x61, 0x80, 0x20, 0x98, 0x61, 0xa0, 0xa2, 0xb0, 0xc3, 0xb1, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0x30, 0x89, 0x04, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x80, 0x20, 0x91, 0x65, 0x99, 0xc7, 0xa2, 0x48, 0xa2, 0x48, 0xa2, 0x48, 0xa2, 0xeb, 0x80, 0x82, 0xff, 0xff, 0xff, 0xff, 0xa8, 0xc3, 0xb2, 0xeb, 0x78, 0x41, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x88, 0x41, 0x90, 0x61, 0x80, 0x20, 0x91, 0x45, 0xcc, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x2c, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x99, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xc7, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x80, 0x20, 0x78, 0x00, 0x78, 0x00, 0x80, 0x41, 0xc4, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xd2, 0x99, 0xc7, 0x80, 0x41, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x88, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x82, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x80, 0x20, 0x91, 0x86, 0xb4, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x30, 0x91, 0x86, 0x80, 0x41, 0x78, 0x00, 0x78, 0x00, 0x91, 0x65, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x2c, 0x78, 0x41, 0x78, 0x00, 0x80, 0x20, 0x88, 0xa2, 0xb2, 0x48, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xa6, 0x91, 0x45, 0x90, 0x82, 0xa9, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0x08, 0x80, 0x82, 0xa9, 0x44, 0xc4, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xeb, 0xc4, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0x30, 0xab, 0x2c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};

Step 4: PROGRAMMING

The project code is available at my GitHub.

Before starting programming, you need to refer to the official M5Stick library at: https://github.com/m5stack/M5StickC/

NOTES:

  • Fire burning font includes numbers 0 ~ 9, upper case letter A ~ Z and time separated dots as follows.
#include "FireCharacter.c"
#include "FireNumber.c" 
#include "Dot.c"
  • To minimize the flicker and keep animation in smooth transition on the screen, I used TFT_eSprite class and it is declared as follow:
TFT_eSprite Disbuff = TFT_eSprite(&M5.Lcd);
  • Month and weekday are shown in letters
// Month Fire Character Array
char monthName[12][3] = {
  {'J', 'A', 'N'}, {'F', 'E', 'B'}, {'M', 'A', 'R'}, {'A', 'P', 'R'}, {'M', 'A', 'Y'}, {'J', 'U', 'N'},
  {'J', 'U', 'L'}, {'A', 'U', 'G'}, {'S', 'E', 'P'}, {'O', 'C', 'T'}, {'N', 'O', 'V'}, {'D', 'E', 'C'},
};

// Weekday Fire Character Array
char weekdayName[7][3] = {
  {'M', 'O', 'N'}, {'T', 'U', 'E'}, {'W', 'E', 'D'}, {'T', 'H', 'U'}, {'F', 'R', 'I'}, {'S', 'A', 'T'}, {'S', 'U', 'N'},
};
  • This subroutine below is used for showing the upper case letter in fire effect.
void printFireChar(int32_t x0, int32_t y0, int32_t w, int32_t h, char ch, int32_t current_animation)
  { 
    Disbuff.pushImage(x0, y0, w, h, (uint16_t *)Fire_Character[ch-65][current_animation]);
  }
  • The M5StickC watch works with 4 display modes based on HOME BUTTON as bellow commands. We can play with delay(time) function to select the best value for animation effect. In my case, it is 75.
if ( (unsigned long) (millis() - samplingtime) > 50  )
  {
    buttonState = digitalRead(M5_BUTTON_HOME); 
    if (buttonState != lastButtonState) 
    {
      if (buttonState == LOW) {
        buttonPushCounter++;
      }
      else {  }
    }
    lastButtonState = buttonState; 
    switch (buttonPushCounter % 4) 
    {
    case 0:
        /*
         * "FIRE TIME" on the startup screen
         */ 
          for (int current_animation = 0; current_animation < 3; current_animation++)
          { 
            printFireChar(0, 0, 40, 40, 'F', current_animation);
            printFireChar(40, 0, 40, 40, 'I', current_animation);
            printFireChar(80, 0, 40, 40, 'R', current_animation);
            printFireChar(120, 0, 40, 40, 'E', current_animation);   
            
            printFireChar(0, 40, 40, 40, 'T', current_animation);
            printFireChar(40, 40, 40, 40, 'I', current_animation);
            printFireChar(80, 40, 40, 40, 'M', current_animation);
            printFireChar(120, 40, 40, 40, 'E', current_animation);
                
            Disbuff.pushSprite(0, 0, 0);
            delay(75);
            
            // If BUTTON_HOME is pressed
            if (buttonState == LOW)
            {
              Disbuff.fillSprite(WHITE);
              Disbuff.pushSprite(0, 0, 0);
              break;
            }
          }
      break;
    case 1:
        /*
         * Hour : Minute : Second - Number Animations
         */ 
      break;
    case 2:
      /*
       * Weekday & Date Animations
       */  
    case 3:
      /*
       * Month & Year Animations
       */ 
    break;       
    }
  samplingtime = millis();
  }

Step 5: SOME PICTURES AND VIDEOS

During programming for this watch, I also recorded some draft versions as videos below:

  • Version 1:

  • Version 2:

Thank for your watching! Hope you like my post this time.

Please LIKE and SUBSCRIBE to my YouTube channel.