Christmas Lights 2017

Overview

This year (2017), I decided to put up some Christmas lights at home, they consist of basic shop-bought ones and also home made programmable ones.

There will be quite a few different parts to this projects so i’ll separate them into individual posts. Click the links below to access them…

The Pixel Lighting Controllers

Power Supply and Distribution

LED Pixel Grid

LED Pixel Spinner

Pixel Spinner

As part of my Christmas light display i’m going to build a couple of pixel spinners.

I drew up this very rough diagram so i had an idea of what i was doing.

I know, it’s poor. I do plan on getting to grips with some cad software at some point to make nice drawings. 

The ‘sticks’ are going to be made of 20mm PVC Electrical Conduit pipe, it’s reasonably priced and easy to work with. The center piece i designed and printed with my 3D printer…

It took a few attempts to get the hole sizing correct for the tubing to fit nice and snug, but it worked out well in the end…

As you can see in the image above, i’ve already started drilling the holes for the Pixels to sit in. To do this i built a little jig, this gives me a much better chance of getting the holes somewhere near the right place. 

Once i had drilled all the holes i cut the LED Pixel string into the correct lengths and pushed them into the holes. You have to be quite forceful to get some of them to fit in. It also helps to shave down some of the little rubber tabs slightly.

I then had to connect them all up – this was a slow process that involved soldering lots of connections. Every connection was covered in adhesive lined heat shrink tubing to make sure they’re waterproof. You can see the adhesive oozing out the end of the tubing. For the cable i used some ‘6 core alarm cable’ as i had an old reel kicking around. Needing only three cores, i doubled them up. I covered the whole lot with some ‘self-alignment tape’ to add another layer of waterproofing.

I wired it up for a test and it worked great other than a couple of the LEDs not working on a certain colour. They do work correctly if you put pressure on them in a certain direction, so one of the legs on the LED must have become disconnected. Probably whilst i was pushing them into the tube – something to remember for next time.

I then Attached the controller module and a loop so i could hang it on the wall,.

ESP Pixel Controllers

The Lighting Controllers

I’ll need to build controllers which will take the data from the main PC running the sequencing software (Vixen) and in turn switch on the correct LED’s at the designated values.

My original plan was to use RS485 Serial connection to send the data around to the controllers as i know this is how people have done it in the past, i also have a little experience with RS485 / Serial so there would be less of a learning curve.

After a little bit of research i came to the conclusion that the Serial communication method is a little out-dated and naturally IP / Wireless has become the norm. With the ESP8266 being my personal favorite ‘WiFi enabled’ Micro-controller, a quick google discovered that others had already done exactly what i have set out to achieve with regards to the controller. 

I did a quick search online for an overall diagram of system but couldn’t find anything, so i came up with this..

I came across the ESPixelStick project which is perfect. I’ll be able to upload the firmware to the ESP and then do all the configuration through it’s web interface. The only thing i had to edit in the code was my access point credentials. I highly recommend checking out the ESPixelStick GitHub if you plan on building any ESP based lighting controllers.

Having the software side looking promising i programmed a NodeMCU board with the firmware and wired up a Pixel RGB LED Strip. Configuring the ESP via the web interface was easy enough. But it just wasn’t working. I was getting strange erratic results from the LED strip. A 10K pullup resistor on the data line of the Led strip seemed to fix the issue.

Knowing it was all now working as planned, i drafted up a schematic…

Knowing i was going too need a few of these, i designed a PCB and sent it off to DirtyPCBs to get them made. I was in a bit of a rush to get this done fairly soon as it can take a few weeks to receive them, still great value for money. I managed to squash it into 2.5x5cm so i can fit two of them into the 5x5cm limit board size.

Whilst waiting for the boards to be made, i put a prototype together. This would allow me to program and test the ESP modules in advance.

 

Only problem is – it didn’t work. After a bit of testing / googling it turns out that the Generic Level Shifters don’t switch fast enough for the data. I haven’t come up with a sleek method to shift the 3.3v up, but i did come across this post on HackADay, which will do the trick. Hopefully i can make a WS2812 fit on the PCB that’s already being manufactured…

In the mean time, connecting it directly to the 3.3v data from the ESP seems to work fine. 

After a few weeks the PCBs arrived…

 

 

 

 

 

 

 

 

First thing to note – don’t bother getting white boards! I though white would be cool as it’s a bit different and almost christmasy… Except you can barely see the traces which is actually rather annoying in an test/development situation! I soldered the components on including the WS2812 LED as mentioned in the Hackaday post but it wasn’t working. The individual led worked fine but not the string connected after it. If i added another WS2812 LED that also worked fine. So i can only assume that the WS2812 LEDs and the WS2811 strings are not compatible?

In the end i replaced the 3.3v regulator with 3.6v instead. This is the max rated input voltage for the esp and increases the data line voltage slightly. This seems to work pretty reliably so far.

The next job was to design and print some waterproof enclosures for them you can read about where i got the design in my other post

 

Xmas Lights Pixel Grid

