Hacker News new | past | comments | ask | show | jobs | submit login
Pixelblaze V2 – An advanced LED pattern development engine and controller (bhencke.com)
248 points by _fx6v on Aug 16, 2018 | hide | past | favorite | 78 comments



How does this compare to FastLED [1] on the same ESP8266 (and ESP32) platform? FastLED is free and open source, and support almost all LED drivers out there. Writing animations with FastLED might not be as easy as with Pixelblaze, but similarly only requires a few lines of code.

[1] https://github.com/FastLED/FastLED


Author of Pixelblaze here :) FastLED is an awesome LED driver library with colorspace and fast math functions. I highly recommend it.

Pixelblaze is that plus a web interface, compiler, IDE, and pattern library all over WiFi. You can reprogram your work remotely without cables, and all real-time, or even on a phone. I found that quickly iterating I could get a better intuitive sense of the changes I was making and get the look I was going for with less hassle.

For apa102/sk9822 LEDs, the 32-bit math engine in Pixelblaze along with the HDR driver (5 + 8 bits) lets you get better color control at lower brightness levels and smoother transitions than what's currently in FastLED. I have a number of desk and/or nightlight projects that look just as good at 2% brightness, where with 8-bit per channel color you start to get extreme posterization and color mixes start failing.

Another slight advantage is that Pixelblaze uses a pipelined driver where pixel data doesn't usually need to be buffered before being send out to the LEDs. WS2812 are particularly sensitive, so there is a buffered mode for them, but for other chipsets Pixelblaze renders the pixel data just in time and doesn't require a framebuffer.


Thanks for this reply! I was curious too, since I just spent the last few weeks working with an esp8266 on FastLED.

One type of shield/expansion I'd love to see for the Pixelblaze would be some sort of lipo charger and protection circuitry. My favorite esp8266 board has an integrated battery holder for an 18650, and I've found this to be my favorite way of powering all my projects!


LEDs draw lots of power. I just put ~~50W~~25W of SK6812s in my 3D printer enclosure. (It's overkill, but not drastically so.) So you're going to need big batteries for any LED project.

Edit: matho. 25W, not 50W.


This is a nice project made with FastLED:

https://www.youtube.com/watch?v=3zQ8qC1KQgU

Next step: Warp Core


Oh god, I think I'm in love with a lighting setup...


One is a hardware solution with a built in hosted software library, the other is pure software so I don't think you can really compare.


To use the software one you just need a $3 board and to connect three cables. Hardly rocket science.


This looks a very interesting project! One thing I couldn't tell though, could you 'stream' LED pixel values over wifi instead of generating them on the hardware?

Using the ws2812b Lights and the: https://github.com/jgarff/rpi_ws281x library, I made my LEDs pulse out an ID, which I read with a webcam, then used it to make a simple webapp, to 'paint' my Christmas tree's lights.

https://www.anfractuosity.com/projects/painting-a-christmas-...

This year I'm planning on buying some APA102 lights though, and taking it outdoors :) (So i'm looking at the IP68 versions). Ideally I want to create a 3D map of the LEDs this year, but I need to do a lot of reading on that!


You can send it patterns in the form of code, but the hardware generates them, so I don't think you need to use WiFi once you've uploaded them.


Gotcha cheers, I guess I was thinking about patterns which may be too big to fit in the ESP's memory.


Yep, the trick here is that Pixelblaze doesn't store or stream pixel data, the patterns are small fast programs that generate pixel data on the fly.

One benefit of this approach is that Wifi can drop or be unreliable without impacting animations.

This also lets them react to inputs e.g. using some of the IO or ADC, or using the sensor expansion board for audio, light, or movement (accelerometer). Each pattern is typically 5-15K (this includes compressed source, compiled, and preview animation), and there's plenty of flash to store hundreds of different patterns.


Reading the article reminded me that APA has been threatening vendors of the WS2812, claiming that it infringes one of their patents: https://hackaday.com/2018/07/31/are-patent-claims-coming-for...


Another disgusting example of patent abuse.


Funny how people always jump to conclusions when it comes down to people enforcing their patents. My understanding of this drama is, that APA is a small taiwanese startup that was actually the first company with a RGB LED with integrated driver. There are a bunch of chinese companies that are more or less copying their products and are pushing them on the market at much lower price and more agressive marketing.

