Is there anyway to have one pixelblaze simply mirror or send the same pattern playing to another on the same wifi … That is without having to run the raspi controller or implementing my own webhooks calls to both pixelblaze boards?
Or have an expander board address 0 on one PB, then expander board address 1 via wireless that’s attached to another PB?
Reason being it’s all the rage this year to put Christmas light tunnels “arches” over ones sidewalk, and the neighbor and I want to sync our setups without having cables run across one of our driveways.
Perhaps a strange use case, but I thought I’d ask.
Maybe running one long 2 conductor cable to an expander board in the neighbors garage would accomplish it? He would have his own power supply but the data and ground would be connected back to my PB with my own expander board for my arches???
Best: Run Firestorm, or @zranger1’s new code to control both
Far less good: Use an expander board to run a serial connection. Technically, you could probably go wireless but not without trouble and work.
As discussed in a few threads now, there isn’t really a good way to push pixel data to a (second) PB. Yet. (@zranger1’s code is limited in speed) You can control multiple boards wirelessly and tell them to run patterns. You can even use a wired connection to sync two boards to run as close to synced as possible. (Or use Firestorm to do so wirelessly).
Having one Pixelblaze publish sensor data (or other variables!) is definitely on the roadmap. Until then, you can getVars from the one with the sensor board, assuming it runs a pattern that has exports for all of the sensor data in question, and setVars to the other Pixelblazes.
Apr '23 edit: Now you can use the new Sync feature to do all this in a much simpler way. It lets you code in one place, share sensor board data with many other Pixelblazes, and synchronizes the timebases.
Without Firestorm, if a Pixelblaze joins the AP network of another Pixelblaze, animation timebases will synchronize. It doesn’t switch patterns too, you’d have to load each Pixelblaze’s IP, but a timer could be used to make a multi-pattern pattern with synchronization.
For example, if you took one of the multi-mode examples, you can make it synchronize modes using time():
var minutesPer = 1 //run each pattern for a minute
var numModes = 5 //use up to 5 modes
mode = floor(time(numModes * minutesPer * .915) * numModes)
What would you say the max distance I could extend the data + ground lines to a second expansion board??? Would I need to ensure both expansion boards have the same length of 80ft cable before connected to the PB for the sake of timing?
Would I have any issues with a second expansion board being run from a different 5v supply as the PB and the first expansion board? Just the data/ground lines would be tied together.
Hi @jpm
My misunderstanding. Both are expansion boards and I missed the context. I must have music reactive Christmas light shows on the mind haha.
There’s no resistor modification necessary but I wouldn’t recommend a direct wired solution with your setup (80ft 2 houses power). It’s quite long and thinking about it a bit more, bridging GND between 2 houses power could make a massive ground loop.
An isolated differential signal would work.
It may be possible to use a wireless serial relay, as long as it can handle 2mbps.
I saw a project to use a pair of esp8266 modules to do something like that a while back.
Still, the mode trick above and just a pair of PBs could get you a synchronized display.
OSC pub/sub instead of WebSocket put/get would make this kind of stuff dreamy and uncomplicated. I made an OSC-WS proxy to control my PixelBlaze from an OSC source but would love for it flow the other way.