Outside my home, facing the main road i have some railings, i decided to attach LED pixels to them to form a ‘pixel grid’. Think of it as an extremely low resolution LED TV. It should allow for some fancy patterns and even scrolling text.

So as usual the first thing to do is draft up some sort of design, so i came up with this..

Pixel Grid Design

So the total Pixel dimensions is 13 High x 48 Wide Giving a total of 624 Pixels.

Each pixel requires 3 data ‘channels’ (Red,Green,Blue) meaning a total of 1872 Data channels are needed. As the maximum limit of the ESPixel controllers is 512, I’ve divided the grid into 4, meaning each controller is configured for 156 Pixels (468 Channels).

The next step was to figure out how to power the LEDs and more importantly how to overcome the Voltage drop along the cables. As the strings are only 5V voltage drop is a big issue. I didn’t do any fancy calculations at this point. It was a simple case of ‘inject’ wherever reasonably possible. This is what you can see in the bottom right of the drawing. ‘Start’ is where the controller is connected, and the ‘pwr’s are the parts of the string that are also connected to the 5V supply.

Once i had it all designed, it was a simple case of cutting the strings up and soldering them all together. I had to add lengths of wire to allow them to reach from one column to another, and also add the extra wire in to ‘inject’ the power. All the connections were covered in adhesive lined heat shrink tubing to try and keep waterproof. This was a very boring process that took many hours.

 

After finishing that and giving them a test, the next job was to actually fit them all to the railings. This was another very tedious job that took many hours. Each Pixel is held on with two cable ties giving a total of 1248 cables ties that had to be fitted and trimmed.

If i do this again next year i will defiantly be making a some sort of bracket system or some other simple quick way to attach them. I got there eventually though, and i’m pretty impressed with how it turned out.

Xmas Lights Power Supply And Distribution

The LED Pixel lights i’ve put up require either 5V or 12V DC at reasonable high currents. To power them i’m using a PC ATX Power supply i got cheap of Ebay. It has a good power output along with built in overload / short circuit protection.

As we are dealing with small voltages, voltage drop along the cables is a concern. So i’m going to put the power supply as close to the lights as possible which will be outside. This also means i can run one small mains flex through the window, instead of trying to fit multiple thicker cables through.

To keep it protected from the elements the power supply is fixed an a generic IP rated enclosure with a bit of silicone. Whilst it has no airflow in the box, i won’t be using it at it’s full rated wattage, plus it’s very cold outside at the moment. Worst case scenario it will just shut its self of if it does get to warm. 

As you can see the box was fitted on my railings next to another. Mains 230v enters on the left and the low voltage DC comes out on the right, into another box. The box on the right is where the Pixel Grid and Pixel Star will be wired into. This keeps the mains nicely separated.

The cable between the two boxes is 4mm that i got from some rubbish jump leads. The cable i used to connect the different elements is 2.5mm Speaker Cable from Ebay. Any thicker cable than this would be allot more expensive and also a struggle to fit through cable glands and into crimps.

Each 1/4 of the Pixel Grid had it’s own 2.5mm supply cable from the power supply.

I 3D Printed junction boxes for making connections in, I found this nice design online and edited it to include another variable to fit a seal, you can find my version here.

I originally tried using an elastic band as a seal but in the end ordered some ‘rubber cord’ from Ebay that does the job well. To test it out i printed a box without holes and then submersed it in shallow water for half hour.

Upon opening the lid i was impressed to see just one tiny drop of water in the corner as you can see above. This means it should be fine when outside in a little rain.

To connect the cables within these junction boxes i used ‘wire nuts’ something that i believe is quite common in the states but not really seen here in the UK. They’re perfect for this as they’re quick and easy whilst still making a good reliable connection. They’re also reusable which is ideal in this temporary situation.

Despite running multiple cables, i still had an issue with the voltage dropping to low and the controllers when all the lights were set to white. This would freeze the micro controller meaning you’d have to reset the power supply to get them going again. As a test, i ran a separate power cable to the controllers on two of the 1/4s and it seemed to solve the issue – something to remember for next year.

I also had the same issue with the Pixel Spinner, to get around it on that one, i changed the supply voltage over to 12V and then used this 12v-5v step down regulator just before the lights.

Whilst advertised as waterproof when i purchased it from Ebay, it clearly wasn’t, so i wrapped it in some Self Amalgamating Waterproof Tape, this should hopefully do the job for a few weeks.

MySensors RGB Led Strip Controller

I’m a big fan of the RGB LED strips that are widely available online for very cheap, so i made a controller to wireless connect them the the rest of the home automation system.

The controller uses and Arduino Pro Mini and A NRF24l01 Transceiver module to communicate with the MySensors Gateway, i’ve used a simple but awesome PCB Designed by user Sundberg84 and modified it to suit my application. This saves allot of time soldering connections from the radio to the Arduino. I actually bought 10 of these boards as i know they will come in handy.