It surely looks to me as if they are using patents in their originally intended way. The downside is that they are hitting vendors with a C&D instead of going to the source. But that could rooted in the difficulties surrounding the ability of a taiwanese company to sue a china mainland one...


Explain to me which parts of what you quoted deserve a patent.


If you want to get a feel for what you can make, you can browse published patterns here: https://electromage.com/patterns/

I was interviewed by embedded.fm about Pixelblaze and some other projects https://www.embedded.fm/episodes/220 Might be interesting to other folks wanting to do something similar, we cover some of the meta around making and selling a DIY thing and learning things along the way. Highly recommend the podcast as well.


What are your plans with respect to open source? I’d love to contribute to the effort!


It's something I've considered. I've released many of the components as well as the entire expansion board project https://github.com/simap/pixelblaze_sensor_board And the network sync and control app https://github.com/simap/Firestorm I'm still figuring out how to make that work commercially so that I can afford to continue development on it - ideas welcome!


https://github.com/simap/pixelblaze:

> Pixelblaze itself isn't open source (yet)


There's the ElectroDragon ESP LED Board, which does pretty much all of what the Pixelblaze does (sans FW) for much less - although the footprint is larger...

https://www.electrodragon.com/product/esp-led-strip-board/


The electrodragon board is for cheaper single colour strips (hence the large MOSFETs on the PCB) while this is for individually addressable LEDs.


This looks great. Just in time for that thing in the desert...

The pattern editing workflow seems nice. Editing C code and waiting for it to upload to an Arduino was never very fun. Being able to see a preview and quickly send to the controller over WiFi is a game changer.

