Friday, 23 February 2018

Construction of a steel geodesic dome

Following on from the previous post, it is now time to construct our dome! We have constructed a few domes out of PVC piping in the past, these are very quick to make with very simple tools, however due to the way the pipes are joined using cable ties they are not as strong as a geodesic shape could be and many of the PVC pipes have warped after being left out in the weather for a long period of time. Most of the details for the geometry of the dome has come from Simply Different, check it out for lots of cool information. The image below shows the marking locations for the necessary operations on the pipe. The thickness of the cut off blade has been taken into account for these cuts.



This dome will be constructed out of 16mm ERW tube with a wall thickness of 1.2mm. In an ideal situation we require 114.5 meters of steel tubing, however we can only buy our steel in lengths of 6.25m, so we must buy 22 lengths of this to satisfy our needs. I ended up buying 24 lengths in case we want to make a doorway into the dome.



The first job is cutting our lengths of steel to the 2 different lengths required, we must be precise in our lengths as a geodesic structure relies on all the struts taking an equal load, if one was the wrong the length then it would throw out everything else and the dome will end up skewed. These cuts were done with a metal cut off saw, if you were determined you could do these cuts with a hand saw.



Next we need to flatten and bend the ends of our steel tubing, these bent end sections stack against each other and should sit flat against all their neighboring pipes. The bends must go in the right place and each end must be bent in the same plane if either of these are incorrect then it will make assembling the dome difficult or impossible. We flattened and bent our pipes with a hydraulic press, ideally the short lengths should be bent to 16° and the longs to 18°, lucky for us the press ends up bending the flattened ends to ~17.5°. The steel tube we used is so thin a hammer and anvil could be used to flatten and bend the pipe ends.



The last step is to drill holes through the bent end sections, this hole placement is important but not too hard to achieve as long as the previous steps have been done accurately.



Now we have the struts we can build our dome, we used 8mm bolts to secure the pipe ends together.



Here is part of the dome set up in my backyard, there isn't enough room for the whole thing, however this is enough to test fit all the LED panels and do some testing of the covering tarp. I'll have to wait till Blazing swan to build it in full.



I also put together a basic box to carry the dome struts. It's made of 12mm marine plywood, bolts/dowel nuts and some handles from the local hardware shop. It's simple but makes it much easier to transport.



Next post I will discuss the mechanical construction of the LED panels and the associated control hardware.

Friday, 19 January 2018

Software and electronics for driving 5725 LEDs

Following on from my previous post about the touch controller I will now talk about the software and electronics we are using to drive the 5725 LEDs.

All software is written using Python, mostly utilizing OpenCV and Numpy for their great image manipulation cpabilities. The LEDs we will be using are designated SK9822, these are going to be spaced at 15 LEDs per meter, these are not usually made in this size so we incurred a higher than expected cost when ordering them. The triangular panels will consist of several strips of the LEDs spaced at 15 strips per meter, this gives us an LED density of 225 LEDs per square meter. This density was selected for manageability of the overall LED array and for power reasons. The image below shows a render of the LED layout, this render will be used for generating our pixel map.



We had originally thought we would go with the WS2812B LEDs as these are cheaper than the SK9822 but the latter has a global brightness control which allows for much better low brightness colour depth which is an area I have found the WS2812s to be lacking in. I have built a few LED projects using the WS2812B LEDs and have noticed serious flicker noticeable when videoing the LEDs, this is another area the SK9822s excel in as they have a PWM frequency of 4.7kHz versus the 430Hz of the WS2812. More detail on these LEDs can be found at Tim's Blog.

WS2812B left SK9822 right

Driving the panels of LEDs will be 5 Teensy micro controllers, handling 4 panels each, a single Teensy could theoretically drive all of the LEDs but this was decided against due to wiring complexity. The main computer running the majority of the software will send the RGB pixel data over USB to the micro controllers. The Teensy will be running a library called FastLED to control the LEDs, this means it is just acting as a buffer between the main computer and the LEDs.

Apart from the touch input software discussed last post there are a number of different pieces of software we have written. One is a tool to define the LED layout, you upload an image or render of the array and that is displayed on screen, using mouse clicks on either end of a string of LEDs and entering the number of LEDs between, it allows you to quickly define the layout of any shaped array. We now have our LED array defined and the coordinates from our touch input device so we needed to combine these to generate our output to be sent to the LED controllers.

The first control program is relatively simple, we take the touch coordinates from our touch dome, look for the closest corresponding pixel in our LED array and set the colour of that pixel to white (or any colour of our choosing). This pixels information gets stored in an array which will then be sent on to the LED controllers. This is just the beginning and only a basic feature set is implemented, in the future brush size and colour will be changeable on the fly using designated spots on the touch input dome as the input.

In order to see what is happening on the LED array without having to assemble the physical array we wrote a bit of software which renders an approximation of the array on the computer screen. This allows us to quickly test the software stack without the hassle of dealing with hardware.

For powering everything we will have a 240V to 48V DC 30A supply consisting of 4 server power supplies in series, these will be located on the ground in a safe, electrically insulated cabinet. The 48V from this will run to each of the LED panels and then on each panel a 48V to 5V DC 15A power supply will be used to regulate the voltage to the LED and micro controllers. The total power consumption at full white will be approximately 1700W which is slightly over what the power supplies are rated at, it will be very rare for us to display full white on all the LEDs so I have deemed this to be safe, even so there will be fuses at each power supplies output. In the photo below I am load testing a single 48V to 5V supply, in the background you can see the four 12V server power supplies.


The wiring of the dome will be quite a task by itself, I have chosen the Deutsch DTM series of connectors as they are waterproof, reliable and reasonably cheap. They will allow the wiring loom to be disconnected from each part of the system and packed up by itself, this should aid in transport and storage.

Next post I will discuss the mechanical construction of the geodesic dome. For all software information please see our github here.