Exams are over!

Unfortunately due to GCSEs I have been unable to update the blog; however I have had a few projects on the go and I have made some developments on the rubix cube solving project.

Firstly I made a second RGB LED card, this time for mothers day, and this time featuring 9 ws2812B individually addressable RGB LEDs.  I had these LEDs left over from a project which never happened so I decided to put them to good use.  On the front of the card I mounted some thin paper which light can easily shine through; then behind I printed some images and text onto an acetate.  The acetate blocks the light transferring the design to the front of the card.  I was very pleased with the effect this gave and the LEDs being individually addressable meant the effect could be made even cooler.  Because the LEDs are designed to be daisy chained the wiring wasn't too bad although it still took the best part of a day to get it all finished.  On this card I opted to use a 3 x AAA battery pack because of the number of LEDs, it may be chunky but its worth it.  Also this time I didn't have any vibration sensor; therefore I had to come up with another way of sensing the card was being looked at.  In the end I opted for capacitive touch; I used a strip of conductive tape around the back of the card which was able to sense when someone was holding the card.

For my birthday this year I was very lucky in getting an Ultimaker 3D printer; this has revolutionised my world!  It came in kit form and had to be assembled from scratch.  This took me around 7 hours over the course of 2 school days. Below are my first two prints, they are very poor quality compared to what I am able to produce now as it took me a while to work out what works well and what doesn't.

One of the things I printed early on was a case for the RGB LED cube; this a perfect application for a 3D printer because I can easily design the case in CAD to the exact dimensions.  This provides a really nice finished product:

The case also features a removable lid which has magnets in each corner; this means I can easily show people the circuitry inside which makes the cube so cool.  The other great thing about having an Ultimaker is the un-finished nature of the product.  This means there are always improvements to make to it giving way to challenging projects.  One such project was a stepper cooling system; although I have now realised this is unnecessary it was a fun project which gave me a much needed break from revision.

I decided 3 40mm fans would do the job of cooling the X, Y and extruder stepper so set about designing a PCB for this.  I also wanted the fans to react to temperature so I ordered some ds18b20 digital temperature sensors.  I had a 12v and 5v rail allowing me to power the fans and PIC.  I planned on using FETs to control the fans with the PIC however initially I got my wiring wrong and after switching them all around the board came out a little messy.  Anyway after hooking everything up it did work; the temperature sensors each gave me a temperature reading and the fans could be switched off.  However the fans produced a high pitched squealing when I tried using PWM, something I wasn't so keen on.  Although it was fully operational I decided not to mount it to the printer because I felt it would clutter it up and also a few heat sinks would do the job far better and quieter.

So onto the Rubix cube solving robot...after having settled on a rough design I worked out what I was going to need and then put in a few orders, one to sparkfun, one to hobbytronics and ebay. There are 3 main problems to overcome with such a project; firstly scanning the cube, secondly processing the cube and working out a solution and finally physically solving the cube.  Initially I plan to use a computer program called cube solver to process the cube; however I would also like to develop my own firmware which will solve the cube without being plugged into a computer.  This means that a web cam is not an option for scanning the cube.  I concluded that an array of colour sensors would be the best solution - but colour sensors don't come cheap.  After looking into it I discovered a simple LED and LDR can be used to differentiate colours.  So I had a little go at this with help from the 3D printer.
Below is my first prototype; it uses an RGB LED to shine red, green and blue light at the facelet and then uses the LDR to detect the amount of each light reflected.  Although it took a certain amount of fiddling around with I eventually got to a stage were I could differentiate the 6 colours very well.

 I concluded that 9 of these stuck together would work very well; however it would be very difficult to keep such a PCB compact yet effective; also there would have to be a lot of data lines going back to the main board.  I concluded the solution was to make my first SMD board and use a 16 channel multiplexer along with ws2812 LEDs.  This uses 8 wires to connect to the main board and is very compact.  Below is the finished board and 3D printer having just started printing the dividers which fit on top of the PCB.  I have not yet been able to scan a face of the cube as I am waiting for some black PLA in which I can print it.

 So surface mount...after doing some extensive research I concluded it wouldn't be too difficult;  I picked up a toaster oven on ebay for £20 and purchased some solder paste.  I decided that I didn't want to spend too much on equipment so I bought a cheap thermocouple temparature sensor on ebay; I could have made a reflow oven however I was mid exams and really didn't have the time.  When I toast a board I heat it to 150 degrees C and leave it for 30 seconds, then I ramp it up and reflow the board.  As soon as its all done I take it out and let it cool.  As of yet I have had no problems :)