One thing I like about those cheap WS2812B controllers (https://www.amazon.com/s/field-keywords=ws2812b+rf) is the RF remote. An add-on for the Pixelblaze would be neat. Just on/off, changing the brightness, switching patterns, and switching to auto cycling between patterns would be sufficient.

One more suggestion: support for 2D patterns (I guess it's just the previews that need support since you can do simple math to turn a 2D pattern into a 1D strip)

Also: open source, please :)


A couple of other controllers:

- Falcon PiHat - connect to a Pi and is able to manage 2 string of ~800 LEDs each

- EsPixelStick uses an ESP to run pixels - Can be bought on Amazon

both use a standard Ethernet protocol for sending pixel data.

I use xlights to control them but there are various controllers out there.

https://www.pixelcontroller.com/store/index.php


Thanks!


Off topic but I like that his website puts the menu where your thumb on mobile can actually reach it


I wonder why on earth mobile phones usually have controls on top of the screen, but not on the bottom. Phone call app has search bar on top. Call activity tab on top. The default sort behavior, when searching, is to put more relevant results from top to bottom. Why not bottom to top?

This design decision is especially annoying on larger screen devices.

At least invoking keypad is lower-right corner.


Because on iOS Safari any touch on the lower area reveals the autohidden bottom toolbar, so now the button has moved up, and now you have to click on it again for it to work.


This is exactly what I imagined a great LED pattern management system would be, except executed 10 times better than anything I could have built.


This is pretty great. For my larger LED projects (3000+ lights) I'm slowly moving over to something like TouchDesigner for animations and mapping, but for medium and smaller projects this is fantastic. Will be buying some!


we've had really great results with TD tops into madmapper (via syphon/spout) on some installs 6000+ too.


Yea, some combination of that for projection mapping, and perhaps sending directly out to Artnet/sACN for LEDs, servos and lasers? Still trying to piece it together as things get bigger and bigger.

My contact information is in my profile. Can you reach out? I'd love to see some of the stuff you're doing and ask a question or two.


on jobs we use pixlite controllers for controlling lots of addressables and send it artnet out of touchdesigner. no need to involve madmapper as touchdesigner handles all the mapping you could possibly want without adding the latency of piping out to madmapper. if you're just doing hobby projects you can stream serial out of touch via USB to a teensy 3.2 and control (in my experience) around 4000 LEDs at ~60fps. for lasers you should check out the etherdream, simple and works well. servo control you'll need a board but generating the software side in touchdesigner is simple.


I've got a Pixelpusher laying around that in theory drive servos, but I haven't tried it yet. Thanks for the advice!!!


I've spent the last four years learning the art and craft of LED art. I suppose I wouldn't change the way that I do things, but if I were starting out again I'd definitely use this. I can very much appreciate all of the work that this system takes off of my hands. The auto-recompile low-iteration-time is key. Very impressive!


How do you do things?


I'm working on several medium sized LED projects and am curious if anyone has a guide or links to buying WS2812 or similar strands.

I've bought a ~10 of these https://www.amazon.com/gp/product/B00ZHB9M6A/ref=oh_aui_sear... but I would love to find a slightly cheaper source. Alibaba seems to sell them at half the cost but product titles, photos, and descriptions don't ever seem to match


They have 5m spools of 60 LED/meter strips for $25 here:

https://www.ebay.com/itm/WS2812B-Strip-LED-Lights-5050-RGB-3...


I've ordered here without any problems: https://btf-lighting.aliexpress.com/store/1051119


WS2812 LED Strips on AliExpress/Alibaba/BangGood are sorta okay. I've got a few of them at home, some of them have LED's shortcircuited after they failed.

To some extend you get what you pay for but they're good enough for most purposes (and if they go too much kaputt you can replace them with another one for the same low price) and fairly bright too (about 0.25A of LED per meter and 30LED/m density)


Ebay is worth considering for these too.


ray wu on aliexpress/ebay(I think?) has a good reputation and is widely used


Random question: has anyone seen a neopixel-compatible interface LED in a tinier package, like 2mm square? Would be great for some applications.


You can get WS2811, which is the driver chip without an LED. You can hook that up to any RGB LED in any form factor. It's more expensive and requires more PCB space, but you get flexibility in LED placement.


The SK6812/APA102s come in a 2020 package now, but I haven't seen them on a strip. @wow_elec_tron on instagram has been working on his own flex pcbs for them. I think he may do a kickstarter to get some in production.


Ws28xx LEDs based projects are worth doing . Here is one of my project Alexa + Ws2812b https://m.youtube.com/watch?v=mSTAEfD8b7A

Audio Reactive lights - https://m.youtube.com/watch?v=LXyipKAUpEs


Wow this is awesome! Can you share more about how you've set this up? I'd love to read a write up if you've got one.

I've got something similar going on right now with my phillips hue strips and their new realtime api, but every strip is all the same color.


Great work, such a useful hardware and software package. A few months too late for our project, will use for next year.


> Pixelblaze was designed for APA102 LEDs (aka DotStar). These LEDs are state-of-the-art and provide rock solid updates, faster refresh cycles, and the possibility of a dynamic range well beyond 0-255

Are these still the state-of-the-art in their category?


Nice to see you on Hacker News Ben! This is Chris a.k.a. ChrisLights, I spoke to you about Sparkled on one of your videos a while back.

It's awesome to see you getting some recognition for your excellent work on Pixelblaze, keep it up!


Thanks! I'd love bring these together in some way. With the sequencer in https://github.com/sparkled/sparkled and the network sync stuff in https://github.com/simap/Firestorm we could have a really nice sequencer setup!


I'm definitely keen to collaborate once my core features are a bit more stable!

I'm working hard on a stage editor at the moment, I'll send you a video sometime soon :)



This is great. I have been planning to install some LED strips for a while now, but software has been holding me back.

This submission comes in just as some others are planning to order strips in bulk.

Thanks!


Welp, never mind, I don't see where I can download it.


If you want an interesting side project: spin a string of these addressable LEDs to make a circular display, or sweep a plane of them for a display volume.


I did just that, and it's fantastic:

https://www.makerfol.io/project/Z5XFwxh-lighttracer-a-photog...

Latest, gamma-corrected version: https://i.imgur.com/3o1jzh3.jpg

Colors: https://www.instagram.com/p/BmJ5w_nA6ey/?taken-by=eltthought...

All I need now is to take one good photo with it so I can write the post.


Hah cool :) This one was on one of my idea dump lists a couple of years ago, it's super nice to see it in real life, beautiful work!

I really like the tree sitting outside, it's like a hologram from a sf movie.


Thank you! Yes, I love the tree too, I need to shoot it again after the color correction (and experience not over exposing the image).

I'll release the code soon if you want to try it out, it's pretty much just an ESP8266 connected to a LED strip.


