This is so cool, thank you Dave! I enjoyed my self made camping led strip for quite a while now. However after a few years all my patterns suddenly seemed kind of digital and boring to me. So I searched the web for a fire effect. And here I am. Fantastic work, thank you very much for inspring me!
That’s going to need a rewatch. (Or three). Great presentation, Dave. Going to attempt to make fire myself. Your detailed explanations are exceptional. I was looking for a clear explainer for all of the “behavior of a flame”. This episode hit the spot .I’ll Surely pass this channel on to all those inclined . Thanks for your efforts to produce this content. Cheers HNY. -JJ
It has been really fun to try and keep up with the typing-time-lapses. You make some good quality content. Keep it up! I am attempting to use some of these algorithms as a C refresher and learning the FastLED api.
So much love for this chan. Being a full time dev, I just dream of the day, I could retire and tinker with some LEDs or Makerbots. One Day, Dave.... one day. 😀
Amazing tutorials Dave! Appreciate you explaining things in such detail. I have no real programming experience, only javascript, but was able to follow along and understand a lot of the code. Thanks!
Hi Dave, Just come across your channel and oh my it’s incredible I’m a newby to all this starting at making temperature reading devices and other small projects but loving my journey, so all I was wondering can you cover the afterburner set up especially the schematic drawing and running 8 light sets in parallel the mind boggles can’t speak highly enough about you such a clever person and thank you for sharing your knowledge with us 👍🏻👍🏻
The cheat for all these effects (for the non programmer) is to use software like Madmapper and then map the LEDs using a Enttec Pixel Octo onto the LED string(s). Just play a video of a fire (or use a relevant GLSL shader) and Madmapper will send the appropriate data to the LEDs.
I'm using a matrix adapted version of the fire effect that comes with FastLed (cooling increases the farther out you go from the middle, ). I'm going to change it to your version of sparking (with rollover!) so that there can be multiple sparks per cycle.
Great stuff! New subscriber here! I have to go back and revisit VSC. I really want to use that. I had so much trouble configuring it with Platformio because, well, it is a MS product. 😉
Awesome videos, loving the code / light / head format. You mention the lamp behind you is wifi based? Mind ellaborating on what it is? Did you build or buy it? And how are you sending the effects over wifi? Maybe another episode?
Hey Dave, I'm really lovin' your videos and your taste in music. The fastLED tutorials are just what I've been looking for and I've been having fun deciphering your code. Case in point, I couldn't figure out the use of modulus in your blending algorithm in fire.h, but it turned out to be what was preventing me from producing a fire anywhere other than the start of my led strip. Next I'm going to have a look at the FireEffectSmooth. Hope to see some more programming stuff. Thanks. Take it easy.
I used your code with minor modifications to make an 8-foot stage prop that is the head of a fire dragon. I can't post where you can see it in this comment because that gets the comment auto-deleted. Its actually pretty amazing. The ears, cheeks, nasal cavity, and throat all have Fire LEDs. 3 strands in each cheek, 5 in the nose, 5 in the throat and 5 in each ear. About 600 LEDs total, all looking like flickering fire coming out of its belly. Let me know if you want to see it online and, if so, how I can pass that info to you. THANK YOU SO MUCH!!
I'm still verry impressed by this effect. I have a project with several 7LEDs-strips, where I want to retrofit your solution. Because of these tiny strips, I dived very deep into your code to check how to scale down and still get cool effects. There is a minor bug in your code. I'm not sure how much of an effect you get from it. In the loop where you blend the heat-array: The for-loop goes through the whole array, while the blending goes 3-steps further. So at the end you go up to 3 values out of your array. This is where your ignition is. I guess because of this, you don't get too much of an effect caused by this bug. Line 70 to 75 at 13:36.
Not a bug, actually, this is "by design" for the flame effect to loop around! It doesn't normally hurt a straight strip so I leave it in, but you could take it out if you prefer!
@@DavesGarage In the last loop (i=Size-1) the command heat[i+3] reads the array heat at Size+2. As far as I know this is a usual read out of bound and you get what ever information is located at this memory location... if there is any memory at this address. Hence you don't write at this adress, this normaly will not hurt. If it compiles, doesn't crash and looks great, this is irrelevant. Thank's for the great videos. I'm learning alot. My little nephews will be very happy about thieir advents calendars with cool light effects.
I am working on a 1/72 scale model of the Millennium Falcon and want use this as the back engine going from a cyan with the hotspots popping the length of the LED strip and firing at a much slower rate. What variables would need to change to do so?
Amazing! This is what I have been wanting to do for so long, but I’m not a programmer. Do you know of any strip lights that can do something even close to this out-of-the-box?
Thats a super awesome tutorial. One question: In episode 00 the Strip in the background is making the (same?) fire effect but a way slower than the one i get when i implement your code in my System. I tried now for 2 hours to find out which Parameter i need to change to get the same effect but in slow-motion. Any help is appreciated. Cheers
Thank you for sharing this. I am trying to replicate your window fire effect (showing in this recording) but I am missing something. Any specific pointers on how to get that continuous flame going on in a 300 pixel strip?
This is very awesome! Question as I am new to this, If I add this to my Paramotor (Big fan on my back with a paragliding wing) essentially all I would need to create is a power source and the module should be able to memorize the last effect it used and I could fly like this correct?
Thank you so much for the video, it is brilliant! I have a question about the HeatColor function. Why does it make some LEDs green?! Green is not in the heat colour spectrum :(
Hi Dave, Great videos indeed. I'm brushing up on my old coding skills very quickly!! I'm looking at a lighting project to control approximately 2000 WS2812B LEDs. What's the optimum ESP32 to control such a setup... memory, etc? Thanks Howard
Hey Dave! thank you so much for your time and effort in this series. I know its probably too much to ask, but do you have a completed source for the tiki umbrella that can be uploaded to the esp32 with all effects like was demonstrated on your house / umbrella in the back yard? i finally got the flame effect to work but no way to change the effects without recompiling. plus changing the color of the flame is beyond me at the moment. I would love to parse through all the fireworks and flame effects you've demonstrated. Thank you again. i hope to hear from you
If you have a light controller class that accepts an instance of of an effect class then you can pass whatever effect you like to your light controller. The light controller might iterate through time and each tick execute a function on the effect class. That effect class function 'update' would contain the algorithm necessary to change the led's. Perhaps something like the Strategy design pattern. the update function of the effect 'strategy' could have a series of indexed steps that on each index does something different. A contrived example might be if index - 0 light led 1, if index - 1 light led 2 ... etc. The light controller class could keep a count of the index and feed it into the currently loaded effect. For a simple interface you could have a button that triggers the next effect to be selected as the active effect. Hope this helps. It's been many years since I did anything but write JS UI code :p
Really enjoying the series of videos! In a few episodes you've shown a multi-strip set up with 8 LED strips all connected together in the fire pattern (00:17 in this video), and I have a project where I need to connect, power, and control multiple strips, but I'm not sure how to do this. I've come across some "DMX" controllers on amazon, but it seems like that's not the right path to go here. I'd like to run about 10 strips. Definitely would like to see a video on this. Appreciate all the content you're putting out. Subscribed.
You could just daisy-chain those and do it all on one PIN logically. But if you wanted to run literally 8 separate strips, you can do up to 8 in true parallel and even more with FastLED. You just call addLED with the other pin and array. Google for something like "fastled multichannel esp32"!
@@DavesGarage Cool, I am googling that now, and I appreciate the guidance. So in the video clip, you have the 8 strips connected by male-female wire connectors, i can see that. I'm curious what it looks like on the wiring side, how is the power fed, all from one power supply or multiple, what wattage? Is the data all coming from a single data wire (I believe you answered it is 8 separate data wires, all connected to the ESP32, thanks for that :) I will check into how to do this multichannel ESP thing ). With 5m strips at 5v, no need to power inject on both sides?
@@DavesGarage I’m having trouble getting the ClassicFireEffect to work with multiple strands. I’ve followed the examples from FastLED for multiple strands and I have other effects working with multiple strands but I can’t seem to get ClassicFireEffect to work. Can you show an example?
Dave, I am subscribed and just watched this video and it was awesome!! Your programming skills are immense. I can hardly program the TV remote but I have a question, anyway you could show how to do this effect on multiple vertical strips around a cylinder to get a 360 degree view of your effect?
Like a 3D effect, not the same flame/cooling effects on each strip. My expensive way of doing this would be to buy a bunch of Arduino's for like 16 strips and change your parameters. This of course is not feasible or the smart way of doing this. If you had horizontal strips it would probably save me a lot in wire but the array would be different. I don't know but would love to learn how to create a 3D flame light.
Hey Dave, I have a Question, when running multiple strips in parallel e.g. the afterburner demo or tiki umbrella, do you configure the RGB strips as an array with individual data pins from the Arduino, or with an offset for the first LED as the start positions for each of the strips? love your work, and without any creepiness intended, the sound of your voice is oddly very relaxing. Keep up the great work!
Dave, thanks for the tutorials! I have gotten to the point where I have one warning, but I think it may be preventing the code from running: non-constant array size in new, unable to verify length of initializer-list [enabled by default] from fire.h. Any thoughts on if this warning is preventing the leds from lighting up?
When it compiles, I get this error: In file included from src\main.cpp:40:0: include/fire.h: In constructor 'ClassicFireEffect::ClassicFireEffect(int, int, int, int, int, bool, bool)': include/fire.h:132:35: warning: non-constant array size in new, unable to verify length of initializer-list [enabled by default] heat = new byte[size] { 0 };
Nice Video! Thanks a lot. I was playing around with the Fire2012 example code from FastLED. At least with my WS2812B strip the HeatColors created from heat values between 130 and 220 look greenish which is weird for flames. My current fire-code only uses heat values from 0 ... 130. Have you noticed something similar? Will definitively have a look at your code and give it a try.
I noticed the same issue. have you had better luck with 0 .. 130? Using Dave's code I get a white spark and like one yellow and then the rest are red.. it's like the yellow band is compressed.
Hi, this is crazy! 🤣Do you have any videos on programming fire for WS2812B maxtrixes? I'm just getting started trying to make fire for an 8 x 32 matrix that I'm going to orient vertically. I'm trying WLED at the moment, but I definitely like what you're doing way better!
Has anyone tried this with two 60strips(120 leds total)? For me it seems to only use like 15 leds the second strip. If I use mirrored mode it works as I would expect using all of both strips. It works fine when set to use 60(and just the first strip)
I would love to hear a story about how code version control was done back in the days of 95 and DOS in the MS world. As I'm so young that I only know of git for version control.
There was SCCS in the 70's and RCS in the 80's. A bit later CVS improved on RCS, and then Subversion improved on CVS. Many proprietary offerings also came to market and the source control wars happened, with an explosion of competing systems. Microsoft had a system called Visual SourceSafe (VSS), about which the less said the better. It had a habit of corrupting its database and losing your work.
For a while, I once had an ESP32 set up with some canned effects (such as fire) and a small web interface that, yes, could be used from a phone. Don't know if that counts as "good" but it's a nice simple way to start. I'm not familiar enough with Bluetooth programming (on either end) to attempt that yet. That's since been replaced by a Pico W running a scriptable effect generator, controlled via MQTT, which gave a big boost in flexibility (and 4x LED strips) but a small hit to performance. However, it does mean one could build a phone dashboard/control panel for it using any of various MQTT apps available.
I reduced the cooling -and- the sparking so that's generally less active, and that lets the scrolling carry the flames further. So less fire and more "wind" if that makes sense!
@@DavesGarage I get it, great! Thanks again! I'm "attempting" to combine the comet effect with the flame effect behind it. I'm FAR more comfortable with the technical building than the coding side. I always feel I'm 2 lines away from having an aneurysm!!
@@DavesGarage I'm using FireEffect fire(NUM_LEDS, 8, 5, 15, 2, true, false); and I think it's has a nice rolling look but it's missing the billowing yellows. Are you using the heat pallet or a custom pallet where you stretch out the yellow?
That's a a ring-a-ding-dong dandy LED fire effect, and a nice homage to the late great Ed Whalen in the sign-off of this video. Is a certain somebody an old Stampede Wrestling or Calgary Flames fan?
Dave your the bestest funny guy... that dry humour is a lost art and You Sir are meh, ok. Pls keep em coming would like to see UV light on the ws2812b so the glow in the dark pigment can be super bright...insert ws2812b on plexiglass add Glow in the dark, light that moefackie up. I was gonna patent it but imma lazy trucker. Thanks
Hi Dave Super project I like. I have a few more questions: 1.) Does the ESP32 module have to have a display like your link ? If yes for what ? or could you also use this one: AZDelivery 3 x ESP32 NodeMCU modules WLAN WiFi Dev Kit C Development Board with CP2102 (successor to ESP8266) 2.) For what do you need the software: Visula Studio Code ? - Is not the ARDUINO IDE SOFTWARE required ? Can you also be contacted by e-mail if there are too many questions ?
Great videos - thank you! One suggestion, try to keep your most current code closer to the middle of the screen as when the video is paused the RU-vid bottom navigation overlays on the latest code you just entered. Sometimes makes it a little difficult to copy down.
I am brand new to this arduino and programming. I will build a strip that leads to my basement with some ws2812b leds and two PIR sensors. I want a sequential on and off, and some sort of cool animation afterwards for a few seconds before turning off completely. What animation would you recommend?
@@DavesGarage I’m still waiting on my supplies to get here to try this for the first time. Would you be able to point me in the right direction of a code that would be close, and I could try and tweak it? I’ll have 100 leds and a 5v 10a power supply, so that should be plenty.
Did the rest of this series ever get made? I am very interested in the jet engine effect you teased. I'm not a great coder, and I am failing to get more than one instance of Fire 2012 to run at a time, can you explain or share the source code for how that multi-strip fire worked? Thank you very much. I love this series.
watching this again. I am not a programmer, I just wanted to find some code that I could play with the variables to get the effect I want. It looks like the esp32 is a wifi chip? Do I need that or can I do this on an Arduino uno?
Pick a simple project and learn the language you need to complete it. That way you are forced to learn coding and not just following a tutorial. That's how i taught myself PHP, Typescript, C++, Python, and probably some others. Though I was attending university and we were just getting into java. But, youtube tutorials will teach you the same basic concepts and more.
two questions: 1. Where do you purchase your LED strips from? 2. Would anything have to be done to use your code with RGBW neopixels? Is it just a matter of not including another octet for "W" or do other changes need to be made? I have a couple of RGBW strips I bought a few months ago {before I stumbled across your badass channel} and I'm wondering if I can use those instead.
@@ZILLION4EVER i think I figured it out. But for now I used 1 Arduino and tied wire together.. but it come as a mirror and thats not what I wanted, was doing his flame tube (background ) as gift.
I've been trying to change the colour scheme here. I am wanting a blue flame effect. Changing the random range doesn't seem to have the effect I want. What should I look further at?
If I wanted to drive two serial LED strips with two instances of the ClassicFireEffect class, as this is constructed as a POD class, how can I do this?
Has anyone done anything to kick this up a notch? I’ve added a photo cell and a relay to turn it on at a adjustable level, but to add a web server to switch between the different effects would be sweet.
Can I use this code on the arduino nano? I have 4 of them that I want to use on another project but I thought I could try this out on one of them and see how it goes.
where is the code for this particular example. I checked the github link but could not find the main.cpp for just the fire animation. Not with the fans
Depends how deep you wanna go. If you have an audio input you could have a variable hooked up to the signal strength. Or you could dive in to audio FFT libraries.
Hello Dave ! im trying to upload your sketch on an arduino uno board that i have indoors i have made the changes needed in platformio.ini to connect to the board but when im trying to upload on Arduino Uno i get the error due to the lack on sys/time.h Is that anything that i can do to bypass that error or can i create time.h ? i would love to use your fire efect for a personal project .