Trouble getting animated gif's working on the m5stick-c-plus #721
Replies: 21 comments 22 replies
-
As you've discovered, that's not s trick this project currently does.
It could be done. We have, probably, 80% of the needed infrastructure.
Maybe more. The rest is a mere matter of programming.
One problem is that throughout the code we conflate Mesmerizer, the
hardware, and Mesmerizer, the collection of effects.
A finer point of that is that we DON'T discriminate USE_HUB_75 and 2D
effects.
While we're splitting these hairs, I'd like the "use Smartmatrix" path to
not be named Mesmerizer, too. That would fix the special casing for
Harrie's HUB75 project that's not quite a Mesmerizer and would lay the
groundwork for another project I'm working on to add another HUB75 board.
We probably need some clever way of splitting effects based on geometry.
What looks great in a 64x64 Mesmerizer can look terrible in an 8x8 2812
"waffle".
There's no particular rocket surgery required here. We know how to render
effects into an array of colors and we know how to handle 2812s at scale.
We know how to render to somewhat arbitrary geometries. We know how to do
things like read and animate gifs and we know how to render "math stuff".
We have over a hundred cool effects, but we don't have awesome ways mix
them for arbitrary host boards.
We know how to ride a unicycle and we know how to spin plates on a stick.
We just don't know how to do both at the same time. Kidding aside, the
point is the needed pieces are mostly there. It's more about rearranging
than about slinging code...but there's work needed to make it happen.
If you're a programmer and would like a go at it, I'll mentor you on it if
you like. I've clearly given it some thought but it's just not one of my
(probably ten, maybe more) current projects in this code.
…On Mon, May 12, 2025, 12:04 PM Jon ***@***.***> wrote:
Hey folks, as the title suggests, I am trying to display animated gif
files on my mk5stick cplus, (v1.1) and I can't get it to work. I have an
8x64 pixel ws2812 display connected to pin 32. *I am not using a HUB75.*
I tried using the mesmerizer environment with some effects removed in
order to get it to fit in the 4mb, but it seems to corrupt the file system
on the m5stick, even when I tell it to use the 4mb partitions_custom.csv or
partitions_custom_noota.csv.
Can anyone help me out here?
pacman8x64.gif (view on web)
<https://github.com/user-attachments/assets/ccd5afb6-0d51-41d5-a50f-d5f11b908e34>
—
Reply to this email directly, view it on GitHub
<#721>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD363KIRYH4IQOJXP7UD26DICVAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZYGMYTGNZUGU>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I am not a programmer by any means. But I teach computer tech and dabble a bit with programming related projects with my students. I am happy to accept some mentoring! Perhaps I just need some gentle nudgeing in the right direction... I have tried to identify the parts that are required for interpreting and displaying a gif from within the mesmerizer environment and selectively include them in the spectrum environment, but if I don't have USE_HUB75 defined, it won't compile, and I haven't been able to work out why... Yet. I am using vscode and platform io, and I'm probably, almost certainly, using it wrong. I usually attack a problem like this by swinging the axe pretty wide to figure out what works and then starting over to do things right once I have it understood a little better. |
Beta Was this translation helpful? Give feedback.
-
Are you comfortable with Git/GitHub? If so, make a branch and push it so I
can see what you see.
Is the goal just to "hack with an axe" your way to something that works for
you, or is it to do something good enough to be accepted back into the
project?
Is your immediate goal to use the GIF player exclusively, or do you want to
use our other cool effects? Some would probably work, but an 8x64 display
is quite non-square, so I wouldn't expect great results from all of them.
The "axe" approach is probably something like:
platformio.ini: make a new project that is something like m5stickcplus-32-8
* Crib existing code that describes the board, pin. Add -DUSE_HUB5
-DMATRIX_WIDTH=32 -DMATRIX_HEIGHGT=8 (try to avoid touching globals.h. It's
a scary place....Make a new defines for this and effect type. Lets
MATRIX_1D=1 and MATRIX_GIF=1. Oh, you'll probably need
-DPROJECT_NAME=M5StickCPlus-32-8". We can do WiFi and audio in a later
pass. You'll need LED_PIN0-whatver. I think USE_WS281X is is in the #lese
case, but you ay have to set it, too. I *think* it's the default.
At this point, your product should compile and run, I think, and light up
like a rainbow. Now, let's cafry on. (We're relying on that "#else" case in
globals.h to basically fall into the -DDEMO case.)
In effects.cpp, add a case above "simple eff" at the else that's something
like:
#elif MATRIX_GIF=1
ADD_EFFECT(EFFECT_MATRIX_ANIMATEDGIF, PatternAnimatedGIF,
"Pacman", GIFIdentifier::Pacman);
#else
// rainbos stuff
I chose Pacman because I *think* it'll approximately do the right thing
with that geometry. Maybe. I won't be shocked if it doesn't. Try some stuff
like the meteor effectts.
Up at the top of effects.cpp
#if MATRIX_1D
#include ... about anything you imagine wanting to work from the HUB75
effects. It's OK to "oversubscribe" here.
Oh, and we might struggle on
#include "ledmatrixgfx.h"
vs
#include "ledstripgfx.h"
I think we want the latter, which we should get via use_281x. Remember to
#include based on 1D anything that seems sensible to include on such a
display, but only ADD_EFFECT for the things that you actually want in
EFFECT_JONS_BOARD or whatever we call this.
We want to be sure that MESMERIZER is **NOT** defined. You're closer to the
USE_281x case.
misckeffets.h has some HUB75 stuff in it that we definitely do not want.
We might want it for certain combinations of 1D + WIDTH + HEIGHT, but I
think it won't draw well on an 8px high screen.
I've tested some effects at 8x8 and many of them look bad. I can't imagine
that 64x8 is going to come easy to a lot of these "math-y" ones.
The goal is to have this combination:
USE_281X
WIDTH and HEIGH
NOT MESMERIZER
NOT HUB75
Something we can test in effects.cpp to ADD_EFFECT for whatever you want
(You could do this in incude/custom_effects.h
Actually, maybe it's easier than I thought. We have less #if MEMERIZER than
I thought we did. Maybe we already did the surgery for MESMERIZER vs HUB75
case.
Push that to a GitHub branch so I can look over your should and coach you
(or just fix it...) if you run into weird stuff.
PlatformIO is required for our builds. I generally choose to interact with
it as little as possible, using an editor of my own choosing instead of
running it inside a glorified web browser and then just running tiny shell
scripts that find my correct serial port, do a
pio run --target upload -e $E
and then either a
(stty 115200 ; cat -u) < $PLATFORMIO_UPLOAD_PORT
or a tio -- the good thing about tio is it stays running if you reset the
board, but you have to remember to kill it (like any monitor) before you
can run the next pio run upload because the port is busy.
I've been working the tio guys to help improve that project, too, because I
like it and wanted to help make it better.
Good luck. May the Source be with you. :-)
…On Mon, May 12, 2025 at 2:27 PM Jon ***@***.***> wrote:
I am not a programmer by any means. But I teach computer tech and dabble a
bit with programming related projects with my students.
I am happy to accept some mentoring!
Perhaps I just need some gentle nudgeing in the right direction... I have
tried to identify the parts that are required for interpreting and
displaying a gif from within the mesmerizer environment and selectively
include them in the spectrum environment, but if I don't have USE_HUB75
defined, it won't compile, and I haven't been able to work out why... Yet.
I am using vscode and platform io, and I'm probably, almost certainly,
using it wrong. I usually attack a problem like this by swinging the axe
pretty wide to figure out what works and then starting over to do things
right once I have it understood a little better.
—
Reply to this email directly, view it on GitHub
<#721 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD37HMAAZ3EH6V7P4BL326DYY5AVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMJSGIZTIOI>
.
You are receiving this because you commented.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13122349
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I'm AFk, but xy needs to look like a function. Take the definition from
whererber we define the one that alternates odds and evens, not the one the
does modulo (% operartor) that is used for HUB75.
…On Thu, May 15, 2025, 1:30 PM Jon ***@***.***> wrote:
OK, so... I've been poking at this off and on again over the last couple
days and I don't think I am getting anywhere..
I had to swing the axe pretty wide... but I think I could repeat my
process with a little less butchering...
my first major roadblock is with PatternAnimatedGIF.h file, where it
includes gfxbase.h, and I couldn't get it to compile. In file included
from include/globals.h:1884,
from include/effectsupport.h:35,
from src/effects.cpp:31:
include/effects/matrix/PatternAnimatedGIF.h: In static member function
'static void PatternAnimatedGIF::drawPixelCallback(int16_t, int16_t,
uint8_t, uint8_t, uint8_t)':
include/gfxbase.h:293:26: error: 'xy' was not declared in this scope
#define XY(x, y) xy(x, y)
^~
So I edited that line in the gfxbase.h file to:
#define XY(x, y) (MATRIX_WIDTH, MATRIX_HEIGHT)
which looked like it might have worked...
I added just two affects to the build in effects.cpp like so
ADD_EFFECT(EFFECT_MATRIX_SPECTRUM_ANALYZER, SpectrumAnalyzerEffect,
"Spectrum Standard", NUM_BANDS, spectrumAltColors, false, 0, 0, 0.5, 1.5);
ADD_EFFECT(EFFECT_MATRIX_ANIMATEDGIF, PatternAnimatedGIF, "Pacman",
GIFIdentifier::Pacman);
compiled and uploaded ok, the device starts up and runs the spectrum
effect just fine, but when it switches over to the animated gif effect, it
crashes and I get this in my serial monitor:
assert failed: virtual void PatternAnimatedGIF::Start()
PatternAnimatedGIF.h:253 (gif->second._height <= MATRIX_HEIGHT)
Thats all I can do with it today, unfortunately.
—
Reply to this email directly, view it on GitHub
<#721 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD37QBKBRNYQRBHWPRAT26TMMHAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMJWGIZTQMA>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13162380
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I'm looking at
https://github.com/JonnyPhenomenon/NightDriverStrip/tree/Animated-GIF-support-for-ws2812x-martices,
which is where I assume you meant to share your work, but I see no commits
since the branch. Could you please commit your changes (git add $(files you
changed); git commit ; git push) and instructions on how to build your
target (I don't care if I can't run it or even if it doesn't compile), but
that at least lets me see your actual code instead of your description of
the code.
That's certainly the code I was thinking of and if it survives the #ifdef
gauntlet, SHOULD be what you're looking for. gfxbase is included early in
globals.h (sigh) so it should be available. Maybe it's a namespacing thing.
WAG: in ledstripgfx.h, just under the definition there for xy(), add
#define XY(x, y) xy(x, y)
I'd have to really think about how #defines interact with overridden
virtual methods and it's just too early for that...
That's probably not really the IDEAL way to do it, but it might get you
further down the field.
I could be wrong, but pasting one line and trying a build is cheap as far
as engineering goes.
…On Fri, May 16, 2025 at 8:09 AM Jon ***@***.***> wrote:
I am having trouble finding that... Also, would you believe I don't
actually know where to look?
In gfxbase.*h*, we have this code (function?) which should return the x
and y (in the boustrophedon format):
virtual uint16_t xy(uint16_t x, uint16_t y) const { if (x & 0x01) { // Odd
rows run backwards uint8_t reverseY = (_height - 1) - y; return (x *
_height) + reverseY; } else { // Even rows run forwards return (x *
_height) + y; } }
and immediately following that we have this:
#define XY(x, y) xy(x, y)
that says to me that XY() should get the x and y from xy(), right? *but*
this fails to compile, with that error: 'xy' was not declared in this
scope...
So... what is wrong with that xy function(?) that makes it undeclared in
this scope? I'll remind you, I don't actually know what I am looking at.
—
Reply to this email directly, view it on GitHub
<#721 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD376MVFBM45IQKDGFYT26XPPVAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMJXGA4TANI>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13170905
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
You'll know you've won your battle with Git[Hub] when the link above shows
your commit[s] in the history link and instead of saying
This branch is up to date with PlummersSoftwareLLC/NightDriverStrip:main.
Folders and files
it says something like this branch is 3 commits ahead of (that).
…On Fri, May 16, 2025 at 8:37 AM Robert Lipe ***@***.***> wrote:
I'm looking at
https://github.com/JonnyPhenomenon/NightDriverStrip/tree/Animated-GIF-support-for-ws2812x-martices,
which is where I assume you meant to share your work, but I see no commits
since the branch. Could you please commit your changes (git add $(files you
changed); git commit ; git push) and instructions on how to build your
target (I don't care if I can't run it or even if it doesn't compile), but
that at least lets me see your actual code instead of your description of
the code.
That's certainly the code I was thinking of and if it survives the #ifdef
gauntlet, SHOULD be what you're looking for. gfxbase is included early in
globals.h (sigh) so it should be available. Maybe it's a namespacing thing.
WAG: in ledstripgfx.h, just under the definition there for xy(), add
#define XY(x, y) xy(x, y)
I'd have to really think about how #defines interact with overridden
virtual methods and it's just too early for that...
That's probably not really the IDEAL way to do it, but it might get you
further down the field.
I could be wrong, but pasting one line and trying a build is cheap as far
as engineering goes.
On Fri, May 16, 2025 at 8:09 AM Jon ***@***.***> wrote:
> I am having trouble finding that... Also, would you believe I don't
> actually know where to look?
>
> In gfxbase.*h*, we have this code (function?) which should return the x
> and y (in the boustrophedon format):
> virtual uint16_t xy(uint16_t x, uint16_t y) const { if (x & 0x01) { //
> Odd rows run backwards uint8_t reverseY = (_height - 1) - y; return (x *
> _height) + reverseY; } else { // Even rows run forwards return (x *
> _height) + y; } }
>
> and immediately following that we have this:
> #define XY(x, y) xy(x, y)
> that says to me that XY() should get the x and y from xy(), right? *but*
> this fails to compile, with that error: 'xy' was not declared in this
> scope...
>
> So... what is wrong with that xy function(?) that makes it undeclared in
> this scope? I'll remind you, I don't actually know what I am looking at.
>
> —
> Reply to this email directly, view it on GitHub
> <#721 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ACCSD376MVFBM45IQKDGFYT26XPPVAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMJXGA4TANI>
> .
> You are receiving this because you were mentioned.Message ID:
> <PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13170905
> @github.com>
>
|
Beta Was this translation helpful? Give feedback.
-
I'm otg right now, but It needs to not be so exclusive for your case. Your
wish is close to the existing Hexagon path here.
It makes some sense that hexagon is the only place using grid addressing so
far, though. But you need it.
…On Fri, May 16, 2025, 1:36 PM Jon ***@***.***> wrote:
SHEESH! you weren't kidding about the battle with github. wow... I think I
got my changes uploaded to the appropriate branch. I cant say I will be
able to do it again without the same battle, but its updated.
I am using VSCode with platformio, using the checkmark icon in vscode
which triggers the command:
platformio.exe run --environment M5StickCPlus_8x64
this will upload to my mk5, but will core dump when it tries to run the
animated gif effect.
WAG: in ledstripgfx.h, just under the definition there for xy(), add
#define XY(x, y) xy(x, y)
the definition for xy in that file falls under the conditional #if
HEXAGON...
—
Reply to this email directly, view it on GitHub
<#721 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD376USNJIJ3DJPW2QRD26YV4BAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMJXGQYTGNI>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13174135
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Just back from holiday travel. More later, but to keep you going, nail
FastLED to a non-broken version. (And please send a high-priority bugreport
to @zackees in reddit.com/r/fastled or on the fastled github.)
diff --git a/platformio.ini b/platformio.ini
index 91986b1f..1142d700 100644
…--- a/platformio.ini
+++ b/platformio.ini
@@ -49,7 +49,7 @@ build_src_flags = -Wformat=2 ;
Warnings for our code only
check_flags = cppcheck: --suppress=*:*src/uzlib/src/*
lib_deps = crankyoldgit/IRremoteESP8266 @ ^2.7.20
- fastled/FastLED @ ^3.8.0
+ fastled/FastLED @ 3.9.16
adafruit/Adafruit BusIO @ ^1.9.1
adafruit/Adafruit GFX Library @ ^1.10.12
olikraus/U8g2 @ ^2.28.8
On Wed, May 28, 2025 at 2:46 PM Jon ***@***.***> wrote:
So, I am still poking away at this. We've created a handful of cool
animations to play, but the have encountered many strange issues along the
way. I think we are hitting the limits of the space available on the
m5stickc-plus.
I am trying to create a nice clean pull / merge candidate, with the
features of my own creation neatly inserted in the platform.io
environment, but anything I define in there that is unique to my
configuration needs to have corresponding #ifndef's inserted in globals.h
or it gets reassigned and causes loads of errors in the compile process.
Also! I think the FastLED library got updated *today* to version 3.9.18,
and it broke the nightdriver code. I can no longer compile clean code
because ledstripgfx.cpp tries to use the fadeLightBy which is no longer
declared in the scope. (whatever that means)
—
Reply to this email directly, view it on GitHub
<#721 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD3YSMHYEAP4CQRGDX333AYHBPAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZQGEZTKOA>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13301358
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I'm not hating on FastLED, just sharing the observation this would be the second time I can remember that a breaking change was applied in a patch version. About the clean merge candidate: that's really appreciated and as I already said, I'm happy to help with moving a candidate to the point of actual mergeability whenever you feel you're ready to go down that road. |
Beta Was this translation helpful? Give feedback.
-
I'll work on your fadeLightBy issue. |
Beta Was this translation helpful? Give feedback.
-
Master has been updated with your fix and your issue with fadeLightBy should be solved. Here is the commit with the fixes in it: 7ead09080639370ce79caeec8b19b7991c5cd372 I recommend that right after you include FastLED.h you do
I'm moving things out of the global namespace into the fl namespace then doing a using to declare it in the global space. If you don't use using namespace fl, you are at risk for the same class of issue in the future. Sorry, the namespace issue is really big and I've spent countless hours making it so projects like yours don't get bitten by colliding symbols. |
Beta Was this translation helpful? Give feedback.
-
@zackees I know we can do that, and maybe we will. It's just that in the context of semantic versioning, minor and patch versions should not include breaking API changes. Hence, the "compatible upgrade" include in our platformio.ini should prevent this sort of thing from happening. But again, you're right: we could pin the version down. @JonnyPhenomenon This part of my earlier comment was meant for you, in case that wasn't clear or got lost in the comment chain:
|
Beta Was this translation helpful? Give feedback.
-
Very nice setup! Is that actually running any NightDriver code? It sort of looks like the Meteor effect adapted, but can’t tell.
Cheers,
Dave
… On May 29, 2025, at 10:00 AM, Jon ***@***.***> wrote:
You guys are awesome. You should see the stuff we have done using your libraries and whatnot.
Here's a video of the LED's in our classroom.
https://photos.app.goo.gl/WS58xGN2p6LQL8S1A
We have all of our ethernet cables run over these ladder racks overhead, with our core switch in the middle of the classroom and our internet feed coming in at the far end of the lab. The lights are powered by a lilygo esp32-s3, which polls the SNMP packet counter data of our core switch and then sends pulses of lights along the LED strips with appropriate colors and quantities that reflect the amount of data being sent or received over each branch. (A former student of mine @SeanMcKeen <https://github.com/SeanMcKeen> did almost all the work over a year ago on the project. ) https://github.com/SeanMcKeen/IT-Lablights
It's a really neat setup, and it draws a ton of attention to our program.
Here's a video of the ws2812 matrix display that we are working on at the moment. https://photos.app.goo.gl/4qkAKgF9rcY6n6vr5
This is going to be worn as a hat by one of my students at the SkillsUSA competition in Atlanta in June, so if either of you want to make an 8x64 pixel animated Gif for us, we will happily add it to the rotation of images we are going to have it play :)
Also note the flux capacitor replica we made. Its using FastLED too! the speed of the chasing LED pattern is controlled by a potentiometer. Fun stuff!
—
Reply to this email directly, view it on GitHub <#721 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA4HCFZPIMBVXI5JRJXCAXT3A4HGDAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZRGAZDENI>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
It was, but now it's not. I remember tutoring Sean McKeen on this long ago.
He struggled with getting external inputs to make the patterns reactive and
in the end, we were just mostly in the way. There was some talk about using
our DDP remote framebuffer facility, but he finally just went raw FastLED.
On Thu, May 29, 2025, 10:36 AM David W Plummer ***@***.***>
wrote:
… Very nice setup! Is that actually running any NightDriver code? It sort of
looks like the Meteor effect adapted, but can’t tell.
Cheers,
Dave
> On May 29, 2025, at 10:00 AM, Jon ***@***.***> wrote:
>
>
> You guys are awesome. You should see the stuff we have done using your
libraries and whatnot.
> Here's a video of the LED's in our classroom.
> https://photos.app.goo.gl/WS58xGN2p6LQL8S1A
>
> We have all of our ethernet cables run over these ladder racks overhead,
with our core switch in the middle of the classroom and our internet feed
coming in at the far end of the lab. The lights are powered by a lilygo
esp32-s3, which polls the SNMP packet counter data of our core switch and
then sends pulses of lights along the LED strips with appropriate colors
and quantities that reflect the amount of data being sent or received over
each branch. (A former student of mine @SeanMcKeen <
https://github.com/SeanMcKeen> did almost all the work over a year ago on
the project. ) https://github.com/SeanMcKeen/IT-Lablights
>
> It's a really neat setup, and it draws a ton of attention to our
program.
>
> Here's a video of the ws2812 matrix display that we are working on at
the moment. https://photos.app.goo.gl/4qkAKgF9rcY6n6vr5
> This is going to be worn as a hat by one of my students at the SkillsUSA
competition in Atlanta in June, so if either of you want to make an 8x64
pixel animated Gif for us, we will happily add it to the rotation of images
we are going to have it play :)
>
> Also note the flux capacitor replica we made. Its using FastLED too! the
speed of the chasing LED pattern is controlled by a potentiometer. Fun
stuff!
>
> —
> Reply to this email directly, view it on GitHub <
#721 (reply in thread)>,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AA4HCFZPIMBVXI5JRJXCAXT3A4HGDAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZRGAZDENI>.
> You are receiving this because you are subscribed to this thread.
>
—
Reply to this email directly, view it on GitHub
<#721 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD36AYDFGBRYKPPSGIVL3A4SPLAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZRGEZDQOA>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13311288
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Thanx, Zach. I agree that's a sane behaviour. top level 'using' is rarely
any better than just leaving everything in global space. 'using' is a
gateway drug to (stay on) globals.
So is it fixed/to be fixed in FastLED or do we - and any other projects -
need to add "if head == broken" code to skip over that version?
…On Mon, Jun 2, 2025 at 10:47 PM Zachary Vorhies ***@***.***> wrote:
By default, everything should stay in the same namespace as it is now.
The fadeByLight was an omission on an internal refactor.
You can selectively use the using directive for this one function and will
be good going forward.
I have no plans to force the fl namespace on users as that will break old
sketches.
—
Reply to this email directly, view it on GitHub
<#721 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD376AQXUSSX5HWMW6MT3BULEZAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZVGA3DMNA>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13350664
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
there's like 4 symbols that didn't get pulled into the global space. The regression is already fixed in master and will be in the next release, in a week or so. The problematic objects were in the colorutils package. in the near future , CRGB and CHSV will also get namespaced and then each a using declaration to pull the object into global space. Nothing in the api will change though. |
Beta Was this translation helpful? Give feedback.
-
Thanx, Zach. I say we live with that for a week. We're technically broken,
but not getting creamed with reports. Those of us that are affected are
probably in this thread at this point, have a workaround for fresh
checkouts, and just know to not accidentally type pio pkg update in our
work trees.
…On Wed, Jun 4, 2025, 3:39 PM Zachary Vorhies ***@***.***> wrote:
there's like 4 symbols that didn't get pulled into the global space. The
regression will be fixed in main in the next release, in a week or so.
—
Reply to this email directly, view it on GitHub
<#721 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD3Z4RKEDBGLFBFQT56D3B5KQZAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZXGIZDENQ>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13372226
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
Are you broken because of FastLED? |
Beta Was this translation helpful? Give feedback.
-
Our head has been broken since this was pushed. See
#721 (reply in thread)
(and the following message where I'd discovered the same and sent him to
bug you because I was on the road. :-) )
I didn't know how far back to go, so I just picked some version other than
"today".
Remember the discussion about the difference in interpretation of "using a
published version" and "raw dogging"? Yeah, it broke our compile because
we're calling a function that's no longer in global space.
Honestly, I'm not sure why more projects are breaking. I was on the road.
…On Wed, Jun 4, 2025 at 10:01 PM Zachary Vorhies ***@***.***> wrote:
Are you broken because of FastLED?
—
Reply to this email directly, view it on GitHub
<#721 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD37LOUYRNNACCS43ZHL3B6XHFAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZXGQYTCMQ>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13374112
@github.com>
|
Beta Was this translation helpful? Give feedback.
-
I pushed a stealth release of 3.9.20 |
Beta Was this translation helpful? Give feedback.
-
Thank you. If we'd had more than the one report, we'd have fixed it one
way or another.
TBC, we're not doing anything insane like pulling from HEAD. We're saying
"released versions > 3.8.0." That doesn't seem nuts. You're surely agreeing
that an incompatible API was not your intention. Every one of our
platformio dependencies (like most of the world) requesting "ABI >= N".
Honestly, if we nail it to a specific version of FastLED, we all know it'll
never get updated again. That's not great, either.
I'm not trying to Jedi Mind Trick you, but I think that following FastLED
releases are fine (just like all 22 of our dependencies), and this was, as
you said, a simple omission that's been fixed. Unless you plan to break the
API without changing the number in that first digit (ala https://semver.org/),
I think we're fine. You didn't mean to force fl: and missed one case. That
got us (and who knows who else), and now it's fixed.
I can't speak for the project (well...) but IMO, we're all better off with
fast-moving relationships - and fast fixes when something fails, as we've
done here - than with projects that are [effectively abandoned](
crankyoldgit/IRremoteESP8266#2144 (comment)).
I'm _happy_ that you've picked this up again and, like ESPAsyncWebServer,
brought it back from a state of decay. Let's keep 'em both moving.
We've both heard Titus (and many, many others) give the "Live At Head"
talk. At least Rosie didn't have to come after us!
Thanx
…On Wed, Jun 4, 2025 at 11:28 PM Zachary Vorhies ***@***.***> wrote:
I pushed a stealth release of 3.9.20
—
Reply to this email directly, view it on GitHub
<#721 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCSD374OGZE46TZVP3STJT3B7BPZAVCNFSM6AAAAAB46OHMYOVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGMZXGQ2TGMQ>
.
You are receiving this because you were mentioned.Message ID:
<PlummersSoftwareLLC/NightDriverStrip/repo-discussions/721/comments/13374532
@github.com>
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey folks, as the title suggests, I am trying to display animated gif files on my mk5stick cplus, (v1.1) and I can't get it to work. I have an 8x64 pixel ws2812 display connected to pin 32. I am not using a HUB75.
I tried using the mesmerizer environment with some effects removed in order to get it to fit in the 4mb, but it seems to corrupt the file system on the m5stick, even when I tell it to use the 4mb partitions_custom.csv or partitions_custom_noota.csv.
Can anyone help me out here?
Beta Was this translation helpful? Give feedback.
All reactions