Change Patterns on multiple PB without firestorm

Ok so on the LED chain jewel bikini piece, it looks amazing synced across the top and bottom, but telling a customer that to change patterns they have to open the discovery service, click to the top, change pattern, go back to discovery service, click the bottom, change pattern, it’s more than they can/want to do. Also telling them they just have to wear a fanny pack with a raspberry pi for firestorm and battery just kind of ruins the look of the outfit.
So my feature request is just when one PB is in AP mode (parent) and another PB is joined to that network (child) have the ability to set a playlist and when the parent changes pattern the child should match.

It could even require having only the same patterns on both in the same order, I can set that up. I could even justify using a third PBV3Pico that was a dedicated firestorm server to offload the work load from the ones running the LEDs, but the PiZero is a little too big for my use case. Is there a smaller Pi I don’t know about?

I am currently considering building a separate ESP32 with wifi to join the parent AP network that just sends pattern change commands to both PBs over Wifi if that’s even possible, so I’m open to any and all suggestions.

1 Like

I would also love to see this feature! I currently use a separate ESP32 running some code in AP mode that syncs all my PBs, so that’s definitely possible, but it would be wonderful for that functionality to be built-in.

1 Like

Hey Irwin do you have that posted on github somewhere? I’d love to use it!

1 Like

My code’s in a bit of a messy state right now as I’m doing some cleanup and refactoring, and it’s not on Github yet, but I should have something I can pass along to you next week. As a heads up, it runs on an Adafruit Feather Huzzah32, and is a Visual Studio / Visual Micro project written in C, but you should be able to use the source with any Arduino C development environment. I’ll keep you posted here.

1 Like

@Sunandmooncouture ,
I totally get it. And I’ve heard the same. I’ve been thinking about how best to do this, and your post gave me an idea for something that might be way simpler than what I was coming up with!

Imagine a playlist mode “Sync position from network.” Maybe a checkbox, it might work along side other playlist modes/states.

Any time a Pixelblaze switched playlist items, it would send out the new playlist position index. Any other PB on the network that sees that message with the feature enabled would switch to that position in its playlist, whatever it was. Playlist switches from these network messages wouldn’t send out the “new playlist position” message, but timers, buttons, and clicks in the app would. This wouldn’t require a PB in AP mode, nor Firestorm.

With that setup enabled on all PBs, you could use the button to advance the playlists from any PB. You could even set up a PB just as a remote control if you wanted to.

Perhaps a feature adding to that, you could select a list of approved playlist sync source PBs, or multiple zones of playlist synced PBs for cases where you wanted separate synced playlists on the same network.

The only awkward parts I can think of is if you have playlists with dissimilar sizes, or playlist timers in multiple playlists. You’d probably want the same number of items, otherwise a synced PB with fewer would just stay put. With multiple timers, the faster one would win, and if 2 or more switched at the same time it might not be too bad since they should all end up at the same new position.

I still want to sync patterns & code automatically, but I think the above could get what you are looking for a bit more easily, and wouldn’t be throw-away code/feature either.

@Irwin, I’d also be curious if you went with ID based or name based syncing?

2 Likes

@wizard I initially used purely ID based syncing, but soon discovered that the same pattern could have different IDs between different PBs (although I have no idea why). I maintain a pattern ID/name list for each connected PB, so what I do now is select a pattern from the lowest indexed PB, then search for the pattern name amongst the other connected PBs and send out the corresponding pattern ID for each PB using individual activeProgramId commands. One of the assumptions I currently make is that every PB has the same patterns loaded in it, but if not, some PBs will just appear not to sync.

2 Likes

This would be a game changer if we can really get this working. Love all your ideas!
I love the sync position from network, but maybe have a sync group text field so we can partition different groups within a network. I have a ton of these PBs on my home network, and want to sync just a few specific to one project separate from other projects. I guess I can use one PB in AP mode to get the same effect, but it’s easier if they’re all on my home network so I can work on them from any PC and still have internet.
For the UI, you’d need a checkbox to enable sync group mode, a drop down for master/slave, and (if master) a text box to type the sync group name or (if slave) a drop down to choose the sync group.

“multiple zones of playlist synced PBs” - Yes please, exactly this.

“playlists with dissimilar sizes, or playlist timers in multiple playlists”
I can take responsibility for making sure each PB has the same playlists with same pattern names. playlist timers should be ignored on slave units.
I’m fine with needing a one-time setup session in firestorm to replicate patterns across PBs in a group or whatever settings as long as it all works offline and without firestorm later.

I guess for groups to sync in the field (e.g. in the desert with no internet) I definitely need one PB in AP mode anyways, so that may solve the master/slave problem.

Honestly multiple sync groups is just a nice to have, if it its faster/easier to do network-wide then I can and will use one in AP mode anyways. I’m trying to request the least work on your side. Let me know how I can help with testing or anything else.

1 Like

Hi team,
Any update on this feature request to sync 2 PBs w/o firestorm?

Also, I thought I read somewhere that if one PB was in AP mode, and another PB joined that network, that if they both were set to the same patterns then they would sync timers? I have one in AP mode and one joined, and running the XY 2D sweep, but they are out of sync.
Thanks in advance!

@Sunandmooncouture ,
Be sure to run the latest. There was an update to fix sync when using 2 PBs.

Nothing yet on synced playlists just yet. It’s getting closer to the top of the list for sure.

Two years later, a housekeeping note for people who find this topic via forum search:

This can now be accomplished without a separate computer running Firestorm. The new sync feature built into firmware v3.40 and above allows a single Pixelblaze to sync patterns and playlists across multiple Pixelblaze (as well as to send sensor board data wirelessly to other Pixelblazes).

See how to use the sync feature in the announcement.