Tracking station OpenDNS data centers

Original author: Nerd Craft
  • Transfer
What will happen if 12 LED blocks, 12 analog sensors are connected and placed in a birch plywood case, connecting this all to the Arduino platform with two TI TLC5940 microprocessors?

The server load monitoring system with respect to the maximum value of the previous day, with an update of data relevance every second.

Being a fan of science fiction, all kinds of bunkers, nuclear power plants with hundreds of all kinds of sensors, he unambiguously decided to create his own piece in the style of an old, Soviet power station, seen once in the picture, with the ability to further complete it more and more.

Ready gadget

I’m a very boring person in life, my only hobby is all kinds of crafts. It so happened that I was lucky to work as an OpenDNS manager, and my employer is an amazing company that operated with data centers widely scattered around the world, serving 30 billion DNS queries each day. This huge number of requests was even greater, because according to statistics, out of 100 ordinary Internet users, 1 uses this service.

The anniversary of the founding of OpenDNS was approaching, and wishing to celebrate this event, it occurred to me to build something really unusual in our office. I wanted to make a good thing that not only looked good but would also become part of what we are actually doing here. I also really wanted to apply my old ideas with the Arduino platform.

The tasks that I needed to solve

• Design. It should contain both modern and retro elements.
• Operated by Arduino. Just a year has passed since the last time I dealt with this platform and obviously the time has come to return to crafts with my beloved little microcontroller.
• The possibility of gradual refinement. To do everything at once was not in the plans.
• Encourage your colleagues. At work, I am surrounded by brilliant engineers, if they are given instructions on how to output data to the dashboard via USB, they will do much better than mine.

Spare parts

A canvas of birch plywood - cut so that it could lie under a laser cutter.
Arduino - the one that I had available - Arduino Mega, it was a problem for the task. I needed a lot of PWM ports, while mine only had 13.

• TI TLC5940 - If two such chips were connected in series, this could solve my problem with a lack of PWM ports, increasing their number to 32.
• 5mm LEDs - the visual effect of the system was much better with them.
• 0-5 voltmeters - Arduino + TLC5940 are capable of just supporting the output voltage up to 5 Volts, which makes these sensors ideal.
• Miscellaneous - a little glue, a bunch of wires with a cross section of 0.5 mm, clamps for wires and the actual layout.

Stand Card

Having found the map on the network, I had to remove some details from it, before engraving with the laser, the small islands were placed too close to each other, which could affect the correctness of their display by the laser on the stand. The bitmap image of the card had to be made vector in CorelDraw, this significantly accelerated the process of creating the image by the laser, by the way, the initial quality of the card was at 1200dpi.

Having found on the map the location of all our data centers, in their places, especially under the LEDs, mounting holes were made on the stand. Since I had excellent 5 mm LEDs of diffuse glow, I decided to put diodes of different colors on the stand. Instead of drilling one large hole, he burned the holes with a laser installation personally for each of the colors (Red, Green, Blue). Each hole was 0.5 mm in diameter, and the distance between them was 0.75 mm. This arrangement allowed me to seamlessly bring the wires to the diodes.


At first I was confused by the scale on the voltmeter, but the stock sensors looked so beautiful that I still did not dare to change anything in them and left it as it is. Their 0-5 Volt scale seemed to only add surroundings to the whole undertaking.

Panel assembly

I had the experience of joining wood panels using laser-cut teeth, this is a convenient and reliable connection, and what’s the only difference between the carbonized edges and the light canvas of wood! Having scored the necessary parameters into the laser cutter program, after combining the entire structure together, everything sat like a glove, it was extremely difficult to disassemble it back.

Since my future plans are to finish building my “gadget”, the chosen method of fastening panels, this is just the point.
The laser cutter (TechShop) that I had at my disposal had a working bed of 18x24 inches. This was enough to display a map of the world, but bad luck, New York and Washington turned out to be too close in order to place two rows of sensors in their place. I had to zoom in.

Since one of the faces of the machine bed was 24 inches, I decided to make the whole layout with dimensions of 23x23x6 inches. My front panel consisted of three parts, which for greater reliability were glued together. This was done on the assumption that in the future, instead of the central panel, it will be possible to insert some kind of “control panel”, where additional sensors, toggle switches, buttons and so on will have to be placed. The lateral elements of the product were used for its additional rigidity, in the future they can always be removed to build up the structure.

Assembly and connection

Photography speaks for itself. Maybe metal claws were also superfluous here, connecting teeth firmly held the entire structure, but excess caution never hurts. The only thing that didn’t fit into the frame was Arduino, the module was located at the very bottom of the layout, along with two connected TLC5940 chips. Pay attention to the hole in the lower left corner for the USB cable.

Final assembly

Hot glue miraculously secured all the wires in their places, and here, as it turned out, the connection colors were confused by me, the minus / cathode usually has a black connection color. LEDs were inserted into a small but very tight connector, thereby the electrical network was assembled. You may also notice that the plus / anode is usually indicated in red. The Ardunio board was attached to the bottom of the layout with a tape.

I did not expect that I could experience so much happiness! Sitting at his desk at OpenDNS headquarters, after an unforgettable week of repeated trials and tests, to finally debug the system and come to a middle ground.

Serial connection

Making a serial connection on an Arduino is quite simple. Two little tricks make the serial connection open and workable. My choice fell on the format of the three variables that characterized the object (LED, sensor), which should now be updated. For example, to upgrade Amsterdam to 100%, the current increased to 100 mA, for 50% it already corresponded to 50 mA. The computer processed all the work associated with the delivery of statistics and scaling it.

In matters of software, the lead engineer and just a friend, Doug Tobacco, who created the entire management system, helped me. Its script, written in Python, clears statistics at a specific position, translating them into percentages and sending them, performing such an operation every 0.085 seconds. Everything seemed to be going fine, but something unexpected happened: after several minutes of work, the USB port on my friend’s MacBook stopped responding and lasted until the computer was restarted. This started to bother me, because before the presentation of my product at the party, there were only 5 days left, and this could be more than just a glitch. Obviously the problem was in the control system. The day after a good sleep, it dawned on me that the problem was in the incorrect commentary on well-established sequential outputs in the Ardunio code. Its buffer was full and after a short time these oddities happened. After fixing the code, the friend script worked fine!

Also popular now: