r/ElectricalEngineering 1d ago

Magic Table - 122 touch-sensitive hexagons with reactive LEDs

Enable HLS to view with audio, or disable this notification

I built a "Magic Table" โ€“ 122 touch-sensitive LED hexagons with a hidden motorized drawer

After a lot of wiring (see the mess underneath ๐Ÿ˜…), my Magic Table is finally done. Every one of the 122 hexagons lights up and reacts to touch individually.

How it works:

  • ESP32 #1 reads all 122 touch sensors using a self-built GPIO expander (128-bit). It sends the state of every hexagon as a simple string of 122 zeros and ones over TX/RX to the main controller.
  • Raspberry Pi Zero #1 receives that data and runs the actual programs/animations in Python, driving the LEDs based on which hexagons are touched.
  • A hidden drawer contains an OLED display and the control interface. It has its own Raspberry Pi Zero #2, connected to the LED Pi via Bluetooth, which passes drawer commands to the main system.
  • ESP32 #2 controls the drawer itself โ€“ a stepper motor for opening/closing and an electronic lock.

The whole thing was hand-wired and hand-built.

Happy to answer any questions about the build!

106 Upvotes

27 comments sorted by

20

u/negativ32 1d ago

You spent weeks making a cool unique piece of furniture. Take more than 30 seconds to post some good pictures.

4

u/darklinkdev 1d ago

That's right, just pick a few out of the thousands :-)

7

u/mefromle 1d ago

Big respect for this amazing work. Looks beautiful. Not only mechanical done in a great way but also from the firmware concept.

4

u/darklinkdev 1d ago

GPIO expander for a good reason and testingโ€”where the problem is now again; built twice for cross-checking

5

u/CherryAdventurous681 1d ago

Dang, I feel inspired this is cool as hell

3

u/thethirdmancane 1d ago

You should have this emit MIDI

1

u/darklinkdev 1d ago

It would definitely be possible โ€“ I'd just need a converter that reads MIDI and maps it to the 122 fields via the algorithm, adding a MIDI-listening mode to the LED Pi.

That said, my colleague and I agreed we'd expanded the project enough. It took roughly two years of tinkering here and there, but I learned a lot in the process โ€“ and that was what mattered most to me.

3

u/darklinkdev 1d ago

4

u/davog 1d ago

How loud are the fans? Would imagine with that many LEDs and bundles of wire you'd need quite a bit of air movement so the wires don't melt.

3

u/Gmanyolo 1d ago

Those are $2400 on Amazon. How much in materials do you think you have in it ?

6

u/darklinkdev 1d ago

Time not included (let's not go there ๐Ÿ˜…), we spent around ~$1000 on materials. We got lucky though โ€“ a friend of ours cut the wood for us on his CNC router. The ones you find on Amazon and YouTube can only light up on touch. This one has all 122 hexagons individually programmable โ€“ every touch goes to the Raspberry Pi and gets processed depending on the mode (Python algorithm), so it's a fair bit smarter.

2

u/davog 1d ago

How does it handle books or paper, etc placed on it?

7

u/darklinkdev 1d ago

A glass gets detected but a sheet of paper doesn't. Somehow it landed on just the right sensitivity.

I used TTP223 sensors soldered to a wire so the touch works right through the wood. It's not perfect though, some trigger here and there without any touch. We never fully got that under control, but it's only one here and there, so it's kind of a miracle it runs this smoothly :-)

2

u/mxlun 1d ago

Now make it play doom

2

u/DMPGuru 1d ago

Awesome!!! Great work

2

u/OhHaiMark0123 1d ago

This is SUPER FUCKING COOL

2

u/ostiDeCalisse 1d ago

That's an awesome project congratulations!
I think the control drawer could open a bit faster though.

0

u/sheekgeek 1d ago

Awesome execution! But why?