Since then I have made a few PCBs trying out this new technology:

My first ever SMD PCB was really designed so I could try it out; it featured a SMD RGB LED, a MAXIM 7219 LED matrix controller, a ds18b20 digital temperature sensor and an ATTINY85.  It went together fine although I still haven't got round to debugging it and getting it fully operational.  I also printed a stand for it which I think is a nice touch.  Eventually I want it to display the temparature in decimal form as well as the recent high and low in binary.
 After the first board I wanted to have another go, all I had components wise was a few LEDs left over and 10k resistors.  I decided this would make for a nice night light.  I printed an octopus in clear PLA which diffuses light really well.  The I designed and built a PCB which sits over the arduino and lights up the octopus.

The files for this project are up on thingiverse:

Anyway, back to the rubix cube solver.  I have prototyped most of the electronics and have finalised the CAD model for the claw assembly.  Design wise I just need to work out what the actual casing will look like and then I am going to get some acrylic panels laser cut.



Rubix Cube Solver

A few weeks ago, whilst I was in the planning stages of an 8x8x8 RGB LED cube I had a thought.  I decided that instead of starting a new cube maybe I would start a totally different project.  The first thing that popped into my head was a rubix cube solving robot.  2 or 3 years ago I tried to make a lego cube solver however I didn't have enough electronic knowledge back then to make it work successfully.  However I now believe it can be done.  Below is my 3D mock up of the two claw design which will turn the faces of the cube.  One of the main reasons for changing the project was my recent investment in a 3D printer.  I decided I would rather start a project which would utilise this.




So..after 1 year of slow progress with the RGB Cube, I decided at the beginning of half term that I would aim to have the cube working by the time the week was over.  It took me roughly 5 hours to come up with the double sided motherboard and single sided cube support board in Eagle CAD and after checking it over several times I proceeded to produce the PCB's.  At this point it was Friday night, and if I were to hit the deadline I was going to have to get it done.  After roughly 2 hours I had 2 circuit boards which on initial inspection appeared great.  However then I realised that in my hast I had neglected to think about the double sided board as carefully as I should have done.  I had produce a PCB with the sides the wrong way around.  I must say this is something which I will not be doing again as it lead to all sorts of complications with me having to surface mount through hole chips.

This was very frustrating.  However it did work out okay in the end, lesson learnt.  Now I moved onto the MOSFETs for controlling each of the layers of the cube.  I initially planned on using the original BUZ171 p channel ones I had ordered, however after spending an hour trying to work out why the things were not working I concluded they were faulty.  This set me back by 4 days whilst I waited for some replacements to arrive.  When they did I quickly soldered them in place and they worked perfectly.

Now, the next job was to remove the actual cube from the proto-board I initially tried to use, this involved using the wire cutters to cut each of the 48 legs from the base of the cube.  Then after painstakingly aligning each of the legs with the corresponding whole on the PCB I soldered the cube in place and stuck the boards together.  Finally it was done.

Now I moved onto the code, something which I had not quite worked out in my breadboard version.  However from the FFT spectrum analysis project I had made a discovery as to why my code had not been working - I had the interrupt which ran the cube running to quickly.  After working out how long the arduino took to send out the data to the TLC5940s I was able to make an informed decision about the interrupt frequency (I decided upon around 300Hz).  My far greater electronics knowledge now compared to a year ago meant I was bale to produce the code for the cube in around an hour - it really isn't that complicated now I understand it thoroughly.  

