New cube based project (lucentcube.com), let me know your thoughts!

Hi all,

Apologies for the shameless plug, but it’s been some time since I first saw these LED cubes and since then I’ve been working on little else! It’s been a labour of love but have redeveloped my own version to the point where I’m ready to get it out there. It uses a Compute Module (CM4) with a custom carrier board active controller with some extra bits, chemcast diffusers, and mobile control, etc.

Anyway really excited to here what the community thinks of it! https://lucentcube.com

kind regards,

Ross

1 Like

Very impressive.
What platform does this run on - Raspberry Pi?

Hi!

Thank you! Yes, at its heart there’s a Raspberry Pi, but it’s a compute module (CM4) instead of a regular Pi, these boards are basically a SoM (system on module), same chips etc as the alternative (CM4 is basically the same as a Pi 4) but the CM4 doesn’t have any ports or even an SD card slot. You have to design a carrier board and have it fabricated which is more of a faff for most, but if you want something completely custom then this is the best approach as you can link in a small, tidy way, even including USB which you can wire up on-board to something rather than with say a Pi 4 where you have to plug something into the USB port.

Ross

Very cool looking. I’d be interested in getting one. I clicked notify me, but it keeps saying “try again”. Are you able to add me manually ? marc at merlins.org

Hi Marc,

Thanks so much for letting me know, that’s really bad as I’ve probably missed some signups! Never mind, don’t worry I won’t miss you - I’ll add you personally! (just tested it, works now, have added you)

I’ll try to work in some more content in the site as things have moved on a bit more since then, although a bit gimmicky I did get a few emulators (great for amiga demos), and casting from YT, Spotify and AirPlay - the companion app is really slick too, need to record some more bits (just from a personal level these renders are good, and driven with the cube shadow canvas, but as we all know these panels are soooo much better in real life).

I’ll keep you updated, thanks again Marc - I might have been silently losing signups for days without your message!

Ross

1 Like

Looks cool!

How does the phone app communicate with the device? Bluetooth? WiFi?

Both, BT for the handshake\discovery, then wifi for performance. I’ll probably add a BT fall-back for people that don’t have wifi in their location at that point, but the game controller stuff needs websockets for the performance and BT is notoriously flakey, although the streaming works fine over it, but that’s a different protocol. :slight_smile:

Can you elaborate any more? This is the kind of thing I wanted for my t-shirt.

Currently, I run a wifi hotspot on the pi, meaning that when I want to make changes to the t-shirt while out, I have to connect my phone to the pi hotspot, and lose internet on my phone. It’s reliable cos the pi runs DNS, so I can connect to a DNS name from the phone.

Yeah I could run a hotspot on the phone, and then set the pi up to connect to that, but android phones do not run DNS, so I would need some way to know the IP that the phone assigned to the t-shirt.

Was just wondering if you have worked out some way to solve this so that the phone can always find the pi.

Of course! It’s my favourite subject… :grinning_face:

The Pi runs a BLE server which is publishing\broadcasting itself, the companion phone app scans for it and through certain characteristics allows bidirectional communications. In this context the idea is when the cube is powered up it’s not connected to wifi, so BT is all you have, the phone scans, detects the published cube, then posts characteristics to set the wifi to what the user enters in the phone.

You might get more mileage removing wifi from the equation completely and posting characteristics reliably to the Pi to control it rather than using wifi. It’s a bit more involved (i.e. get Claude to build the transport interaction) than just posting API calls to a http server over wifi, but saves the wifi hotspot handshaking. Also BT is really basic and you could build a really tiny remote with an ESP32 or Pico to scroll through animations or modes if you didn’t want to break out the phone (but the phone app would work fine), or jump to specific patterns for your t-shirt. Although I’ve done little with Android Studio, if you use Android you could deploy that almost immediately (the iOS certificate requirement is a pain), I’ve not used AS as I’m stuck in the Delphi ecosystem you’ll be able to build it no problem, happy to help Clive.

Did you end up getting the graphic equaliser running on the t-shirt? Reason I ask is I generated 200+ visualisations for the cube and some of them are breathtaking, things like quad equalisers (all four edges flowing inward) or chromatic glitch equaliser are totally mesmerising, you’d be a god! :100:

The Pi is solely controlled by a web interface - this allows you to upload new animations, define playlists, control what the buttons do etc. I would rather not change this. BT alone is not gonna cut it methinks, I think the bandwidth will be too low for file transfers. It’s super simple to work with because I use C# Blazor - I don’t have to write “Client Side” and “Server Side” code (with eg JSON or XML to communicate between the front and back end code), I can directly reference back-end C# objects from within the client-side HTML. There’s basically zero Javascript.

