1 week ago

Cube:Bit review

Inspired by the Cubert project, this NeoPixel matrix can produce impressive 3D visual effects.

Coming in three main size options – 3×3×3, 4×4×4, and 5×5×5 – the Cube:Bit is a 3D matrix of RGB NeoPixels. 4tronix tells us that the product was inspired by Lorraine Underwood’s Cubert project, although the Cube:Bit is a whole lot smaller than that giant creation. The 5×5×5 model (£90 / $98) we tested measures 89 mm along each side.

First, however, you need to put it together, as it comes in 2D square ‘slices’ (supplied in a posh-looking jewellery-style box). Assembly is quick and fairly simple, following the online guide. Each slice is mounted on the one below using the supplied metal stand-off pillars and screws. You just need to be careful to flip each alternate slice (helpfully, they’re labelled A-side and B-side) and make sure the 5 V and GND corners match, while the lower slice’s DOUT (data out) connects to the DIN on the one above. Only three pillars are used to connect each slice, since you don’t want to connect the lower slice’s DIN to the upper one’s DOUT, so those corners have alternating missing pillars as you build up. Even so, the end result is a solid-feeling cube that you can carry around and even turn over in your hand without any worries about it falling apart.

Power and control

While it’s possible to power and control the Cube:Bit manually – by connecting the metal stand-off ‘legs’ of the bottom slice to a 5 V power supply, ground, and Raspberry Pi or microcontroller, using crocodile clips – it’s a lot easier to simply mount it (using stand-offs) on the optional Cube:Bit Base (£12 / $13). The latter features four 5 V power connection options: micro USB, 2.1 mm DC jack, GVS pins, and crocodile clip positions.

This will in turn power a connected Raspberry Pi or other microcontroller. Along with a micro:bit slot, there’s a female GPIO header for Raspberry Pi. Note, however, that the nearby metal pillars prevent a full-size Pi model being mounted directly, so you’ll need to use a ribbon cable (or jumper wires to 5 V, GND, and GPIO 18 – the only pins used). A Pi Zero, however, can be mounted directly on the Cube:Bit Base header, albeit with the Zero’s board sticking out of the side.

The family of Cube:Bits, from 3×3×3 to 5×5×5

Snaking pixels

In essence, the Cube:Bit is a string of NeoPixels, so you can control them with any standard WS2812B compatible code. On the Pi, this necessitates installing the rpi_ws281x Python library – directly or by using the curl script for Pimoroni’s Unicorn HAT, for example.

Since the ‘string’ of NeoPixels snakes up and down each slice before connecting to the one above, this would make controlling them manually rather mind-boggling. Fortunately, 4tronix has created a Python library which can be downloaded with a one-line Terminal command. This maps the pixels logically so that you can easily address them with x, y, and z coordinates. So it might even be a useful aid for educators teaching 3D geometry.

At the time of writing, the Python library only came with a couple of code examples: test.py for a rainbow effect and individual pixel test, and purpleRain.py which sees purple ‘raindrops’ falling from the top to the bottom of the cube. The micro:bit has a larger range of MakeCode examples to show what Cube:Bit can do, including effects based on rotating the cube (possibly achievable using an Enviro pHAT or similar on the Pi).

We also thought of using it as a fancy VU meter for music. Going one step further, Robin Newman has created a project with the Cube:Bit LEDs controlled from Sonic Pi using OSC messages (magpi.cc/RkxuDU) and even via a smartphone app. So there are plenty of possibilities.



Easy to assemble, if not quite so simple to program, the Cube:Bit is pricey for the larger sizes – with the Base costing extra – but can produce some unique 3D visuals.