I was able to get red green and blue LEDs illuminated in the same column with no problem, however I made a quick piece of code which randomly set the value of each of the red, green and blue elements in every LED.  This produced a rather disappointing, watered out cube of colours which blinked.  I couldn't wok out why this was happening.  The next morning however it suddenly came to me; because the LED was not set bright enough, it was not making enough of a mark on the retina meaning the persistence of vision was not working as well.  This was because the LEDs were not bright enough.  The watered out appearance came because the colour were all random and therefore could all have been on, making them whit effectively.  The fix was simple, by making a piece of code which turned a number, between 0 and 1530 into a true colour on the spectrum allowed me to solve this problem.  Below is an image of the pattern:

  Although the diagram is a little rough it demonstrates the point, each black line is 255 bits apart (1 byte), 6 bytes consist of 1530 bits.  At each of these bits along the number line one of the colour elements is fully on ensuring that the LED will not flicker.  Then there is part of another colour as well which allows any colour on the spectrum to be produced by the cube.  This allows for much more attractive colours to be made and is something I have used before for other RGB LED projects.

So below is the final product, my 4x4x4 RGB LED Cube:

It isn't really done justice by the pictures, in real life it looks awesome!  After the difficulty I faced producing this 4x4x4 cube, I had practically given up on the final goal an 8x8x8 RGB LED Cube.  However the cube has restored my passion as well as all of the compliments I have had about the cube.  So I have started planning the 8x8x8 cube...



QR Code Clock Finished

After working out how to apply the mask patterns to the QR code scanner, I tested it for the first time.  It was a long 30 seconds of moving the reader back and forwards before finally I got presented with the time (not the most efficient way of getting the time but oh well).  Initially I was using the red pixels to display what would be black in a standard QR code; however after returning to the website were I initially saw this great project I realised that he had in fact reversed the colours.  This was very simple to do in code, a couple of lines did the job.  Now the QR code scans much faster with every scanner I have tried.  Pictured at the top is old colours on the left, inverted on the right.  I have also decided that it looks far better to have the clock changing every second; this also means if there is a small bug in my generating code which I have not yet found it doesn't ruin my demonstration as it quickly moves onto the next code.  

I have been very pleased with how this project has gone, from start to finish it took roughly 6 weeks and involved me making my first PCB and also using SMD technology.  The great thing about the design of the PCB means that in theory I could make a larger array with it having to change too much; maybe in the future I will attempt a QR code which can hold more data, and maybe even source some data from the internet to be displayed.



QR Code Clock

Here is the QR Code Clock in the final stages of development.  This was probably the hardest part of the whole build; I had to align all of the header and then solder then as flush with the PCB as I could.  This design enabled me to make the board significantly smaller, although did make it a little harder to construct.  After this I checked all of the connections and made amendments were necessary.  Then I started soldering on the SMD MAX7219 driver IC's.  Due to the header legs protruding slightly I had to bend the legs of the chips slightly; after doing this they fitted perfectly and it was not as hard as I had expected to solder them on.  I tested them one by one, and they all worked first time!

After having applied finished the hardware, I moved on to the software.  Initially it took me a while to work out how each display corresponded with each other.  I am using the adafruit GFX library as well as the MAX7219 driver library by adafruit.  This makes the control of the displays with each other very easy and I had the thing up and running in no time.  Keen to test it out I manually programmed in, pixel by pixel, a QR Code that I had generated online.  After some time, and many different QR Code scanning apps I managed to read it.  I believe that the multiple background colours to the QR code make it difficult to scan.  In the future I plan to experiment with tinted materials to see if I can improve the scanning of the Code. 

 The next step is to be able to generate QR Codes automatically, based on the data from the Real Time Clock module I have included on the board.  Below is the first step in the generation.  The data codewords and error correction codewords displayed in binary.  The next stage is to apply 8 different mask patterns, decide on the most effective and then implement that.  Finally 14 bits of data must be added to tell the scanner the error correction level and the data mask used.  At present I see no reason why this can't be achieved on the arduino, so the project is looking good.  I could not have got to this stage without the QR Tutorial at



LED Matrix and Double Side PCB

So this was attempt to at making a double sided PCB, this time I had thought about it much more carefully and come up with this jig to ensure the acetates were correctly lined up on every side.  I secured one with selotape to one of the plates below.  Then I lined up the vias on the second acetate, added some double sided tape and pressed the other board firmly down on top of it.  By making sure the two board right angles were lined up I was able to reproduce the alignment every time I put the two pieces of acrylic together.  I tested the theory a few times and then proceeded to insert the board.  I taped down one edge so that it wouldn't move around and then taped my jig together.  After exposing in my UV exposure box I developed, etched, cleaned and drilled.  The result was VERY good.  Other than a few shorts because of my routing of wires to close the board was perfect.  The only problem I did find was when it came to removing the tape from the jig.  I think the UV light caused it to break down, leaving lots of sticky residue.  This isn't great as it effects the transparency of the jig.  I think I will have to make a new one and then use a different method of securing.

 Here is the finished board.  Next step was to make the vias from one side of the board to the other.  For this I got a piece of wire and painstakingly soldered and then cut each one.  This took about half an hour to do 100 vias.  I think I will definitely investigate through hole plating at home!

After this I started to populate the board.  First in was the headers which I had to solder from the wrong side.  This was very stressful as I knew one wrong move and I would make a tiny short circuit which would be very difficult to fix.  I managed to get through without making any obvious mistakes so I moved on to installing the matrixes.  I started by testing them all on a breadboard that I set up.  The one by one I added them on to the board and tested as I went along.  I was expecting huge problems with this part of the build however I only had one; a broken track I assume on the covered part of the board. This was easily fixed by a small jumper wire and then I continued with the rest of the displays.

 After my first successful board I started the second, also a double sided board this one was slightly larger and has SMD chips on it.  This obviously required greater accuracy so I took a lot of care when aligning my acetates.   My care paid off as the board came out perfectly!  I have yet to solder in any components but bellow is a little picture of what the finished product should look like.  The next challenge is soldering those SMD chips.



UV exposure box and double sided boards

After adding a few capacitors to the voltage regulator the stepper began to behave and after writing a neat piece of code I was ready for my second attempt at photo-resist exposure.  I have to say that it worked very well, I ran the scanner at 1.7cm/minute which was just right.  To save PCB I only made a segment of the LED matrix board but it worked very well.

 However for the final design I will have to produce 2 double sided boards, so I decided to have another go at etching, this time using double sided PCB.  I cut out both acetates and drilled alignment holes in each corner.  I used small pieces of wire to hold the acetate in the correct position over the board.  

 Although the boards did develop very well again, after etching and drilling I discovered a slight alignment issue.  Just one of the corner wholes was off by about 1.5mm however this  threw the whole design off and meant that all the wholes were in the wrong places.  Consequently I have been thinking of a better way to expose the boards ensuring that they are lined up correctly.  


Here is my solution to the problem, I have cut two sheets of transparent acrylic roughly 20 x 15 cm.  Also I have some strips which are 20 mm wide and of a slightly thicker acrylic.  After glueing together I have formed two pieces of acrylic each with a right angled corner on them.  This means that they slot together in exactly the same place every time.

I plan to selotape one acetate to one side of acrylic, then line up the other acetate on top with a strip of double sided tape at each end.  Then I will place the other acrylic layer on top and the acetate will stick to it in the correct position.   Then I can firstly check they are lined up, then insert the PCB and tape the whole thing together.  Once I have exposed one side I simply flip the jig over and do the other.  Hopefully this should produce a better result.



