Pixelblaze for synced wearables / Field Feedback

I have built this year a few wearables (2 handfans and a scarf) powered each by Pixelblaze + Sensor Board. I had the opportunity to use it extensively 2 of them a couple weeks ago during a 4 day festival, to see how convenient they are to use in a rave environnement. I can’t easily upload videos here so here is a photo !

It worked in several configurations:

  • a scarf on pretty much most of the time on me (made of a single pebble LED line powered by a powerbank)
  • 2 handfans (as on the photo) being turned on and off depending of the stage, synchronized to the scarf (to use the same patterns), or standalone if used by one of my friends at a different stage.

I am globally extremely satisfied with Pixelblaze performance on it, however I noted some points I’d like to share with with whoever is interested. That’s what I will focus on.

### PROS

  • PB works well and is reliable. No crashes, patterns run as intended, zero glitches or frame rate drops.
  • The fluidity of patterns is unmatched. It looks amazing and super smooth. Driving less than 200 LED with it is obviously piece of cake for an esp32 but still this should be noted, especially vs WLED for example.
  • microphone works amazingly well and the sound reactivity is very precise whatever the input level (close to the speakers or even at home).

### CONS

1- Wifi connectivity is a nightmare: I said it
Most of my routine was to get my Android phone out, connect to wifi of the AP “master” (the scarf) and change/modify the running pattern/luminosity. Once done, if you simply turn off the phone screen to lock the phone before putting it back in your pocket, next time you try to connect to the PB it will not load the page (unless you do it only a few seconds after). Impossible even if you try to refresh, close the browser app, anything. The only way to solve it is to disconnect manually from the wifi then reconnect manually, which is annoying.
Also, as long as the phone is connected to the Pixelblaze, I don’t have internet which is not great in a festival environnement to communicate with my friends. Bluetooth control would be a massive improvement.

