Step by step...

From sketch to reality.

All at ones
(printing version)

How it all began:

At the beginning of 2015, when I was still at school, I had to decide on a project/theme that I wanted to work on for the next year, a so-called final year project. My topic had been clear to me for a long time! It should be about the development, the construction and the programming of this LED table. See for yourself...

Of course it all started with a sketch, which I adapted to my ideas, wishes and expectations. The design had been clear to me relatively fast, I wanted to build an elegant, square but simple table, which should have a good height for a sofa side table. In my case it turned out to be 29cm incl. foot, which turned out to be quite suitable afterwards.
Timetable excelsheet
So when I had a rough idea how everything should look like in the end, I started to develop a simple prototype, consisting of an infrared LED (940nm), an infrared sensor (IS471F) with a small 0.33μF capacitor and resistors for the IR LED (as described in appropriate datasheet) and a large two-color LED, also with series resistor. For controlling the prototype I used a Arduino Uno, just like I wanted to use it later for the finished project. The shown circuit should illustrate the functionality of the basic principle. The aim was that as soon as a reflecting surface (e.g. a hand) moved over the IR-LED and reflected the emitted infrared light back onto the IR-Sensor, the big LED changed its color from green to red and the whole thing was controlled by the Arduino Uno. The trick with the whole thing, why I used exactly this special IR sensor and no other one, was that it controls the IR LED itself with a certain frequency and that therefore only the infrared light reflected by the IR LED with the same frequency is "accepted" by the IR sensor and therefore infrared light from other sources of interference such as the sun can be easily eliminated. So far everything has worked fine.
(Click on the picture and browse for more PHOTOS and VIDEOS!)
Prototype 2
The individual components installed on the finished circuit board were finally: 1] A simple mounting of the board on a spacer made of metal, which was connected to the substrate. 2] A pin header connector with which the first board was connected to the second, the second to the third, and so on. 3] The hole grid board itself. 4] A 33μF capacitor for smoothing the board voltage. 5] The IS471F IR-Sensor [6] The finished WS2811/12 RGB-LED Board [7] The looped through contact pins of the WS2811/12 RGB-LED: 5V IN; Data IN; GND; 5V OUT; Data OUT; GND [8] One 940 nm IR-LED with a beam angle of 40° [9] Two 470 Ohm resistors for the IR-LED [10] And another simple board identifier, so that in case of later defects I simply keep track of which one has already been replaced and which one has not. Fortunately many were not;) 11] On the underside of the board you can see the soldered connections of the individual components, which were arranged with the greatest possible efficiency, as simply as possible and nevertheless well chosen.
All parts
When now the whole technical functioned more or less perfect, I had to wait for the orders and I could be sure that it will work later, I started with the sketch of the wooden frame. As already mentioned, the table should be square, have a good height as a sofa side table and look reasonably elegant. The result was the illustrated sketches including a sketch for a single sinker shaft. The wood I wanted to use was once poplar plywood (4mm) for the grid and the intermediate floor, a 9mm poplar plywood board for the floor and acacia wood core board (18mm) for the frame and on top the 3mm satin colorless plexigal disc.
Wooden frame
Since I was still waiting for the remaining orders and the construction of the 100 PCBs would take a while, I started a small test with the PCBs from my 2x2 pixel prototype and the finished 10x10 pixel table frame. I wanted to get an impression of what it would look like at the end, even if it wasn't really the case with 4 pixels! But I noticed something else not very desirable, namely the touch didn't work as I wanted it to... So if I started the sample code while the Plexiglas pane was on the pixel grid, the pixels would glow as desired. But as soon as I drove my hand over it, and the pixels were supposed to go out only as long as they were covered, they stayed off! The error wasn't due to the code either, because if I tried it without Plexiglas, it worked as it should... After several days of despair I came across the error and it was more than shockingly simple and yet very hard to find. I had assembled my 4 pixel prototype with the plywood somehow and had (of course) not paid attention to the grain of the wood! With my 10x10 pixel grid this was sometimes the same and sometimes perpendicular to the one in my prototype... That meant that I was allowed to rebuild the grid again and this time with the grain identical to the one in the prototype (with the grain running from bottom to top and not across, otherwise the reflections of the infrared light would have gone too strongly in all directions and thus been falsified!) With the new grid everything worked as it should and until that was the case, my remaining orders had also arrived:)
100 pixels
And what do you do next when you have finished soldering all 100 boards? Of course, test it! So I prepared the complete wiring for the pixels by cutting the ribbon cables to the length from one pixel compartment to the next and then connecting them with the corresponding ribbon cable plugs. Now I connected all boards at their intended places and connected the data input of the first board with the Arduino Uno. Then I had to supply the boards with power, which I did with an extra 5V power supply with sufficient power. Now for the first time I was able to put all 100 pixels into operation at the same time and see what it looks like in the pixel grid! Unfortunately this was not as impressive as I had hoped (see pictures), because already after 1-2 rows the current was not enough for the remaining LED's... So I helped again by spitting 5V from the power supply into every 2nd row. After that everything went as expected.
Now came what was probably the most nerve-wracking work, the wiring! I wanted to make this as clear and comprehensible as possible, so that possible later defects could easily be located again. In addition, I wanted to design the connections to the control electronics in the level below so that I could take the table apart again later in order to be able to make changes to it. For this I used pluggable lyster terminals as you can see on the pictures. The data pin and the power supply for the printed circuit boards were also connected from the power supply via the lyser terminals.
Wiring 2
The time had come! Now I could finally "marry" both big halves of the inner life with each other. All I had to do was to connect all the lyster terminal plugs and it was done! Just assemble the case on the outside and the table was as good as finished...
Of course, the software technology was quite different... Not much had happened here yet and all the more had to be done. So the fun was just beginning. For the programming I took a lot of time, and I needed that too! Such a program is not even written as fast as you think it is, especially not if you want to implement everything that comes into your head (including Snake, Tetris, Tic Tac Toe, etc.). Therefore I programmed without end and continued to look for even better methods to complete the tasks... Of course I didn't get as far as I had hoped, but for simple color gradients, patterns, interactive reactions and small painting programs it was still enough for the presentation! Since then I have been filing and programming at the table and the programs every now and then when there is time, but if you know something like that, you know that it won't come to a final end:)