Schema for the display of the time:-

Display Time Schema-sm

 

Schema for the display of the temperature:-

Display Temp Schema-sm

Changes from v1

  • Instead of creating a lattice from cardboard for each of the letter cells, I used 12mm MDF and used a large (16mm) countersink bit to create countersunk holes with a bevel around the LED, a bit like the reflector in a torch, and painted it white to reflect as much of the light as possible.
  • Use an LDR to allow automatic brightness adjustment based on the light level in the room.
  • Display the temperature – because why not.

I originaly thought of reading and displaying the temperature from the PICAXE 18M2+, however there wasn't a lot of program memory left, and additionally reading the temperature using the readtemp12 command actually stops the chip from doing anything else – like responding to button presses – for about ¾ of a second, so I decided instead to use a separate PICAXE 08M2 to read and display the time.

Light Reflector Array

Light reflector array drilled in to a piece of MDF. I drilled pilot holes first, then used large countersink to produce the beveled edge:-

Light reflector array

I wandered a bit in the lower left corner, so stuck on some cardboard to fill the holes along the edge.

I was watching some videos about making PCBs using solder paste and ovens to reflow the solder, and I wondered how easy it would be to remove components in a similar fashion. What to use as the heat source?  A hot-air gun/paint stripper.

I had an old compact flash card reader that's been sitting in a draw for years, so I thought I'd use that as my first victim/experiment.

20 minutes later I have a bunch of random components, which may or may not be of some use at some point (Edit: I found a use for some of the SMD resistors in the other word clock I'm making), but hey – it worked:-

Components removed from PCB

Voila; a bunch of random components. There's some octal flip-flops, resistor arrays, SMD resistors, through-hole transistors, smd transistors and diodes, a couple of large capacitors and other bits and pieces.

Component Haul

The heat gun I have has two settings; I used the low setting, which is about 350 degrees C. The high setting is about 600 degrees.

I clamped the board upright in a vice and found that the larger SMD components just fell off as the solder melted, whereas the smaller components I had to pick off with some tweezers.

This particular board is a 4 layer board and I found that the through hole components took a minute or so of heating before the solder melted all the way through enough for me to pull the components off. I also tried this on an old PS/2 ball mouse PCB, which was just a double sided board, and the through-hole components on that came out much easier.

Only disappointing thing is that SMD capacitors don't have any markings on them, so you don't know what their capacitance is. How easy is it to make a capacitance meter?

I thought I would have a go at making an LED cube.

I had some 4017 decade counters, so I was thinking about making a 10x10x10 RGB cube. From a numver of other LED cubes I've seen, the way that they do it is to provide power to all of the LEDs in every column that contains the LED to be lit, and then ground the plane containing the LEDs to be lit. If I wanted to have a 10x10x10 RGB cube, that would mean I would need 300 lines for the LED anodes, plus 10 for the cathods (assuming common-cathod LEDs).

It occurred to me that maybe you could do it another way; join all of the LED anodes together in a plane, and then ground each column. This way I would only need 30 lines for the anodes, plus 100 for the cathods.

I thought I would try a simple one first using this method; a 3x3x3 mono LED cube. I also thought I'd try some hardware that I haven't used before; an Arduino UNO.

3x3x3 Mono LED Cube

3x3x3

Previously, I have used stripboard for making electronic circuits. I was watching some episodes of EEVBlog on YouTube, and in one episode he looked at an open source application suite call KiCad which allows you to design electronic schematics and PCBs. So I thought I would also have a go at creating my own PCB rather than use stripboard.

Altough I still used stripboard for prototyping because it's quicker and easier.

I wanted to have the ability to have different brightness levels, but I didn't think the PWM feature of the UNO would work very well since each LED would only be on for a fraction of a second; If I wanted 30 frames per second, there are 9 columns to scan through which means 270 updates per second. So I thought of using a higher scan rate and have each LED during each frame scan depending on its brightness level. I decided on 8 levels of brightness, including off, which meant I would need a scan rate of 270*8 = 2160 updates per second.

I was new to the ATMEGA328-P (Arduino UNO), and wasn't aware of the options I had with it, so in my first test I used a 555 timer to provide a pulse. The R/C values I used gave me a pulse of about 2.6KHz. The pulse is used to raise an interrupt in the 328-P, and each interrupt forces the next column of LEDs to be displayed. I discovered later that I could get rid of the 555 and use one of the PWM pins on the 328-P to provide the pulse. The range of PWM options is limited, but I could get a 3.9KHz pulse which was a bit faster than I needed, but it worked,

Revision 1

The first revision is a test of how I thought a larger LED cube could be made.

3x3x3 Mono LED Cube r1 Schematic

This version uses two 4017 decade counters to provide the X/Y scanning. These drive the transistors in the array which ground each column of 3 LEDs. The 4017's are slaved together; when the first one gets to the fourth row, it resets itself and then clocks the second 4017. When the second 4017 gets to the fourth row, it resets itself. Each 4017 drives three transistors (X and Y), which together then turn on one of the transistors in the 3×3 array.

The 555 timer is used to create a continuous pulse to the Arduino. This pulse is used to raise an interrupt. The interrupt calls the display routine which draws the next "column" of LEDs. The cube consitst of 9 "columns", and I wanted at least a 30fps display rate. I also wanted to have some sort brightness level; I decided on 8 levels. This meant I needed a pulse frequency of at least 30*9*8 = 2160 hertz. The capacitor and resistor values I used gave about 2.6KHz.

Revision 2

The first revision was a test of using the 4017s and an array of transistors to control a X/Y matrix. This second revision removes most of the unncessary components and just makes a 3x3x3 cube.

3x3x3 Mono LED Cube r2 Schematic

I got rid of one of the 4017s, and also the X/Y control transistor. The 4017 could directly drive the X/Y column transistors.

3x3x3 LED Cube r2 from Marc Symonds on Vimeo.

Revision 3

Removed some more unnecessary componants. I can get rid of the 555 and just use one of the PWM pins on the Arduino to provide the interrupt pulse. I can also get rid of the shift register and just use 3 pins from the Arudino directly. I can also replace 8 of the transistors in the 3×3 array with a ULN2803A, which is an 8 way Darlington array.

3x3x3 Mono LED Cube r3.5 Schematic

 

Finished 3x3x3 LED Cube in action using a home made PCB, except for the LEDs which are on a piece of stripboard.

3x3x3 Mono LED Cube r3 – On homemade PCB from Marc Symonds on Vimeo.

 

PCB Layout (component side):-

3x3x3 LED Cube PCB Layout

 

Completed PCB:-

Completed PCB

Was bored, so decided to have a go at making a Word Clock.