UV Box Construction

After spending a large proportion of Sunday wiring all the separate elements of this project together, it is nearing completion. However currently I am having problems with the stepper motor which is frustrating.

Firstly here is the power source; I am running the whole thing from a 12v 1A power supply, I originally chose this as I assumed the stepper would run better from 12V (I am having second thoughts about this).  Consequently the LED array is wired to run from 12V.  Of course the control circuitry requires a 5V supply to operate.  I have mounted a 7805 voltage regulator to the stepper motor mount in the hope that some of the heat will be dissipated.  I am being very cautious after blowing up the LED maxtrixs.

 The UV LEDs provide a very bright, fine strip of light so hopefully this will lead to good exposure of PCBs in the future.  I have used the original scanner cable to provide the power to the LEDs.  I decided upon this as it flexes well and there is a slot specificly designed for it in the casing, so why not.  To ensure enough current could flow I used 5 wire for the positive and negative terminal.  Originally I intended to use a P channel MOSFET to switch the LED array on and off however I had problems due to the two different voltages I think.  Consequently I used a ULN2803 in its place.  This works very well.

 In place of the original front panel I have mounted a piece of blue card, cut to shape using the old plastic cover as a template.  I have decided to use a different LCD to display info as the original was not backlit.  This would make operating in the dark difficult!  This meant I had to make the LCD slot slightly bigger but this was easily achieved using the dremmel.  I have also added an old analogue stick I had lying round just for something a bit different and to make the coding a little more interesting.  Finnally there is a stand alone arduino which will be used to control everything.  Currently it is almost up to capacity with just two analogue ports free!

Finally here is the stepper motor driver and stepper in the form of a L293D H bridge motor driver.  Although the stepper works fine whilst free, the minute you put in in place to drive the scanner a horrible clicking noise occurs, not the smooth humming sound usually heard from a scanner.  As you can see from the picture below I installed potentiometer to try and reduce this but it had little effect.  So the stepper is going to take a little bit more experimenting.  



Scanner - UV Box

 Here is all of the things I salvaged from the scanner/ printer.  I got 3 stepper motors, an LCD display, a few cogs and rails and a few IR light gates as well as a power supply.

I purchased 50 ultraviolet LED's off ebay, which I plan to use to expose the photoresist on my PCB's.   I used a piece of plastic which is roughly 1 mm thick to support the LED's.  By drilling 0.8mm holed the led clicked in nicely and after soldering supported themselves very well.   The picture on the right is the UV scanner beam with a piece of paper on top - should be good.

Here is the LCD that came from the old printer.  I managed to find this post on another blog which gives some rough indication as to the pin allocation but it still took some guess work to get the display working.  I have also managed to get the stepper motor which drives the scanner to work, I had to use a H bridge driver and currently I am just powering it from the arduino supply; however I think that this will not provide enough power to move the scanner so I will probably end up running it off 12V.




PCB Production

