PB paired with an OLED screen and rotary encoder

Hello, I’m not the most experienced, but definitely not a newbie, and I have a project that is going to be using probably four pixel blaze controllers to control different elements on one sign. I am making this for concerts/shows so being able to live change the effects without having to reload, Pages would be a big plus. I’ve toyed around with an ESP 32 chip but I am curious if there is any one who has hacked together a pixel blaze, or multiple pixel blazers with an OLED display and rotary encoder. It would be convenient and ideal to have a physical controller we can have at the venue so we don’t have to count on Wi-Fi. I also have not been able to successfully get fire storm to work properly on my MacBook.
Any ideas on how to get a mini OLED display to populate pixel blaze information?

There isn’t enough low-level hardware access exposed to do an OLED screen directly with Pixelblaze easily, but it would be possible to use an ESP32 dev board with Arduino / MicroPython / CircuitPython or something to run the OLED and handle inputs, then use WiFi to talk to the PBs.

I’m not familiar enough with it to know how easily it could be ported, but there is a great Python Pixelblaze client available. pixelblaze-client · PyPI It’s written by some awesome Pixelblazers that also frequent the forum, hopefully they can inform on the feasibility of running it on circuit / micro python.

@zranger1 , @pixie , have either of you tried or thought about running the client on an embedded python?

If not python, it’s certainly possible using Arduino or the ESP IDF with websockets.

I haven’t tried it, but I don’t think any of the ESP ports of Python would be able to use the library as-is; they’re based on very old versions of the Python language (for instance, MicroPython is based on Python 3.4, which was retired in 2017) and only provide a subset of the full-size language and libraries.

But there’s a good chance it would work on a Raspberry Pi; the latest version of Raspberry Pi OS is based on Debian 11 and comes with Python 3.9. The Pi Zero 2 W isn’t much bigger than an ESP32 development board, and has lots more IO (and drivers support) for displays, including little 128x32px OLED screens that are small enough to mount inside a standard Zero case.

EDIT: I just ran a quick test and the library DOES seem to work on a Pi Zero W with a recent OS (Linux pizero 5.15.78+, armv6l GNU/Linux).

1 Like

I actually looked at doing this at one point, as well as the possibility of making an ESP32 Firestorm with Moddable. Language versions and the need to port external libraries make either a considerable amount of work.

So, I’m with @pixie on the Raspberry Pi for jobs like this. You could use pixelblaze-client to manage the Pixelblazes over wifi, and something like WiringPi to handle physical controls.