Table of Contents
I saw a short TikTok with a led table that lights up when touched and immediately felt like building it myself. So i designed my own Main-PCB and little hexagonal PCBs for the light and touch. Unfortunately, there were a few setbacks due to the availability of some components. So I had to equip the main PCB with self soldered components. I also had to get the touch sensors externally and solder them on. If the whole thing with the chips calms down a bit I will tackle the whole thing again and simplify it.
This project still requires a lot of manual work. The main board still has to be assembled by yourself, as well as the touch sensors on the Hexagon boards. Also a lot of wiring has to be done. The touch sensors are individually connected to the main board. The WS2812B on the hexagons are looped through per channel.
- Desk_PRG.ino - Is the first version with an ESP32 as main controller
- Desk_PRG_RP2040.ino - Is the current version with a RP2040 as controller.
- Adafruit_MCP23017.cpp/Adafruit_MCP23017.h - Is for the MCP23017 I2C communication
- FastLED - This is a modified Version of FastLED V3.4 to work with the RP2040
Install the RP2040 Board: https://github.com/earlephilhower/arduino-pico
For ESP32 you have to install ESP32 Boards: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
For RP2040 You have to clone the repo and copy the FastLED folder in your "...\Dokuments\Arduino\libraries\" folder to work with the RP2040
Now you should be able to compile the
Desk_PRG_RP2040.ino
In the header you should config your Setup
Just configure the amount of Hexagon PCBs you have connectet to channel 0-3
#define Hexagons_channel_0 12
#define Hexagons_channel_1 12
#define Hexagons_channel_2 12
#define Hexagons_channel_3 14
In this config i have connectet 12 Hexagon PCBs to channel 0, 12 Hexagon PCBs to channel 1, 12 Hexagon PCBs to channel 2 and 14 Hexagon PCBs to channel 3. The desk was build with 50 Hexagon PCBs. The maximum is 64, but this can be expanded with more MCP23017.
The Main-PCB contains 4x MCP23017, 2x 1500uF Capacitor, 1x Fuse holder, 1x SN74HC125N and one ESP32 Dev Kit C / Raspberry Pi Pico
The MCP23017 are communicating over I2C, every MCP23017 has 16 Inputs/Outputs.
The SN74HC125N is to shift the data channel from 3.3V to 5V so the leds don't glitch.
I have designed this PCB to integrate the LEDs and the Touch Sensor.
The PCB has a "Data IN" and "Data OUT" so it is possible to connect multiple PCBs to act as a WS2812B Strip
Every PCB has a "Signal" Pin which connects the signal output from the TTP223 PCB to the Main-PCB
The Input Voltage is 5V for the PCB
Schematic Wiring
[Wiring.pdf](https://github.com/mazls/hexagon-desk/files/8800328/Wiring.pdf)Print files can be found here:
https://www.printables.com/model/200964-hexagon-led-coffee-tableDev Kit link:
https://www.az-delivery.de/en/products/esp32-developmentboardVideos
https://youtu.be/I4rWym8PK4shttps://www.youtube.com/watch?v=-OrUfqWGYhM&feature=emb_title