2- SYNC ISSUES
I connected the fans to the scarf in client mode (scarf as leader being in AP mode and fans as followers in client mode):
Sync works great but I saw a few very annoying problems:

  • impossible to modify the luminosity separately for each wearable, especially if you want the leader to be at lower luminosity than the followers: we should be able to separate this if needed
  • GPIO button press on the leader does not pass to followers which results in de-sync if you use buttons on the leader (or a follower) to adjust hue/luminosity for example. It would be great to be able to choose
  • followers do NOT revert to “solo mode” if the leader is off (my scarf ran out of battery before the fans) making impossible to change the pattern on followers without recharging the scarf.
    Worse: since they try to connect to the client, you can’t access them without resetting the wifi settings with a long press on the PB button.
    EVEN WORSE: even after resetting and setting it back to AP, the interface shows as “follower” (only “view” instead of “Patterns” and does NOT allow to change the PB back to “solo/leader” in settings (this setting does not appear) to change patterns manually. Absolute nightmare to handle. I believe it’s a bug. The only way to make the option appear again is to use /?setup in the address (then you still won’t be able to select patterns but the option to revert back to solo mode (or follow a new PB) will come back).
  • So I’d strongly recommend the only “viable” solution which is to create an access point on the phone and connect all pixelblazes to it as clients. But be ready to bring a powerbank for your phone as it will drain the battery very fast.

3- Li-ion/Li-po management: not made for wearables
PB does not allow VCC directly on Lithium battery output (3.7V): as soon as you connect a load, even a small one it tends to reboot several times in a row then start in safe mode. Not stable.
It means you have to connect it behind a boost circuit 3.7V to 5V. Problem is that you can’t limit the max load like in WLED (due to the fact PB does pipeline rendering) so it often happens my LED pull too much and trigger the BMS, turning off everything. Only workaround is to limit overall brightness, which makes me lose a lot of luminosity dynamics even when I have only a couple LED on.
It would be great to select pipeline rendering or not (even maybe if it has to be a separate firmware) which could allow an option to limit current theoretically like in WLED.

4- END USER/COMMERCIAL PROTECTION
I have 2 issues with using Pixelblaze for products that are designed to be used by people who are not necessarily familiar with PB or programming:

  • pattern selection is not super intuitive: activating easy mode to restrict editing or deleting of patterns is great but then user can’t edit their own playlists
  • no way to protect code efficiently even with “easy mode” (anyone doing a quick search can find the way to remove the easy mode) to avoid someone to extract then copy the contents of a pattern to re-use on another Pixelblaze. I’d like to be able to fully lock a Pixelblaze, means the only way to unlock it would be to wipe whatever patterns/mappings are on it. Without this it is very hard to think about selling products powered by Pixelblaze (I’m not there yet but might get to it).

5- VARIABLES SHARE BETWEEN PATTERNS
I have a couple buttons on GPIO to adjust luminosity or hue in all my patterns. But if I reduce luminosity in a pattern for example following a button press, then I open a new pattern, luminosity or hue setting will not carry over.
Only workaround is to build a massive unique pattern containing all the patterns I want to run.
Would be great to be able to r/w a small “memory” from any pattern. I think Wled uses pallets as a workaround for this.

Again these are "field observations"in wearable use, but there might be already existing ways to tackle these issues, that’s why i post here also. I’ll be happy to answer questions for people in the same situation !

Thank you !
With this, i’m off to the shop to buy a bunch more, i’m impatient to try the new Pico !!! :heart_eyes:

7 Likes

Hello ! I’m bumping up this topic to raise a question if anyone had any luck with it:

  • Pixelblaze stuck in sync/follow mode:
    When starting this PB, it will always look for the leader I set up during my festival. The pattern tab is replaced by a “view” tab.
    There is no option to revert back to solo in settings, I had to open the /?setup menu to finally see the option appear. I think it’s a bug, we should be able to revert back without the secret menu. Note that this Pixelblaze was initially added as follower because I connected it to another Pixelblaze (leader) as client then clicked “add follower” in the leader menu.

Hi @hololit ,
Thank you for all the feedback! Overall I agree, and those are things I want to address.

This is where the max brightness setting can come in handy. I use it to both control max current, and to match relative brightness with the other pieces. Then the brightness slider on the leader will scale everything together. Do you find yourself needing to control a follower brightness independently while running?

Which version were you running? The latest version should do that - either after 1 minute automatically, or after a few seconds and you start using the button on a follower.

You don’t see a “Group Sync Mode” in settings?

Did you have Simple UI mode on in the Advanced Settings tab? That might be what is biting you.

This is not necessarily the case. Pixelblaze does work well at most lithium battery voltages directly, it doesn’t require 5V. However, if your battery, wiring, or connectors have a high resistance, it’s possible that the current draw from the LEDs is causing the voltage to drop below a usable voltage. Using batteries with a larger C rating (a multiple of capacity, so a 2C battery with 2000mAh capcity is only rated to output 4A), thicker wiring, and connectors rated for high current should allow you to run a Pixelblaze directly from a lithium battery and work for about 80-90% of the usable capacity of the battery before the voltage drops below the brownout voltage of the Pixelblaze.

This might be a mistake on my part, I don’t think there’s any harm in keeping playlist functionality.

Yes, this is true, the Simple UI Mode really just keeps end users from accidentally shooting themselves in the foot and wasn’t intended to secure it against exfiltration. If you are interested in using this for commercial applications where this is important, I’d be happy to chat about how we can make that happen.

This is definitely on the list. The idea is to allow for a global module, a set of exposed variables and/or functions that could be used by patterns. The global module would persist through pattern changes, and could augment or control aspects of the pattern. I think it would make a lot of sense for these to offer up their own controls, which could then be used in patterns as well.

Somewhat related, I’m looking at possible APIs for providing synced data between the leader and followers. That would let you implement GPIO interfaces on the leader (or possibly another follower acting as a remote control) and send that state to the group.

I do not see this on followers, but I suspect that your follower might have the Simple UI Mode enabled which is hiding that drop down and group sync settings. It does look like some of the follower/group related controls may show even in Simple UI Mode, but that is not intentional, and would be fixed.

If you are selling configurable sets of devices I could see that you would need both a way to lock down the UI while still allowing for follower configuration.

1 Like

Thank you very much for your answer @wizard .

This is where the max brightness setting can come in handy. I use it to both control max current, and to match relative brightness with the other pieces. Then the brightness slider on the leader will scale everything together. Do you find yourself needing to control a follower brightness independently while running?

I will take myself as an example:

  • the scarf is using super low efficiency underfed pebble leds half hidden by the fabric: i want it to run pretty much all the time between 50% luminosity (in the crowd) and 100% (when moving between stages)
  • the fans are SUPER BRIGHT and have limited battery. I use them between 5% and 10% in the crowd as it’s right in the face of people around me, but i want to exceptionally push them to 40-60% for drops or when some flow dancer on the podium gets hang of it. between stages, down 10-15% is enough to save battery.

As you can see i have different scenarios. The option to “override” the luminosity sync between synced devices and change it independently would be welcome here. I’m also particularly thinking about this for “home” applications I’m now working on where i might want to adjust a bunch of devices separately while enjoying the color/pattern sync. I can deal with this with code and add a “pattern” luminosity slider, but this is overkill in my opinion.
My suggestion: a slider for each following device on the leader + a checkbox to enable sync to master or not.

Which version were you running? The latest version should do that - either after 1 minute automatically, or after a few seconds and you start using the button on a follower.

V3.51. Reverts back to a 'local" pattern indeed after 1min, but stays in “View” mode and does not show the “Patterns” tab so i can’t change the pattern through the app. I tried refreshing and rebooting, and waiting several minutes, no change. Only way is to change the option “Group Sync Mode” from “Follow: Offline” to “Solo/Leader”.

the interface shows as “follower” (only “view” instead of “Patterns” and does NOT allow to change the PB back to “solo/leader” in settings (this setting does not appear)

This issue seems to be solved in V3.51. I can always revert. I need to try when the follower is connected as “client” to the leader to make sure but when all are on the same AP, no problem anymore.

If you are interested in using this for commercial applications where this is important, I’d be happy to chat about how we can make that happen.

Stellar support once again. Let me prepare properly and I’ll get back to you with the details when i’m ready so i make sure i don’t make you lose your time.

It does look like some of the follower/group related controls may show even in Simple UI Mode, but that is not intentional, and would be fixed.

This is actually great to be able to configure followers. Imagine a line of “home” lights powered by Pixelblaze: my goal is just to prevent copy/extraction/modification of code. The rest can stay.

Hope it helps ! If you need any kind of tests or additional info let me know !
And happy new year !

1 Like