So after all the necessary equipment had finally arrived I managed to have a go at making my own PCB.  I found this really useful tutorial on youtube (

 I opted to try out the board I designed for the RGB LED cube as it is single sided and relatively simple.  After checking it over I set it up to print to an inkjet acetate.  After inspecting the initial print I decided to print another and double them up as there were some very small holes.  After lining them up I taped them together and the quality was much better.  After a final visual inspection I cut an appropriate sized PCB with the Dremmel.

 After hooking up a red LED so I could see without effecting the photo resist on the PCB.  I used a photo frame to hold the acetate in place, I used a few heavy items to hold the glass flat against the board and then proceeded to shine a lamp onto the PCB.


Then used a developer solution to remove the unwanted photoresist; I was not very pleased with the result as I had to remove the board with half of the board over developed and the other half underdeveloped.  Finnally I etched the board in Ferric chloride which worked well; however the remaining photoresist ruined the top of the board.  This is something that could easily be corrected with a bit of time but I am keen to finder a better solution.

I think that the problem is exposing the board using a normal light bulb; I dont think that this gives an even distribution of UV light.  After browsing the web I found that many people have adapted old scanners to make a UV exposure box.  I am going to use UV LEDs along the scanning arm to equally expose the whole board.  It will take a bit of experimenting but I hope that eventually I will just be able to press a buton and the board will be properly exposed every time.  I am picking up an old scanner/printer tonight which I will adapt.



Dremmel Stand

The following project is one that I have been working on at school for the past couple of weeks.  It is a stand to hold my Dremmel when i am using the flex shaft with it (this is clearest in the bottom picture).  The base is bolted to my desk in a recess so it sits flush with the surface - so it wont get in the way.  Then when I need to use it I take the rod and screw it into the base.  It appears to be very effective and is a good solution I believe.



Attiny 85 Arduino IDE

My first shot at SMD; in the form of an Attiny 85 that I will be using for my school electronics project as a time keeper.  It is in the SOIC form so the pin pitch is not to fine.  As the etchant I ordered had not yet turned up I used a cutting wheel on my Dremmel to scrape away the cooper, making my self a little breakout board.  I then used plenty of flux and had no problem soldering the IC.  

After hooking up the Attiny to the arduino using a tutorial from the web, I went ahead and programmed it from the arduino IDE;  it worked first time amazingly!  I was very impressed as later on removed my breakout board to inspect it; I put it back but the wrong way round, this lead to the ground pin being high and vica versa.  There was smoke and a bad smell but after letting it cool down it still works perfectly.

For my school project I needed to get the Attiny 85 to send the time in seconds over a serial link.  It took a bit of playing around but eventually I got all the right settings and I could get seconds and thousandths of a second over the serial line when pin 2 on the Attiny is pulled high.  This is demonstrated with the LCD display below:



Eagle CAD

I have decided that it is finally time to start manufacturing my own PCB's; I have had enough of soldering millions of jumper wires between pins on a proto board and I want to try it.  This year I also want to try some SMD soldering as it is definitely the way forward.  And I feel the two 'new year resolutions tie in very well so here are a few board designs which I hope to try:

Firstly we have the QR code clock, which features 9 8x8 matrix's, 9 MAX7219 SMD, an arduino nano and a I2C real time clock.  This board will eventually display the time in the form of a QR code on display which will be scannable by a smartphone.  This project will allow me to have a go at manufacturing double sided PCBs and SMD soldering.

I have also opted to design a board for my RGB LED cube; this is more simple and features only a single sided PCB so I will be trying this first.



Speakers, Keyboards and Eagle CAD

Finally made some progress with the speaker project; I have started to wire up all the electronics and mount them in the housing.  Fortunately it looks like it is all going to fit :)  Now I just have to put the stand alone arduino in place and it will be done.

I have also found a different use for the light switch switch that I started making last year.  Due to the four buttons on the remote I thought perhaps it would be better as a quiz controller.  By lighting up each button a different colour and coding a quiz on a computer with corresponding colours, the idea would work nicely.

After trying to work out how to control the computer with picaxe, the microcontroller I originally used in the project; I came to the conclusion my best bet was to hack open a keyboard and try and use a few transistors to act as 'electronic keys'.

 The keyboard I opened had a large plastic sheet (3 layers) with copper tracks attached to the top and bottom layers and a hole in the middle layer corresponding to the location of the keys.  Each key basicly pushed the top sheet down enough to make it touch with the bottom sheet and complete the circuit.  After establishing which output pins were used for the top and bottom layer I started trying to solder to the main board (left).  At first however I couldn't, the pads had a graphite (I think) coating.  Luckily a Christmas present came in handy.  I used my new Dremel to sand off the top layer of graphite to reveal the bottom layer of copper.  This had varying degrees of success, but eventually I was able to make enough connections to produce 4 different keyboard inputs.