persistence of vision?


yes.


Great project! The hardware looks pretty simple, but the software side looks like a lot of work was put in, and it shows. Fantastic job.


Oh, I just noticed it's closed source. Too bad :/


I'm working on a project, definitely less far along, that's open-source and uses the ESP32 for additional Bluetooth functionality. There's an open-source cross-platform app for control. https://github.com/hobzcalvin/blume


Followed the same path as you. Of course the hardware is ridiculously expensive, as it happens when you spin your own stuff (needlessly).

Will have look into rendering the patterns & streaming over sACN (a DMX-derived, seemingly standard protocol mentioned in another comment).


Which do you mean is expensive? The hardware costs around $5.


The Pixelblaze guy wants 30$ for his ESP8266 board (I get mine for 2,7€/piece). A lot of that money probably doesn't go into the development of the software, but manufacturing and shipping.

I just installed an Open Pixel Control [0] server [1] (receiver) on a Wemos D1 mini and can now stream pixel values to it using python [2].

This comes with all the downsides, of course, but does add a lot of flexibility. Pixelblaze is probably very well written and has some great features (and infrastructure, I'm considering writing a parser for the patterns). However I don't want to pay a gigantic markup for a weird ESP8266 board and have to wait for it to ship to me, supporting (while sinking a large part of the money into stupid overhead) the development of software that isn't even open source.

[0]: http://openpixelcontrol.org/

[1]: https://github.com/ppelleti/esp-opc-server

[2]: https://github.com/zestyping/openpixelcontrol/tree/master/py...


Hi, Pixelblaze guy here :) I totally get where you are coming from. It would be nice if you could drop this on any old board and be up and running. Hopefully I can share some of my perspective.

Pixelblaze is a commercial venture for me, and I have to figure out how to make some $ from it to pay for my time so that I can keep making it better. I can't afford to spend the amount of time that I do on a hobby, and I don't have a sponsor.

If I figure out a way to open source it and have financial incentive to keep working on it, I'll do that. I've been carving out bits and pieces to open source that I think are useful utilities.

The hardware itself solves a few problems, such as level shifting, that I haven't see embedded on other esp8266 boards. It also provides a platform for more interesting hardware such as the (fully OSS+OSH) sensor expansion board.

On the pricing side of things, the hardware isn't a majority of the cost. OTOH I'm never going to compete with the $3 boards w/ free shipping. I don't have the volume where I can drop the per unit 'software overhead' to a level where I'm competitive with the low end Chinese markets.

The price of the product as a whole is very competitive in this market. There are cheap no-feature (completely closed) LED controllers for not much less, and high-end controllers start in the hundreds of dollars.

---------

If you want to replicate something like the language in Pixelblaze, it's not so bad. Its syntactically ES6, though without many of the dynamic features of JavaScript.

Michael Leibman (@michaelleibman) put together this codepen that emulates Pixelblaze compatibility here:

https://codepen.io/mleibman/pen/WMVbVq?editors=0010

You could use that as a starting point for some kind of RPi nodejs app that pushes pixel data to your ESPs, or perhaps port the functions (they aren't rocket science) to Python.

I toyed with the idea, but realized I have too many hobbies already :)


Ah, that's what you meant. Yes, I definitely agree.


Just in time for Burning Man, working on my bikes today - and I've got a TON of WS2812's - definitely gonna give this a shot.


Curious if it can accept DMX in any form? (Though iirc DMX only goes to 16bit color)


There are DMX led strips, but they are more expensive and more fragile because they have more components on the strip.


Can you network multiple boards together to drive larger LED arrays in sync?


https://github.com/simap/Firestorm

It's new, I haven't had a chance to update website/videos. Syncs animation timebases and lets you push sticky commands to multiple Pixelblaze on a network.


Since this runs on ESP8266, could be done easily I think


ugh... blocking fonts makes the content invisible.


I’ve been using plain Arduino and FastLED to drive 300 individually addressable LEDs as a Christmas ornament for the past 3 years. Super simple, and my kid can write his own patterns in C. Nowhere near this level of effort though.


Nice. After defcon I've been thinking about putting together some LED screens for shits and giggles.

I'm normally not big on LEDs but some of those patterns were pretty mind bending




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: