Entries in woe (2)


Wall of Enlightenment v3 - the rebirth

Having given out my details and promising I'd blog at the Pi Birthday bash this weekend, I'd better crack on!
Given the previous issues I needed a rethink on the design, key points:
  • Build wall mounted from the start, to avoid issues when I finally came to hang it
  • Weatherproof
  • Improved frame
  • Tensioned strips to keep them straight
  • Short, heavy duty power cables
  • Improved signal cables
  • Connectors, connectors and connectors
A quote from Brian Corteil was my mantra for this build: "If in doubt over engineer it, it'll be easier to build initially and far better for reuse show after show".
So firstly the construction, thin conduit didn't work and I wanted the strips to be tensioned so hanging vertically was the best option. To keep the weight down but still make the construction easy having a box of some sort with the strips hanging down from it seemed ideal. I settled on electrical trunking and 75mm square gave me plenty of room to play with. Ideally I wanted this to be black so that it would not stand out but the requirement for that was a huge order! So, white and a liberal application of matte black spray paint resolved that.
Next hanging the strips vertically - this meant that I'd have to modify the code to rotate the image by 90 degrees which was part of the reason I'd dismissed it originally. A review of the Fadecandy documentation though gave me the answer very quickly, Micah had already solved this for me - with a simple config setting - BRILLIANT. I also learnt a lot from the example on the Fadecandy site: https://learn.adafruit.com/1500-neopixel-led-curtain-with-raspberry-pi-fadecandy/overview with regard to constructing the screen.
The LED strips are in a waterproof covering and I used hot glue to seal the ends with a 10mm glass ball. Unfortunately the only place I could find 10mm glass balls was Alibaba an the minimum order was 10,000 - so I have about 9000 spare if anyone needs any?
For the connection to the trunking, which also needed to be waterproof, I investigated options and costs with a number of suppliers and ended up with a plastic screw threaded version I found on Alibaba. After a few emails backwards and forwards we agreed on the details and the supplier sent me comprehensive design documents. A few weeks later and the finished articles arrived exactly as I'd requested. The sockets bolted directly into the trunking and the plugs screwed into them. I soldered the strips to these and again sealed them with hot glue and heat shrink tubing. (Having now attended a few shows bayonet fittings would have been far easier).
The Fadecandy cards as controllers for the strips were still the right way to go but with the previous version I had two problems related to the wiring, the first was the power. To get the 5v from the power supply box to the trunking was going to need some decent sized cables. Given that part of the problem I had with the initial version I wanted to make sure that this time was a success. The second issue was the wiring for the data lines to the addressable strips. On advice from Micah(fadecandy designer) I replaced the previous twisted pair with ribbon cable with alternate connections being Ground and also used 16 way ribbon connectors with header pins soldered to the cards. This makes it easy to swap cards out if they are faulty or I wanted to use them elsewhere while the Wall is not in use.
I grouped the strips into 8 and tie wrapped them onto laser cut perspex rectangles. This logically grouped the strips per fadecandy card and also made them easier to carry when detatched. Attaching them to a flat surface at the top and bottom of each strip meant that they were held facing forwards to get the best light from the LEDs.
Finally into the trunking went the Raspberry Pi as before with the Fadecandy server installed. Unfortunately at this point I realised my next mistake with the power - with all of the LEDs on there was insufficient power to run the Pi! This was easily solved by running a mains lead into the trunking and adding an adapter specifically for the Pi. Longer term I'll change that.
So finally I had a working screen - only half the size of the clients requirement but that would be easily remedied by building another duplicate 'half' and connecting the two toether when needed.
I exhibited at the UK Makerfaire in Newcastle and it looked pretty good.

'Wall of Enlightenment' v2 - the next instalment

It's taken a while (the original post was Feb!) but it's time to tell the story of the full size screen, which I've named 'The Wall of Enlightenment'. As a reminder the aim was to build a 2 metre wide, 1 metre high screen which could be hung on the side of the Pitt building in Cambridge as part of Science week.

Having created the initial small prototype my intention was to use the same materials, and scale it up. The prototype went down well at the Guildhall exhibition and I was given the green light to build the full size screen. Ordering 75m of LED strips from China was an interesting experience but once I'd got through the complexities of sending the money they arrived within a week. Construction could then be started on the floor of my home office.
70m of LEDs was a great box to open

The Wall is based around a Raspberry Pi which then uses Fadecandy cards to control the addressable LED strips. The maximum length of these before any lag is visible is estimated to be 64, from details on the Fadecandy site. With 32 LED per metre strips that gave me the 2 metre width I was looking for, so I started by cutting the strips and constructing the frame around them from 25mm black plastic conduit.
Initial construction

Using the same aspect ration on the vertical meant that I needed 32 rows and with 8 strips per Fadecandy that was 4 cards. As these were small my intention was to hide them inside the trunking but to get things running initially I wired them up outside. I also added a length of nylon line to the end of each strip and sealed the end with hit glue and heat shrink tubing. This would make it waterproof and the line could be used to tension the strips so that they didn't sag once the screen was hanging in position.
Once I had the first 8 lines connected I tested to ensure things were working as expected. I used the fadecandy server on the pi and streamed a video from my laptop. At a friends suggestion I used the ipod video advert as it was great for motion and colours. The result was great and can be seen here
Once I knew that worked I was confident that I could complete the rest the same way and after many long nights of soldering, sticking and threading wiring the construction was complete.
Construction complete

So, time to fire up this gigantic beast and enjoy the fruits of my labours, again the same video with the result here. However, something wasn't right. There was way more 'noise' on the display and the colours were not consistent. Something was wrong and this wouldn't be good enough for the display. I started to look at the wiring, the connections, the power levels to determine where the issue was. I also posted on the fadecandy google group and got some great feedback. Unfortunately the more I did the worse it got, with complete strips starting to die and more and more noise.
Here's the last test with some scrolling text: https://www.youtube.com/watch?v=wWNaVCvFfiM
At this point time wise it was the first day that the screen was due to be on display but there was no way it was up to that, it was dead on the office floor.
Dead on the office floor

This wasn't going to beat me. I needed a rethink and some new ideas, while continuing with the design I had may have worked there were some issues that had arisen that really needed to be addressed:
  • Needed to be weatherproof, there were holes all over the tubing for the strips and the nylon tensioners which would have been likely to leak
  • The frame itself was too weak to be rigid when transported or when hung on the wall
  • The strips needed to be tensioned to maintain the integrity of the image
  • The power cables needed to be thick and short to transfer the 5v from the power supply to the strips
  • Construction on the floor meant I didn't think about handing it or the support required
  • Thin conduit was what I had, worked well in the prototype, was thin and looked good but was not strong enough or large anough to contain all of the cabling
  • Electrical interference appeared to be due to the way it was wired, using twisted pair for signal lines
  • It was hugely difficult feeding the wires through the tubes
  • I'd soldered the fadecandy cards directly which made it very difficult to change their configuration or position

So I sat down with some friends at Makespace later that week and we designed version 3.