I don't care what he does, as long as he's sharing his tinkering with us. ^^
@MinecraftEAT6 жыл бұрын
Agreed, his passion is able to shine through a lot more than in a more scripted environment
@common_c3nts6 жыл бұрын
@@lolindirlink I dont care what he does, as long as he makes silly comments that entertain us all.
@alunaticbastard6 жыл бұрын
I gotta admit, when I first saw the notification about the instant pot stew I was like WTF is this. Then I watched the video and thought, yeah that was some pretty damn good looking stew! Different is not always bad 👍
@Gunbudder6 жыл бұрын
2:33 this is a union with bit packing. So the struct with its 4 vars is 32 bits total, not 4 by 4. Its only 4 bytes for the whole struct. The way the code is written gives easy access to either the 4 parts or the whole thing as a 32 bit unsigned int. I see this A LOT in the real world, and it's a huge advantage of C. The number after the colon is which bit the value is stored at, and this saves the user from even needing to know what the bit offsets are. Unions are great and this one looks to be written pretty nicely
@HypherNet6 жыл бұрын
Yeah I saw this too -- it's still pretty bad, but not nearly so much as he expresses in the video.
@RichardEricCollins6 жыл бұрын
@@HypherNet Why is it 'pretty bad'? Looks fine to me.
@ijabbott636 жыл бұрын
@@RichardEricCollins It's pretty bad because it's very wasteful for this application that needs to transmit loads of bits. It's using 96 bytes of storage per neopixel, even though only 3 bytes are needed to represent the state of that neopixel - an efficiency of 3.13%. It's probably fine for remote control applications that only need to transmit a few bits for each control code. Using it for neopixels seems to be more of a quick hack by someone using existing libraries to get something up and running quickly.
@koko0riginal6 жыл бұрын
that annoyed me too. informational videos that teach a lot of people should know the language they are reviewing...
@vsyncci5 жыл бұрын
no. the number after the colon is not "which bit the value is stored at" i.e. an offset, rather it's the width of the bitfield.
@alfredcornflake50326 жыл бұрын
I can barely understand anything in this video but I love seeing the things that you do.
@HuntersMoon786 жыл бұрын
Same here
@BenHeckHacks6 жыл бұрын
Just realized you don't need the AND gate you could just pipe SPI data into the "One" pulse timer. (assuming you used SPI Mode 1 where the data and clk rises at the same time)
@collinpearce3106 жыл бұрын
Would you just hook up SPI_DATA to the CLR pin of timer B?
@asdasd-kf7lv6 жыл бұрын
The rmt_data structure also doesnt have 4*4 bytes, you just didn't notice they are bitflags. Nice choking sounds though!
6 жыл бұрын
Also, you don't even need to 74 series logic gate, you could just use 2 diodes.
@BenHeckHacks6 жыл бұрын
There'd be a bit of a voltage drop for the first Neopixel but yeah, should still work.
6 жыл бұрын
@@BenHeckHacks Yes, with a Schottky diode the voltage drop is negligible at 5 volt,
@ristomatti6 жыл бұрын
Got here through recommended videos. I found the narration of your problem solving process and the practical demonstration of oscilloscope use really useful. Thank you! Subscribed.
@patwicker13586 жыл бұрын
Just discovered your new channel, like it much better then the old one that I unsubscribed from.
@aequanimus632476 жыл бұрын
Nice, That's working like a charm. Man, you do such a good job at explaining your thought process. Thanks Ben!
@mrburns3666 жыл бұрын
Galveston is pretty cool. I recommend the "duck tours." You get to hear about the cool pirate history of the area
@markr90696 жыл бұрын
Great idea. Even if the RAM saving isn't as much as you originally thought, being able to push the data to the pixels using DMA simplifies the code quite a bit and also means there are more cycles available for WiFi, Bluetooth or whatever else you're using to change the pixel content. I like this a lot.
@zeffofx6 жыл бұрын
this kind of video is why I am subscribed to TBHS years ago. thanks for bringing us again more techniques and hacks videos Mr. Ben Heck.
@gopherdan96 жыл бұрын
I was just looking at the Adafruit NeoPixel library and thinking about re-writing it for my specific application to reduce the footprint. Your solution is a way better idea without a significant hit on the BOM!
@rekna15578 ай бұрын
After some years I finally found time to rebuild the fixed version (Mentioned in the issue log of your Repository) of this adapter to drive a WS2812 strip with a STM32... And as I could not setup the required SPI Speed with an STM32 Blue Pill board... After some testing and different approaches to work around this issue, I ended up with a scaled solution, that a single STM32 Blue Pill board drives 8 (eight!) WS2812 strips in parallel with up to 512 LEDs each in full speed (freerun mode) 🙂
@timh28706 жыл бұрын
Excellent work! One thing you didn't say though, for those who weren't paying attention... you dropped the memory requirements from 96 bytes per pixel to three.
@smartperson16 жыл бұрын
I'm not sure what changed, but your recent videos are way way better than that overproduced stuff you were doing for a while. Keep it up, Been!
@pinealservo6 жыл бұрын
The 1-to-3 expansion for the direct SPI control doesn't have to take any extra RAM; you just have to expand your pattern to 3 bits as you write it to the SPI input buffer.
@Mark-px3rq6 жыл бұрын
SPI clock is identical to the longer output, so a lot of logic circuitry could be saved here by feeding the SPI clock directly in to the AND gate
@MakunaRGBIC6 жыл бұрын
NeoPixelBus uses the I2S hardware support currently with a better RMT method coming soon. SPI will waist a clock pin which ws2812 don't are about. SPI is better for APA102 which needs that clock. NOTE: The RMT buffer EXPLOSION is crazy, but they finally added support to SHARE the RMT ISR so it can be converted on the fly. The approach I wanted to implemented and drove for that support.
@MichaelHomeisterMardorf6 жыл бұрын
Love ya, keep up the good work! Bought a pinball machine and got into this hobby b'cause of your videos :-) started to build my own and finally got deep into hardware programming. keep up the good work!
@hrnekbezucha6 жыл бұрын
Absolutely love your new channel. Doing great job, man
@joelius246 жыл бұрын
No matter how much I progress in this field, Ben remains on another plain.
@HeyBirt6 жыл бұрын
Nice! I recently used a 74LS123 on my CNC-64 project to generate a step pulse on the rising and falling edge of an output pin on the C64 user port. By doing it this way I was able to get a 1kHz step pulse rate from a NMI handler while parsing movement commands.
@keithcitizen48555 жыл бұрын
Brilliant technical demo, light years ahead of 555 shows.
@EdwinNoorlander6 жыл бұрын
Really cool, something I want to make. Thanks Ben. Nice to make it work with Home Assistances.
@haakonness4 жыл бұрын
Something many don't know about the ESP32 is that it is dual core 240mhz, which is _pretty_ neat.
@crides06 жыл бұрын
Wrong struct size for the rmt library. LOOK AT THE BIT FIELD SIZE!!!
@az09letters926 жыл бұрын
Yup! He also missed the union. I guess this the author doesn't know C programming, at least bit fields and unions. "rmt_data_t" total size is 32 bits or 4 bytes.
@BenHeckHacks6 жыл бұрын
I don't fully understand that part. But compiled RAM size still figures to 96 bytes per pixel.
@MrRadar6 жыл бұрын
@@BenHeckHacks Bit fields let you pack multiple numeric values within a single (integer) structure field without having to do the complicated bit operations to pack and unpack the data yourself. Each rmt_data_t is only 4 bytes in size (since it's packing 32 total bits of data into a 32-bit uint32_t data field).
@az09letters926 жыл бұрын
@@BenHeckHacks Well, that's 4 bytes per bit. A pixel has 24 bits. 4 * 24 = 96. If it was "times 4", it'd be 384 bytes per pixel...
@BenHeckHacks6 жыл бұрын
@@MrRadar Got it! It's still a lot.
@MaxintRD6 жыл бұрын
Very cool! Great solution to keep overhead limited and programming simple. Great!
@NicksStuff6 жыл бұрын
So......what are you doing with all that free RAM, now?
@theforce825 жыл бұрын
Free RAM for Solenoids, 128×32 DOT Matrix pinball LED display , mp3 player 🙉
@malgailany6 жыл бұрын
Very well explained, innovative idea. Thank you Ben!
@pegroj6 жыл бұрын
Keep creating Ben, awesome work
@philiprowney5 жыл бұрын
Past 10:00 this is just tech g33k pron. Delicious breakdown Ben. You should teach digital electronics.
@Sharklops6 жыл бұрын
Let's get this circuit laid out on a tray...
@TrevorDBrown6 жыл бұрын
CRE = Circuits Ready to Energize
@NickNorton6 жыл бұрын
Not sure Ben's Electronics should emit a "Nice Hiss" though.
@DJlegionuk6 жыл бұрын
what about using fast led with apa102 led instead.
@ctjet99channel6 жыл бұрын
Works with ws2812b too
@bleepbloopblahp6 жыл бұрын
@@ctjet99channel FastLED works with a fair few RGB serial controller chips. It's awesome.
@ctjet99channel6 жыл бұрын
@@bleepbloopblahp I'm using it for my own projects with the esp8266 and esp32s right now. I agree it's amazing
@dariofagotto40476 жыл бұрын
I think you can use only half 74123 without logic gates simply driving an extra resistor (with a diode) into the RC time circuit
@eformance6 жыл бұрын
_2 Bits Enter, 1 Bit leaves_
@tomstern16816 жыл бұрын
Arduino code is not what you would call "efficient"
@ArjanvanVught6 жыл бұрын
Yeah, just write baremetal C/C++
@Sembazuru6 жыл бұрын
@@ArjanvanVught Nah... baremetal C/C++ has too much overhead. Go for assembler for the win. ;-)
@thebluemarauder6 жыл бұрын
I have another idea of how to do this without needing the logic gates. I'll test if when I have a chance. Basically have 2 resistors feeding the timer. One hooked straight to VCC, the other hooked to the output of a PNP transistor. The base of the PNP transistor would be hooked to the SPI data line. When the data line is 0, the transistor will turn on and the two resistors would be placed in parallel, lowering the overall resistance and thus the pulse length. Might even be able to pull it off with just a 555 with some clever trickery.
@DireChris6 жыл бұрын
I've no idea what you said during the entire video but I still watched it lol
@davidwoods13376 жыл бұрын
I love that you're connecting two digital signals with an analog part
@bena16544 жыл бұрын
Nobody mentioned the 1989 Steve reference... Cool channel!!
@mattb60016 жыл бұрын
The best hardware for driving these addressable LEDs is by far the Teensy platform. The Teensy 3.2 and 3.5 are the most popular. Each boast 256k of RAM, so excess RAM usage basically doesn't matter. Also there are two great libraries provided by the teensy developer himself. Both libraries are hardware solutions and minimize CPU time significantly by using DMA, timers, etc. The first, and most comparable library, is the WS2812Serial library that uses the built in hardware serial to create up to 6 (on teensy 3.5) LED light bus channels. The second is called OctoWS2811 that uses the built in PWM hardware to drive up to 8 channels of LEDs (at the cost of losing 8 pwm pins and the associated timer). You can drive literally 1000's of LEDs with minimal CPU overhead. In my testing today I was getting something like 70 microseconds of CPU time needed to drive 150 LEDs using the WS2812Serial library. The same amount of LEDs required 4 milliseconds of CPU time using the Adafruit_Neopixel library.
@tmbarral6644 жыл бұрын
I usually see Galveston with a lot of Harleys ;) Nice view for a change :)
@cdnsoundguy6 жыл бұрын
Ben you are brilliant...I loved this video.
@darksunrise9576 жыл бұрын
I... I... I didn't know "And" and "Or" gates were actually a thing that existed. Always figured it was a super simple representation of programming, or at most an also super simplified version of combining signals using transistors or the like, but no-one used them like that IRL. This feels like everything I learned has been turned upside down XD
@jeffersonsilveira14526 жыл бұрын
Actually, inside the gates they are using transistors so you were still right even before. But it is really cool to see the simple "abstract" stuff being used iRL.
@thiagocamargoalima6 жыл бұрын
3:30 - "Gets you to the fucking moon!" 🤣🤣🤣🤣
@michaelgraff69786 жыл бұрын
Cool project. Look up what a union does when there is also a bitfield. The bits become packed. That said, it's still 24 bits per pixel, at 4 bytes each... Probably. It may only keep that around to send the pulse chain out for a single LED, and reuse them after.
@garagemonkeysan6 жыл бұрын
Nice. Thanks for filming the github and datasheets for us newbs. : )
@der.Schtefan4 жыл бұрын
Couldn't you simply multiplex the resistor or use a quad-nand at the output stage?
@poprawa5 жыл бұрын
This setup is beautiful :3
@xRawlins6 жыл бұрын
Those damn piecofarads are slippery buggers.
@devrim-oguz6 жыл бұрын
How about using I2S to drive the neopixels direclty instead of SPI or another library?
@oPossum51506 жыл бұрын
You could use a 74HC157 instead of the AND and OR gates to make it a 2 chip solution. Also could use a little 6 pin 74LVC1G157 if you don't mind SMD.
@MD_Builds6 жыл бұрын
Im certain the library could have been edited to make it far more memory efficient, Though maybe a little slower to chuck out the data, but with an ESP you'd never really notice.... However, this really reminds me I really need to start learning this level of electronics hardware. Im still pretty much a beginner...
@MrPmjg6 жыл бұрын
You miss understood the code. The library uses one uint32_t per bit, the 2 duration and 2 level are stored in a single uint32_t, and inside the struct you have the Union, but that doesn't increase the size of the struct, it just give you another way to access or copy the data without having to copy each element of the struct
@MrPmjg6 жыл бұрын
I also don't like the first library, it uses to much cpu and memory. But I would use the SPI with DMA library as it doesn't need any extra hardware (also no extra cost)
@Sembazuru6 жыл бұрын
Question about how you connected the pot. Since you are using it as a clock, would the unused pin act as an antenna and randomly adjust the bias of the RC circuit killing stability? Should you tie the unused end of the pot to the wiper to remove that? Or would that resistor (unused side of the pot) loop act as an even better antenna than the floating pin? Or are your frequencies in this circuit too low to worry about this?
@Dust5996 жыл бұрын
could you not use 2 PWM pins for signal generation? (has to be some way to sync it to the clock) this would halve your chip count.
@Galeere26 жыл бұрын
Does Anybody else have Issues with audio? Ive tried different browser and it still doenst work. Did you use some copyrighted content that my be blocked in Germany?
@Rickmakes6 жыл бұрын
Was the B17 flight with the Liberty Foundation? I climbed through one but didn’t fly on it.
@DoRC6 жыл бұрын
Fine. I bought an esp32. I hope you're happy.
@MrEdwardhartmann6 жыл бұрын
I have been using STM32 Blue Pill micros to build pinball machines with WS-2812s and SK-6812 (RGBW) leds and the library uses the 3byte per byte method to create the pulse widths for the SPI output. One thing I was wondering about your design is the stability under the harsh conditions that a pinball machine finds itself in. Since the BluePill has more than enough memory and flash to handle the 12 bytes per pixel needed for the RGBW leds and is crystal controlled, I am fairly sure it will not have a problem, but an RC circuit might not be as stable and the margin for error on the pulse widths is not that large. I think Steve Evens' post below about using an ATtiny as the converter might be a good idea since it would again give you that crystal controlled clock rates.
@warrenparsons29526 жыл бұрын
Ben, if you're looking for a nice calculator for Windows, I'd recommend SpeedCrunch. I've replaced my calc.exe and never looked back.
@Sheevlord6 жыл бұрын
Great video, as always! It would be awesome if you posted the source code and the schematic somewhere. I know it's possible to pause the video and take screenshots but it's not very convenient.
@twicethemegapower39956 жыл бұрын
I told you it would come to this. I was right, the jedi are taking over.
@ArsenTufankjian6 жыл бұрын
I don't know if it was pointed out yet but that rmt_data_t struct should only take up 32 bits. The struct has uint32_ts but the : 15 and : 1 denotes how many bits that field in the struct actually uses. So it's not 32 * 4 + 32 bits. It's 15 + 1 + 15 + 1 = 32 unioned with a 32 bit field so it only actually takes up 32 bits. Still a lot for just driving an on or off state.
@MrSapps6 жыл бұрын
64 bits cause there is an int32 after the bit fields/union
@ArsenTufankjian6 жыл бұрын
"val" is unioned with the struct. the 32 bits in "val" correspond to the bits laid out in the struct
@donmorris89726 жыл бұрын
Ben - on the revised schematic the “ONE” timer is triggered by the rising edge of the MOSI signal. On the video at about 15:50 the scope shows the MOSI signal at a solid HIGH for the entire 0xFF byte. Would not this transmit only (1) long pulse and (7) short pulses instead of the (8) long pulses expected (Only one rising edge)?
@SlaMaster5 жыл бұрын
I wish I knew this before I started my rgb project, but still great video ;)
@TheBypasser6 жыл бұрын
Quad UINTs per bit: Arduino's stupidity in a nutshell :) I usually do the alike stuff on 8-bit MCUs (as 32-bit ones are an overkill and FLASH waste there, imo), and for this thing I'd just transcode the stream on-the-fly (takes 8 SBRS-ORI paired instructions per byte if talking AVR, 24 clocks). As for the bus, just using a 7-bit UART feels like the best choice as it already has a start and stop bits (to have the leading '1' and trailing '0'), just needs an inverter which you are better to have as a line driver anyway, and will require a faster chip due to the 8-tap sampling logic. The SPI+timer for the preemptive interrupts is also a possible choice, though if lazy enough this can be done just clocking the pin manually (in the very most cases of lighting control the chip is idle most of the time anyway so this will save you the parts for no actual cost).
@KanalFrump6 жыл бұрын
Brilliant hack, Ben!
@frustro43235 жыл бұрын
By the end i was so entranced after the scope and the board I yelled "WTF!! he's got and ESP32, why he do all that?" 2 minutes later....oh.....because he could.
@LucasHartmann6 жыл бұрын
You may be able to use only a single 555 if use the data line to interfere with the capacitor charge time through a second potentiometer. You will need to ^0xFF the data, though.
@JoQeZzZ6 жыл бұрын
I never understood why people use ^0xFF over ~. Is this a personal preference thing or is there some actual difference between the two?
@LucasHartmann6 жыл бұрын
@@JoQeZzZ They are the same only for uint8_t, but I used ^0xFF because I thought it would make the idea clearer.
@JoQeZzZ6 жыл бұрын
Ah check, so it is personal preference then. Thanks man
@SeishukuS126 жыл бұрын
That's pretty awesome! Now just make some SMD PCBs and sell it as a kit! :D
@cediddi4 жыл бұрын
This is cool and all but, why nobody thought of i2c or spi drivers for neopixels? Just a dedicated chip doing all the work. We have 328p based i2c->parallel line lcd drivers, why not this?
@elmariachi51336 жыл бұрын
Hello! How do you install ESP32 on Arduino IDE? Is it just like installing some libraries? Could you make a little howto on this? Thanks :)
@TheRainHarvester6 жыл бұрын
A pinball machine is a great project for showing off your leet LEDs haxor skillz! :-) We should think of a new kind of game that doesn't take so much space. Pachinko?...But with lots of leds.
@ClokworkGremlin6 жыл бұрын
2:25 "You int32 FOUR BYTES, TIMES FOUR, FOR EVERY BIT?" Hand me my trout, someone needs to get slapped.
@johntoe61276 жыл бұрын
Keep life simple...drop in a dedicated $3 Arduino nano....code whatever you want displayed into the nano, and send it commands from the ESP32 via I2C. I did this for a robot car that was being run by a RPI. PI just sends commands to the light controller. WS2812 neo pixels were used for headlight, tail lights, turn signals, etc
@thomasvnl6 жыл бұрын
All you need now is an UberCoolBenHeckNeoPixelSPIDMA library 😂 No but seriously, nicely done Ben!
@pahvalrehljkov5 жыл бұрын
this needed to be done! more than this library just dont make sense...
@avejst6 жыл бұрын
Wow, interesting approach Thanks for sharing :-)
@UntrackedEndorphins6 жыл бұрын
Loving the new content, keep it up :)
@jostsalathe6 жыл бұрын
Wouldn't it be way more compact to use a tiny microcontroller (like e.g. an ATtiny) to convert from SPI to the WS2812B protocol? I was thinking about a way to build compact dedicated hardware to drive those LEDs that would reduce the resource requirements on the main MCU for quite a while now... Your approach probably is a lot cheaper, though, especially in larger production quantities. xD
@xMalhardeshmukh6 жыл бұрын
And KiCAD please?
@GlennPierce6 жыл бұрын
Explained really well.
@KiR_3d6 жыл бұрын
Are these Neopixels PWM controlled (driven?) _only?_ I mean about that blinking (that also is visual on cameras).
@Sembazuru6 жыл бұрын
Internally, yes. One uses them by feeding a data signal with RGB values (not in that order, looking at the color he got with FF00AA I would guess BRG). There is a small ASIC (Application Specific IC) inside each neopixel that looks at the data stream on its input pin. It sets it's own PWM drivers based off of the first 3 bytes and then sends the rest of the data stream out it's output pin. Neopixels (WS2811, WS2812, or SK6812) are known for having fairly slow internal PWM clocks. Dotstars (APA102) have a faster PWM so are more suited to PoV applications, but require 2 wires (clock and data) to drive them.
@jordanwaughtal76496 жыл бұрын
SPI Potentiometers?
@juststeve55426 жыл бұрын
Is it wrong that my urge is to just grab an ATtiny to use as the interface? Certainly a smaller chip-count, not so sure about power consumption though... But compared to a load of glowing LEDs, pretty insignificant I imagine.
@clownisius6 жыл бұрын
At tiny costs more than the logic gates, in speed and monies.
@juststeve55426 жыл бұрын
@@clownisius maybe, but you save on space, other components and you barely need a pcb... Plus I have several in a draw... Unlike 74123s 😉
@RAPXZibit6 жыл бұрын
You're wrong - they cost in china roughly the same, 5x74hc123 = 2$, 10 SMD tiny13 - 3$, DIP8 - 3$ for 5, thats first results really. and i bet anything that 1kb is enough to covert spi signal to that weird timings, just a touch of asm nops and there you go tiny can run on intenal clock (bc ws doesnt give a lot of shit about timings), and all you need to do - pipe in over spi some data, and maybe use one leg as a feedback, in case if you are faster than driver also i hate ws, if only they had a clock pin...
@mattb60016 жыл бұрын
3:29 I'm literally crying laughing right now
@TheDefpom6 жыл бұрын
Very nice, but I think I prefer a bit bang approach.
@clownisius6 жыл бұрын
You're selling a diy or pre-made kit, right? Or selling the idea to adafruit, I think they have a royalty program for circuit designs. This would save so much memory on the esp32.
@haakonness4 жыл бұрын
Ben, while you are having a stroke about the struct with the "uint32_t" for every member of the struct. You seem to miss the colons. :1 means that it only uses 1 bit in the struct. the uint32 in front is just misleading. You should read more up on structs in C :) And then "theres also a value in here?", is a UNION. Which means that you can address the same memory, only 32 bit in total for the union. Either via the struct which picks out the bits from the uint32. Or the "val" which is all the bits combined. So rmt_data_t is only 32 bits in memory.
@jonesy20096 жыл бұрын
Ben, please invest in a lapel mic. Love your content though!
@Anonymouspock6 жыл бұрын
Or if that's not an option, put a phone in your shirt pocket and record audio with that.
@dannygrob6 жыл бұрын
I think he hates them
@BenHeckHacks6 жыл бұрын
Yup. Wore them for 8 years. Never again. Don't bother trying to change my mind.
@dmaneiro886 жыл бұрын
Great video ben!
@vega12876 жыл бұрын
13:16 you could have done that lioic with just one quad nand ic
@hansdietrich836 жыл бұрын
Buolding things on protoboad is so expensive here in germany. Compared to protoboard, you can buy here, it's cheaper to order custom pcbs from JLCPCB
@tuttocrafting6 жыл бұрын
Yup, also in Italy. I started to buy pcbs directly from oshpark and now JLCPCB for prototypes.
@MrFaaaaaaaaaaaaaaaaa6 жыл бұрын
you cant buy protoboard on ebay?
@Sheevlord6 жыл бұрын
Protoboards are pretty cheap on eBay or Aliexpress.
@tuttocrafting6 жыл бұрын
If I have to wait 40 days for protoboards I prefer use that time to build a prototype on breadboard and than order a custom pcb. Same time, better result!
@Sheevlord6 жыл бұрын
@@tuttocrafting But you can buy protoboards in advance and have a bunch of them for future use.
@tigheklory6 жыл бұрын
Great video Ben! How many of those prototype boards did you buy at Radio Shack when they went out of business? I got a ton.
@BenHeckHacks6 жыл бұрын
Felix and I both bought well over 1k of them.
@tigheklory6 жыл бұрын
@@BenHeckHacks that's not enough! LOL
@SodAlmighty6 жыл бұрын
That. Was. Awesome.
@rdoetjes5 жыл бұрын
You could exchange the or and the and with one to nand chip with 4 nands. That saves a chip. The and you just need to invert with a single transistor. But, who’s counting :)
@joksanalvarado48556 жыл бұрын
Yeah, let's save all the invaluably precious memory on a chip with half a megabyte of RAM. We absolutely NEED those 4K! Chip count and BOM cost is of no consequence after all XD. Inconvenient, unnecessary, over-designed extra board which totally can be replaced with software. I love it :D
@KidCe.6 жыл бұрын
Lool, I just had almost the same idea a few weeks ago when I was thinking about how to run these on an STM32
@hansdietrich836 жыл бұрын
But does using external digital ics count as "running everything on the esp32"? Let's go _philosophical_
@Diamonddrake6 жыл бұрын
Fasted library just uses two bytes per neopixel and works on any digital pin. Why was that not a usable solution? Dma is a nice touch though