So what I was thinking was, some kind of companion app for my phone whereby I pair the phone to the Pi via BT, and then in the phone app there is a button which queries the Pi via BT, finds out what IP it got from the phone, and open a web browser to that IP.

One concern I have with that though is if the phone hotspot goes down, or if I start the pi without the hotspot on my phone being up, the Pi might not connect to the hotspot. So maybe I would need to put something into the Pi code such that when the phone requests the IP via BT, the Pi code forces the Pi to connect to the hotspot. Maybe as a fallback, if it does fail to connect, it could open up it’s own hotspot, so the phone can connect to it as I currently do. I may have to do something like this anyway, cos I am not wholly sure how much power it would drain if the Pi is constantly polling WiFi to see if it can find the phone hotspot.

Actually, I just did a chat with AI, and it seems like it is maybe feasible to set up a Bluetooth “PAN” on the Pi, and HTTP data can be routed over that, whilst still preserving the hotspot option as a backup.

No, not yet. I would require a fair amount of re-factoring, as everything is currently geared around playing animations using the led-image-viewer API. I would need to add some way of switching between the existing playback mode and a direct control mode. I usually have 2+ weeks off around xmas, so I may well have a stab at it then. I also want to add a way to dynamically display stuff (Type text, overlay it onto an animated background etc), so I guess that would use a similar change.

Ah yes file transfers, makes sense, I think a hybrid of BT and wifi, not heard of PAN tho. Cool it’s C# based, been a while since I’ve done anything in that space, always makes me smile when I think about C# as I think of Anders Hejlsberg and that offer from MS to come on board, good times!

Having done C++ and Delphi for years it was soooo hard asking Claude to start working in MY space! But the loop is key, if the desktop (Claude Code, Codex, etc) can access the Pi, and access what the panels output (get it to build the shadow canvas) the build should be straightforward. Get it to build the BT transport layer, and if it’s hooked into VScode too then it’ll be able to automatically test the BT and Wifi hybrid functionality in that closed loop.

BT is a notoriously faffy endeavour, especially with the Pi, the bluez library has idiosyncrasies that would send a developer insane, I tried it, got the framework working with basic characteristics but it wasn’t rock solid until Claude went through many iterations and refined the Pi config on the publishing and tweaked the power saving settings, and the manner in which the client side was interacting, and in a few hours it was solid, and I couldn’t have done it anywhere near that time frame!

Sorry I do know I sound like a Claude ad and it makes me feel dirty bigging it up, but the truth is it smashed it. Chat is great, but Claude Code or any desktop integrated AI model which can established SSH sessions and interact with your hardware is a game changer.

The audio reactive stuff, modifications to the image viewer or a complete rewrite which is the direction I went in, coupled with any framework changes you want to do, that’s basically an evenings work, I sh!t you not.

One thing I wish I knew at the start of my project was get hold of Claude Max x5, close the debug loop, and throw everything at it on Opus\Extra, you will not be disappointed. Even for one month of £90 you’ll get everything you want done, and more.

The benefits of rewriting the led-image-viewer was really about storing the bitmap data not in its image format but in an RGB format, I thought this would kill performance but it doesn’t, and lets you adjust brightness, cross fade animations between one another, to influence the animations with audio or overlay audio visualisations on top of animations. I blew past what the PiZ2 could do but the Pi4 handles it all and then some.

Sorry Clive for another book, I get excited about this stuff because it’s absolutely incredible, but take everything with a pinch of salt, it requires huge trust and the hardest thing for me was letting go of the development control which will upset a lot of people they just won’t do it, and as good a dev as I think I am, even with the shortcomings of AI which can be overcome with an iterative approach the net result is always better.

Ross

It is so impressive I upped my ChatGPT subscription to the 5x $100 one and go crazy for a couple of months with projects. I also sound like an advert.

It is hard to use the 5x but I’ve just been going lots on Sol Ultra.

OpenAI also reset the limits from time to time and what I like is that you can bank the resets so when you are nearing the limit, you can use the free resets.

Yeah, this is the way, it’s true it’s harder to hit the limits on Max x5, but it can be done :slight_smile:

The resets in ChatGPT confused me a little, especially being able to bank them which I thought was generous, and they seemed to have done away with their daily limits in favour of the resets+weekly limits.

My biggest area of confusion though is and will always be the mapping of a task to a model+effort combination. I got good results on Sonnet 4, then Opus 4, Fable didn’t really blow my skirt up as much as others seem to think, and now Opus 5 seems to be the new norm. Anyway not sure what I’m saying here other than model selection is a bit of an educated wish.