GithubHelp home page GithubHelp logo

marcmerlin / animatedgifs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marcfork/animatedgifs

66.0 66.0 12.0 173.18 MB

Animated GIFs on Teensy, ESP8266, ESP32 on top of FastLED::NeoMatrix, SmartMatrix::GFX, and SmartMatrix, using Sdcard, SPIFFS, and FatFS (FFAT)

License: MIT License

C++ 34.73% C 50.05% Shell 0.21% Makefile 0.49% HTML 11.01% CSS 3.50%

animatedgifs's People

Contributors

embedded-creations avatar jasoncoon avatar marcmerlin avatar rorosaurus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

animatedgifs's Issues

[Goodies: new animated gifs]

If you don't mind, i would add the one or the other self made animated gif 64 x 64 px over time using this "issue", starting with these two...

FloppyFlash
5 1/4" Floppy Disk > morphing into 3 1/2" Floppy Disk > morphing into SD Card

BatterieG
Empty Battery > Power Sign > Battery 25% green > Battery 50% green > 75% > 100 % > Power Sign disappears

...as kind of "THANK YOU" for this repo, which saved me some hours lifetime 💯

Merry Christmas everyone!

P.S. If there is acertain place to "drop" new or additional gifs, please let me know

=====================
EDIT reason: New gifs

Network-wireless
Wireless Network Signal strength: 100% > 75% > 50% > 25% > 0% >>>

weather-day
Weather Indicators Day:
• with Sun - Clear > few Clouds > Clouds > scattered Showers > Showers > Snow > Storm
• no Sun - Mist > Many Clouds > Snow Rain > Hail > Severe Alert

weather-night
Weather Indicators Night:
• with Moon - Clear > few Clouds > Clouds > scattered Showers > Showers > Snow > Storm
• no Moon - Mist > Many Clouds > Snow Rain > Hail > Severe Alert

Fat FS mount failed. Not enough RAM?

Hello Marc
I have Animatedgifs working on raspberry pi using the default 4MB with FFAT(1.2mb APP/1.5mb FAT) I am using Lorol/arduino-esp32fs-plugin to upload the gifs.

I am now trying to get No OTA 1mbAPP/3MB fats to work on raspberry pi and get the following output..

Memory after setup() starts
Heap/32-bit Memory Available : 349432 bytes total, 122256 bytes largest free block
8-bit/malloc/DMA Memory Available: 286632 bytes total, 122256 bytes largest free block
Total PSRAM used: 0 bytes total, 4194252 PSRAM bytes free
After matrixleds malloc
Heap/32-bit Memory Available : 349432 bytes total, 122256 bytes largest free block
8-bit/malloc/DMA Memory Available: 286632 bytes total, 122256 bytes largest free block
Total PSRAM used: 12288 bytes total, 4181948 PSRAM bytes free
Neomatrix 16 pin via RMT/I2S 16 way parallel output, total LEDs: 4096
Before matrix->begin
Heap/32-bit Memory Available : 346372 bytes total, 122256 bytes largest free block
8-bit/malloc/DMA Memory Available: 283572 bytes total, 122256 bytes largest free block
Total PSRAM used: 12288 bytes total, 4181948 PSRAM bytes free
Framebuffer_GFX::begin Width: 64 Height: 64 Num Pixels: 4096
Setting Brightness: 128
Gamma Correction: 2.40
matrix_setup done
Matrix->show() Speed Test fps: 125
Fat FS mount failed. Not enough RAM?

I then edit noota_3gffat.csv as below with ffat, data, fat, 0x111000,0x2F0000,
and #ffat, data, fat, 0x111000,0x2EF000,

nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x100000,
ffat, data, fat, 0x110000,0x2F0000,

to create/use ffat, see https://github.com/marcmerlin/esp32_fatfsimage

#ffat, data, fat, 0x111000,0x2F0000,
#ffat, data, fat, 0x111000,0x2EF000,

and still get ...Fat FS mount failed. Not enough RAM?
Perhaps you can point me in the right direction thanks Dave

Pretty new to this! why no output pin defined?

Hey Marc,

just trying out different things with my 16x32 RGB and ESP32.
With other libraries I had to define my output pin for example Fast LED library.
I have tried with your library to let some simple GIF play but do not know how to configure the code so that the display know from which PIN data comes to the RGB. Maybe I am missing something?

Best regards,
Yannick

Trying to get this to run with ws2812b strip and esp32

Hi,

I'm currently trying to get this to run with an 12x12 ws2812b strip matrix, an esp32 with an SdCard Modul. Everytime I try to get this run I get this error message:

In file included from C:\Users\FabE2\Documents\Arduino\libraries\SmartMatrix3\src/SmartMatrix3.h:175:0,

             from sketch\animatedgif_config.h:38,

             from sketch\FilenameFunctions.cpp:8:

C:\Users\FabE2\Documents\Arduino\libraries\SmartMatrix3\src/SmartMatrix_Impl.h:26:24: fatal error: DMAChannel.h: No such file or directory