I hot glued 4 npn transistors to the back of the board and them soldered the collector to the common bottom layer pin and each emitter to its top layer pin.  Finally I connected some crimped ribbon cable to the 4 bases. After testing this out, I then set about adapting the original reciever board.  Luckily I had used an oversize chip so I could use the rfout command.  This left me with 4 digital IOs next to each other to which I soldered a SIL header for the ribbon cable to connect to.

The board looks a mess because after originally testing I realized that a buffer chip would be required.  Hence the mess on the back of the board.
After quickly editing the original code I was able to send the states of each push button over the RF link and then the corresponding letter would appear on screen.  Now I plan to write a piece of software for my computer in which I can use this to run a wireless quiz.

I have also started to learn the basics of Eagle CAD.  To the left here is the first component I have designed.  It happens to be a small dot matrix which I hope to use in the future...



Finished the Christmas jumper

After opting to use the arduino uno prototype board for this project, I started thinking about case design.  I needed something as small and as ligh as possible which could easily be fixed onto the inside of a jumper.  I decided upon this thin blue plastic which could easily be bent on a strip heater.  I measured and then bent two case sections, one wider than the other so they would slot together.  This design also meant access to the various cable was easily achievable. I drilled a hole in the top for the potentiometer to sit and then set to work designing a system that could secure it to the jumper.  I settled for velcro as the method of attachment because it is strong and easily glued into place.  I also attached a piece of elastic with velcro tabs at each end which secure the two halves of the case together.  This design appears to work well.
After having glued each LED to a ping pong ball the night before I set about designing the mounting system for this.  I only just had enough ping pong balls so I had to get it right first time; a situation I would not put myself in again.  I had already decided not to mount the LED's in the balls as this would require cutting large holes, which could easily lead to ruined ping pongs.  Having the balls mounted on the outside, meant that I had to secure the wires in some way so the weight of the ball wasn't on the tiny LED pads.  I decided upon poking holes and using them as strain holes which would also mean I could use the wires to mount the balls to the jumper.  As you can see from the picture each wire goes in one hole, out another, doubles back and wraps around itself.  I soldered these twists for strength and the  routed each of the 4 wires.  I was very pleased with this method of attachment as securing the balls to the jumper very easy and reliable, preventing and shorts from occurring.  After constructing each one I carefully hooked up, and tested them.  I lost 1 ball in the process by accidentally connecting the GND wire to VIN on the arduino which is the voltage rail.  I was down to 8 balls.

Next I set about work on the jumper.  I used little pieces of wire, poked through the jumper and twisted together to hold the tinsel outline of a Christmas tree in place.  Later I soldered these twists and then trimmed the down.  I also tied some mini gold disco balls to each point for decorative measure.  Finnally I pushed the ping pong balls wire connections through and twisted them together to hold them in place.

 Well aware of the sensitive polarity of these LEDs I decided that a labeling system would be required.  After having secured all the balls in place I painstakingly checked all the connections and labelled them with little flags that I had printed off.  This was very effective and is definitely a technique I will be using again.  It meant that when I turned the jumper inside out, I was able to connect everything without having to turn it over and check connections.

After attaching the balls in place I realized that the arduino still needed a velcro attachment point on the jumper, so I decided to sew in a velcro path before I went any further.  It was hard enough with the ping pong balls attached anyway!

 After this I proceeded to make all the connections between balls.  I used a combination of conductive thread and solid core wire.  This was my first experience of conductive thread so I did a little bit of research to refine my technique.  I ended up making loops of wire in the connection wires from the ping pong balls.  This allowed me to tie the thread to each connection and then sew between connection points.  I also used some bare conductive paint to ensure a good connection between thread and wire.  In some cases the balls connections wires were long enough to solder together so that was easy.  After about two hours it was done.

