Terug naar projecten

Giiker Supercube

Console-app die je volledig met een smart cube bestuurt.

PersoonlijkMei 2026
PythonasynciobleakBLE
Giiker Supercube – cover

Over het project

Een hobby-project waarin ik mijn twee hobby's combineer: programmeren en speedcubing. Het is een console-applicatie die je volledig met een Giiker smart cube bestuurt, zonder toetsenbord. De cube stuurt via Bluetooth na elke draai zijn complete toestand naar de app, die de kubus live in de terminal tekent als een 2D-ontvouwing. Inputs geef je door een kleurvlak te draaien: één kleur scrollt door het menu, een andere bevestigt en een derde gaat terug. Vanuit het hoofdmenu kies je tussen verschillende onderdelen. In de cube-timer start de stopwatch automatisch zodra je begint te draaien en stopt zodra de cube weer opgelost is. Je kunt vooraf een willekeurige door-elkaar-volgorde (een 'scramble') laten genereren die de app je stap voor stap voordoet. De app onthoudt elke gegenereerde scramble, zodat je een eerdere scramble later weer kunt opvragen en die cube nog een keer kunt oplossen. Daarnaast zijn er spellen waarin je de cube als controller gebruikt, waaronder Tetris en Snake. Ik wil het project verder uitbreiden met nieuwe spellen en een koppeling naar smart-home bijvoorbeeld lampen die reageren op bepaalde patronen of zetten. Eigenlijk wordt het gewoon een universele afstandsbediening, maar je moet hem wel even oplossen om je lampen aan te zetten.

Wat ik heb geleerd

De grootste uitdaging was het reverse-engineeren van het BLE-protocol van mijn cube. Bestaande Python-decoders werkten niet op mijn model — ze gokten allemaal de byte-layout. Ik schreef daarom een eigen BLE-diagnose-tool die ruwe notifications van een willekeurig BLE-device dumpt, deed bekende zetten en ging handmatig door de XOR-key om te verifiëren welke bytes wat coderen. Belangrijkste les: bij onbekende binaire protocollen eerst meten, dan bouwen. Daarnaast leerde ik werken met async Python (bleak) en hoe je een UI ontwerpt voor extreem beperkte input — met maar 18 mogelijke cube-zetten dwing je jezelf tot een strakke, voorspelbare gestures-taal.

Beelden

Giiker Supercube – screenshot 1
Giiker Supercube – screenshot 2
Giiker Supercube – screenshot 3
Giiker Supercube – screenshot 4
Giiker Supercube – screenshot 5
Giiker Supercube – screenshot 6
Giiker Supercube – screenshot 7
Giiker Supercube – screenshot 8
Giiker Supercube – screenshot 9
Giiker Supercube – screenshot 10
Giiker Supercube – screenshot 11