compilation terminated.

exit status 1
Error compiling for board ESP32 Dev Module.

I already tried to code out the Smartmatrix implementation, but then I start to get into deeper Code errors. Maybe I made some mistakes, which I didn't see, so I tried to add the missing DMAChannel.h and kinetis.h files, then it warns me that SmartMatrix3 isn't compatible with esp32:

exit status 1
no matching function for call to 'SmartMatrix3<24, 64, 96, 0u, 0u>::begin(int&)'

The error code is way to long, I can attach it if needed. I understand that the Smartmatrix3 library isn't compatible with the esp32, that's why I tried to code it out in the first place. So what did made wrong and what do I need to do to get the code working the esp32?

How to build the project.

Dear Marc,

Hope this message finds you well. I am not sure how to build the SimpleGifAnimViewer example for ESP32. It says
image

Is it possible for you to provide the relevant libraries in one folder instead of links. I have been trying to find libraries that are referenced many times that might be installed on your system but not on mine so my project doesn't build.

Any help is appreciated. I hope I can animate this thing (also confused whether I should choose M16BY16T4 or ESP32 or both as #define:
20220120_194616

Off-by-one error in getGIFFilenameByIndex

This error is why the last alphabetically gif is always index 0, then after that the filename indexes descend as expected.

I'm not sure if this affects the other targets, but I'll put out a quick PR for ESP32.

Fat FS mount failed. Not enough RAM?

Hello,

after I added the Gif files on the SPIFF and uploaded everything my Matrix is shining bright but displaying no animated GIFS.
I updated neomatrix config.h and animatedgif_config.h
I get this output in the serial monitor.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Serial.begin 18:22:35.343 -> Memory after setup() starts 18:22:35.343 -> Heap/32-bit Memory Available : 355660 bytes total, 123248 bytes largest free block 18:22:35.343 -> 8-bit/malloc/DMA Memory Available: 287564 bytes total, 123248 bytes largest free block 18:22:35.343 -> After matrixleds malloc 18:22:35.343 -> Heap/32-bit Memory Available : 359100 bytes total, 123248 bytes largest free block 18:22:35.378 -> 8-bit/malloc/DMA Memory Available: 286012 bytes total, 123248 bytes largest free block 18:22:35.378 -> Neomatrix total LEDs: 512 running on pin: 15 18:22:35.378 -> Before matrix->begin 18:22:35.378 -> Heap/32-bit Memory Available : 356700 bytes total, 123248 bytes largest free block 18:22:35.378 -> 8-bit/malloc/DMA Memory Available: 283612 bytes total, 123248 bytes largest free block 18:22:35.378 -> Framebuffer_GFX::begin Width: 16 Height: 16 Num Pixels: 256 18:22:35.411 -> Setting Brightness: 64 18:22:35.411 -> Gamma Correction: 1.00 18:22:35.411 -> matrix_setup done 18:22:35.484 -> Matrix->show() Speed Test fps: 64 18:22:35.484 -> Fat FS mount failed. Not enough RAM?
I could not find anything on the error "Fat FS mount failed. Not enough RAM?" Do you know whats going wrong?
Thank you.

SDcard

Hi Marc,
I want to run the ESP8266 with the SD card so I can play gifs, how to setup and what are the pins to connect to the esp8266.
I know you can use the onboard memory but still not enough, also if I try to upload with (SPIFFS) I get SPIFFS Create Failed!
I would preferer to run them on SD card.
help would be appreciate.
Thanks

"'FFat' was not declared in this scope" in SimpleGifAnimViewer

Hey Marc,

First, thanks for all your work on this, it's super cool what kind of projects it's enabled.

Second, sorry if this is a dumb/simple issue, I'm pretty new to this side of programming.

So my intention is to hookup a 4 x 4 array of 8x8 WS2812B led matrices, but for now I'm just working with one to test all the hardware/software. I'm working on an Arduino Mega R3 (maybe a different board would be better?).

I uncommented the #define M24BY24 line in neomatrix_config.h, seemed like the closest match for now just to get something running.

Here's the error I'm getting on compile:

In file included from C:\Users\JJ\Documents\Arduino\AnimatedGIFs-master\SimpleGifAnimViewer\neomatrix_config.h:130:0,
                 from C:\Users\JJ\Documents\Arduino\AnimatedGIFs-master\SimpleGifAnimViewer\SimpleGifAnimViewer.ino:2:
C:\Users\JJ\Documents\Arduino\libraries\FastLED\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
 #    pragma message "FastLED version 3.004.000"
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\JJ\Documents\Arduino\AnimatedGIFs-master\SimpleGifAnimViewer\SimpleGifAnimViewer.ino: In function 'void setup()':
SimpleGifAnimViewer:89:9: error: 'FFat' was not declared in this scope
  file = FFat.open(pathname);
         ^~~~
exit status 1
'FFat' was not declared in this scope

Thanks for any help/advice you can provide.

60 x 120px Doesnt Display on M64BY64

Re M64BY64 I,m using a ws2812b matrix 60 leds wide x 15 leds high and cannot get anymore than 64 leds high to show up, I see a similar issue being discussed here although using rgb panels...
#11
here is my setup..

#elif defined(M64BY64) // 64x64 straight connection (no matrices)
#include <FastLED_NeoMatrix.h>
#define FASTLED_NEOMATRIX

const uint16_t MATRIX_TILE_WIDTH = 60; // width of EACH NEOPIXEL MATRIX (not total display)
const uint16_t MATRIX_TILE_HEIGHT= 120; // height of each matrix
const uint8_t MATRIX_TILE_H     = 1;  // number of matrices arranged horizontally
const uint8_t MATRIX_TILE_V     = 1;  // number of matrices arranged vertically
#define NUM_STRIPS 5                    //go to line 763// NUM_STRIPS pins////////////////////////////////////////////////////////////
#define NUM_LEDS_PER_STRIP 900  //rio, no more than 900 leds per pin or it fails
//#define NUM_LEDS_PER_STRIP 256
// Used by NeoMatrix
const uint16_t mw = MATRIX_TILE_WIDTH *  MATRIX_TILE_H;
const uint16_t mh = MATRIX_TILE_HEIGHT * MATRIX_TILE_V;

CRGB *matrixleds;
#ifdef LEDMATRIX
// cLEDMatrix defines
cLEDMatrix<MATRIX_TILE_WIDTH, MATRIX_TILE_HEIGHT, VERTICAL_ZIGZAG_MATRIX> ledmatrix(false);
#endif
FastLED_NeoMatrix *matrix = new FastLED_NeoMatrix(matrixleds, MATRIX_TILE_WIDTH, MATRIX_TILE_HEIGHT,
    NEO_MATRIX_TOP + NEO_MATRIX_LEFT +    //rio
    NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG);
    //NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG );

//=======================================================================
#elif defined(M64BY64) // 64x64 straight connection (no matrices)
// https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples
FastLED.addLeds<WS2812B,23, GRB>(matrixleds, 0NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B,22, GRB>(matrixleds, 1
NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B,27, GRB>(matrixleds, 2NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B,21, GRB>(matrixleds, 3
NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
FastLED.addLeds<WS2812B,19, GRB>(matrixleds, 4NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
// FastLED.addLeds<WS2812B,18, GRB>(matrixleds, 5
NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);

So just to be clear pins 23,22,27,21, correctly display figures 1,2,3,4 in the 60w x 120h gif below but pin 19 displays only the top 4 pixel lines on the figure 5, perhaps I need to alter the code somewhere other than neomatrix_config.h ??

60x120a

any help much appreciated

ESP32FFat Failed

i try upload image but failed

first in the arduino IDE iam choose ESP32 Dev module board with partition schemee No OTA 1MB APP/ 3MG FFATS

this is output of ffats.ino
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
Partition list:
partition addr: 0x010000; size: 0x100000; label: app0
partition addr: 0x009000; size: 0x005000; label: nvs
partition addr: 0x00e000; size: 0x002000; label: otadata
partition addr: 0x110000; size: 0x2f0000; label: ffat

Trying to mount ffat partition if present
[E][FFat.cpp:60] begin(): Mounting FFat partition failed! Error: -1
FFat Mount Failed

build a image
./fatfsimage -l5 img.ffat 3008 gifs64/

C:\Users\haris\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools>python esptool.py --chip esp32 --port COM3 --baud 921600 write_flash 0x111000 img.ffat
esptool.py v2.8-dev
Serial port COM3
Connecting........__
Chip is ESP32D0WDQ6 (revision 0)
Features: WiFi, BT, Dual Core, Coding Scheme None
Crystal is 40MHz
MAC: 24:0a:c4:03:6e:28
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB

A fatal error occurred: File img.ffat (length 3080192) at offset 1118208 will not fit in 4194304 bytes of flash. Use --flash-size argument, or change flashing address.

Animation stalls when looping gif with >32 colors

Hello, thanks for this incredible library! It's saved me tons of work and is very impressive!
My setup is an ESP32 directly wired to a 128x64 1/32 HUB75E panel. I quickly realized after diving into these libraries that feeding this panel is going to be a challenge.

Fortunately with my early tests, supplying a 128x64px gif with only 16 colors appears to be fairly smooth, with only a few frames stuttering per minute. I suspected this wouldn't remain the case if I added more colors to the gif, and that seems to be the case. Here is a test with 64 colors:

Curiously, the animation plays smoothly, it's only at the loop (frame 12 -> frame 1) that it stalls. This leads me to think it could be related to allocating memory (which based on the forum posts I read seems like the big issue with these larger panels). Do you happen to know if we re-allocate that memory when restarting the gif, and is that necessary?

Support for Teensy 3.2

Do you support playing gifs through a Teensy 3.2 without a SD card? I was looking through the config file and only found the Teensy 3.5/6.

Great library anyway!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.