Wow, interesting challenge.
First, about the number of analog input pins; The original v3 standard spec, under Features & Specifications, listed 9 GPIOs, 5 of which could be used as an A-to-D. This was a mistake as I believe only one (IO33) was actually available for A-to-D. The current listing lists 1 A-to-D pin, however, in November @wizard announced the v3.5 hardware, which restored access to 4 more analog inputs, for 5 total (edited for clarity based on Wizard’s clarification below). I can confirm the most recent batch I ordered was shipping HW v3.6 with all the extra breakout pads on the bottom.
With the Sensor Board, you’d have all the inputs you need: 5 analog there, plus 15 GPIO total on currently-shipping hardware v3.6.
Some other ideas and options for getting lots more IO into a Pixelblaze:
- Use the open hardware and software of the Sensor Expansion Board to make a version that could fill up the 32 audio frequency bin slots with analog sensor values instead. There’s a great recent post from ZRanger1 about how to get started on custom board stuff (he makes a custom output expander in that post, but it’s also applicable to a custom sensor board).
- You could, in-theory, multiplex multiple sensor expansion boards into a single Pixelblaze, but you’d need to be careful with timing. The sensor data is refreshed 40 times per second, and while I’ve had no problems or crashes hot-plugging sensor boards, you’d probably want to wait > 1/40th of a second after switching boards to trust the data. Mux chips are cheap.
- Many different on-off switches can be combined and read simultaneously off a single analog input with a specific resistor enabled by each switch. Imagine a voltage divider where three switches add together combinations of three different values: 1KΩ, 500Ω, and 250Ω. You can probably do something similar with potentiometers, but I imagine it becomes very sensitive to temperature drift and the A/D resolution.
- You might just make a separate A/D board with many inputs and focus on getting the data into Pixelblaze via websockets over WiFi.