I couldn’t find any good examples of code for this, which i thought was surprising, so i ended up looking at a few different examples and piecing things together to get the desired result. The Node receives three numbers separated by a comma in the range of 0 – 100, in the order of RED,GREEN,BLUE. The Arduino then takes these numbers and fades the LEDs.

As these will be visible in some places around my home, i made a reasonable looking label for them, including space for writing helpful information. I also created a little logo to give it that little more professional look.

At the time of posting this, the code is very rough. It’s not annotated well, it’s got unnecessary bits and has a couple of bugs that need sorting. Hopefully i’ll get round to fixing it up soon. But in the mean time, is does work.

You can download the code here: MySensorsRGBWithOpenHab V1.1

 

 

RadioTone RT3 Android ‘Smart Radio’ Review

After moving home a few months ago i unfortunately have nowhere to mount any antennas. I’d been looking online for other ways to try enjoy the radio hobby and decided to give ROIP (Radio Over IP) a go.

Now allot of people completely disagree with ROIP and using the internet to connect radio systems, some say ‘its not real radio’ which i suppose is right in some circumstances, but i think one great thing about the hobby is that there is so many different areas people can try an explore. Especially for people like myself that have limited options due to antenna constrants.

Anyway, enough about that. I ended up purchasing a Radio-Tone RT3 – and this is with i think of it.

I purchased it of Ebay, shipped from HongKong.

Unboxing

Upon opening the parcel you are greeted with a nice – fancy looking box.The same sort of box

you’d likely find a modern smart phone in.

 

Inside the box you will find:

  • Radio-Tone GT3          
  • GSM Antenna
  • Belt Clip
  • Micro USB Charger Cable
  • Usb Charger
  • Crappy Dangerous Mains Adapter

 

First thing to note is rubbish Mains adapter and USB charger. These are quite commonly sent with items from china but in my opinion are total crap and should be discarded of. They have no fuse. They don’t grip the pins of the plug very well, and they make contact with live contacts way before the plug is fully inserted. meaning if you’ve got you’re fingers on the pins while plugging it in then you may be in for a shock.

Luckily it charges of a standard Micro USB, So i’ll just use my phone charger or many of the other Micro USB charges around.

 

 

First impressions of the unit itself seems to be of a good quality. It feels robust and has a good weight to it. It feels as though it would survive a drop from a small height.

It fits very well in the hand  – well my hands anyways, but i do have big hands.

It has a tab on the screen, I was hoping this a permanent screen protector that would have been a nice addition, but it seems to be a temporary screen protector used for shipping?

 

 

The accessory port on the side seems to be like a Motorola style one, Maybe it is?

 

If anyone has a name or info on the pin-out, i’d appreciate it!

The quality of of this connector seems a bit rubbish to me. I can imagine the little copper pads getting dirty or corroding and causing issues.

 

 

 

The GSM antenna connector is some sort of pin with a thread near the top – not something i’ve seen before so i’m unsure if this a standard type or something device specific.

 


Powering up

On powering you’re greeted with a nice bright logo

 

 

Once booted – which is pretty quick – it loads to a very basic version of Android. There’s no ‘desktop’ type thing, you just swipe left and right through the apps. It comes with very few apps but does include Zello and Google Play.

I connected it to my Wifi and logged into Zello. I opened up the echo channel and gave it a test. The replayed audio was surprisingly very load an clear. I was impressed.

The one downside i quickly learnt was that the volume knob does nothing if the display is off, unlike a normal radio. This was a bit annoying as if you’re changing the volume on the fly you have to click a button to unlock the screen, then change volume, then click a button to turn the screen off again.

Also annoying is that if you turn the volume all the way down, It sounds as though the audio amp still clicks in if it’d trying to play audio – which gives you a quite little hiss when receiving, even though the volume is all the way down. Ideally it should automatically switch the device to ‘silent’ when you turn the volume all the way down.

Additional Accessories

I’d be interested in getting a charging dock for it, a case, and maybe a headset. The problem is the radio seems so uncommon that i’m struggling to find any.

Opon doing more research. it seems as though this specific device is not specific to Radio-Tone and is a common Chinese ‘Smart Radio Android PTT Phone ROIP  ‘ type thing (I’m still not sure what to call it too be honest).

A search on Aliexpress for ‘Android PTT’ will bring up a few radios which look identical. Whether they are or not i’m not sure, but i’d bet the accessories are.

‘Broadnet Systems’ Sell handsets that also seem to have identical cases to this model, again whether the internals are the same i’m not sure.

I may purchase some accessories and if i do, i’ll update this to confirm if they work or not.

 

If you have any questions or any information about this device please do leave a comment!

 

 

 

Automation Controller

The ‘Brain’ Of The System

The home automation controller is essentially the ‘brain’ of the system. It takes all of the inputs for sensors, be it temperature, motion, light, alarm status ect logs them, and triggers actuators and outputs based on if certain conditions are met.

The hardware my controller runs on is a Raspberry PI

I’m using the Raspberry Pi as it is commonly used and as such there is allot of support. It also has a low power consumption (which is important at the controller will be running 24/7).