After hooking up the alligator clips for a test run, I triple checked everything, in the full knowledge that one connection would blow all the LEDs up.  I loaded some test code onto the arduino and plugged it in.  After the most tense couple of seconds in my life, the LEDs lit up!  This was a relieving sight.  That night I woke up with a very bad headache which I put down to the stress of making these connections.  But it was worth it, the next day I got in from school and immediately started tidying the insides up; after securing a piece of cloth to cover the connections and spiky wires I sat down and started to write some animations.  This was by far the easiest bit.

With little time I was unable to integrate the microphone into my code but this is something I hope to do in the future.  All in all I feel this has been  a very successful project, and I hope to do more like it in the future.  i have also learnt a lot which, I will no doubt be able to apply in future projects.



Christmas Jumper - Circuitry

After messing around on the breadboard for several hours, I finally found a suitable amplifier for my microphone.  It uses an operational amplifier to boost the signal from the mic - schematic from .  Then I put it on a piece of proto board and added some SILs at the other end for interface with the arduino.  The board slots on top of the arduino, it has the potentiometer of board as well as the microphone.  A cool feature are the poppers which will allow the LED circuit to be easily separated from the control circuit and allow easy connection to the conductive thread.

 On the right is the LEDs still in the package, these are WS2812 RGB LEDs, each individually adressable,  in the middle is one working.  As I mentioned in a previous post I plan to mount them toping pong balls (below) to dissipate the light and make Christmas tree like decorations.

Finally, below is the first LED mounted to a ping pong ball; afterwards I realized I did not have a clue which end was the top of the package (oops!).  Fortunately I was able to use my torch to identify the small notch out of one corner.  After, I marked the top end of the IC with a small dot using a sharpie.

Now all that is left to do is sew everything to the jumper and write some code for a few cool animations!



Wearable Electronics

The thought of a Christmas party next week at explorers sparked my imagination.  After searching round ebay, I found these surface mount RGB LEDs with control circuit integrated.  I plan to put the LEDs inside ping pong balls to dissipate the light as they are very bright on there own.  They are used in the adafruit neo-pixel so there is an easy to use arduino library which means controlling the 9 I have will be easy.  I also have bough a bobbin of conductive thread so I can sew the electronics into some sort of top.  Finally I have an electret microphone which I will make a basic amp circuit for and then use to affect the LEDs based on sound level.  



Project update

After having finally cut a hole in the front heat sink of the old speaker assembly I had an isea to use it as a heat sink for both voltage regulators; one for 12v o power the strip light and one for 5v to power the rest of the electrics.  However this idea, it turns had had a massive flaw.  The back plate to the voltage regulators not only dissipate heat but it turns out they also give out the regulated voltage.  This meant that the 5v rail on my breadboard went to 12v with me being blissfully un-aware!  After not being able to program the arduino I started poking around with the voltmeter and realized what had happened.  Unfortunately the 12v has destroyed both LED matrix's and drivers as well as the ATMEGA 328pu chip and USB to TTL converter.  An expensive accident!  I have ordered some more components but this time I had to keep the price down so no bi colour matrix's :(  Although there is no doubt that I will ever do this again!

This week I have finnally got around to constructing the circuit board for the LEGO clock, and here it is:

At the moment I have not fully tested however I do know that the PICAXE 14m2 chip is working and the op amp is not.  It's going to take a bit of time to work it all out and I'm being very cautious at the minute which slows it down even more.

Finally I made an interesting discovery; hot glue sticks dissipate LEDs very well.  As you can see from the picture on the left it gives a very even distribution of light. This is something I will definately take advantage of this at some point in the future.



Spectrum Annalysis

Although I am still working on the library in order to try and improve the refresh rate, I have got one feature working which is the red peak marker.  This is pushed up by the bar and then falls back down at 1 LED every 100ms until it reaches the bottom or gets puched back up.  It lools really cool, however it would benefit from a quicker refresh rate.