There’s a lot of acronyms in the title for this article – what I wanted to say was “Adventures with surface-mount technology soldering with the Wayne & Layne Blinky Persistence-of-vision surface-mount technology reprogrammable light emitting diode kit…” No, seriously. Anyhow – after my last attempt at working with hand soldering surface-mount components couldn’t really be called a success, I was looking for something to start again with. After a little searching around I found the subject for today’s review and ordered it post-haste. Delivery from the US to Australia was twelve calendar days – which is pretty good, so you know the organisation is shipping quickly once you paid.

The kit is by “Wayne and Layne” which was founded by two computer engineering graduates. They have a range of open-source electronics kits that look like fun and a lot of “blinkyness”. Our POV kit is a simple persistence-of-vision display. By using eight LEDs in a row you can display words and basic characters by waving the thing through the air at speed, giving the illusion of a larger display. An analogy to this would be a dot-matrix printer that prints with ink which only lasts a fraction of a second. More on that later, first – putting it together.

Assembly

Like most other kits it arrived in an anti-static bag, with a label clearly telling you where the instructions are:

Upon opening the amount of items included seemed a little light:

However the instructions are detailed:

… and upon opening, reveal the rest of the components:

… which are taped down to their matching description on the cardboard. When cutting the tape to access the parts, do it slowly otherwise you might send them flying off somewhere on the bench and spend ten minutes looking for it. Finally, the PCB in more detail:

After reviewing the instructions, it was time to fire up my trusty Hakko and get started. At this point a few tools will come in handy, including SMT tweezers, some solder wick and a piece of blu-tac:

Following the instructions, and taking your time are the key to success. When mounting the two-pad components – put a blob of solder on one pad, then use tweezers to move the component in whilst keeping that pad of solder molten, remove the iron, then let go with the tweezers. Then the results should resemble capacitor C1 on the board as shown below:

Then a quick blob at the other end seals it in. This was easily repeated for the resistors. The next step was the pre-programmed PIC microcontroller. It is in the form of a SOIC package type, and required some delicate work. The first step was to stick it down with some blu-tac:

… then solder down one pin at each end. Doing so holds it in place and you can remove the blu-tac and solder the rest of the pins in. I couldn’t solder each pin individually, so dragged solder across the pins then tried to soak up the excess with solder wick. I didn’t find this too successful, so instead used the solder sucker to mop up the excess:

If you solder, you should get one of these – they’re indispensable. Moving forward, the PIC finally sat well and looked OK:

Next was the power-switch. It clicks neatly into the PCB making soldering very easy. Then the LEDs. They’re tiny and some may find it difficult to identify the anode and cathode. If you look at the top, there is a tiny dot closer to one end – that end is the cathode. For example, in the lineup:

Soldering in the LEDs wasn’t too bad – however to save time do all the anodes first, then the cathodes:

At this point all the tricky work is over. There are the light-sensor LEDs and the reset button for the top:

And the coin-cell battery holder for the bottom. The battery is also included with the kit:

Operation

Once you’ve put the battery in, turn it on and wave it about in front of yourself. There are some pre-programmed messages and symbols already loaded, which you can change with the button. However you’ll want to put your own messages into the POV – and the process for doing so is very clever. Visit the programming page, and follow the instructions. Basically you enter the text into the form, set the POV to programming mode – and hold it up against two squares on your monitor. The website will then blink the data which is received by the light-sensitive LEDs. Once completed, the POV will inform you of success or failure. This method of programming is much simpler than having to flash the microcontroller every time – well done Wayne and Layne. A pin and connector is also included which allows you to wear the blinky as a badge. Maybe at a hackerspace, but not in public.

Once programmed some fun can be had trying out various speeds of waving the blinky. For example, here it is with the speed not fast enough at all:

… and a little bit faster:

And finally with me running past the camera:

Furthermore, there is an ‘easter egg’ in the software, which is shown below:

Conclusion

We had a lot of fun with this simple little kit, and learned a thing or two about hand-soldering SMT. It can be done with components that aren’t too small – however doing so was an interesting challenge and the results were quite fun. So it met our needs very well. Anyone can do it with some patience and a clean soldering iron. You can order the Blinky POV SMT kit directly from Wayne & Layne. Full-sized images available on flickr. This kit was purchased without notifying the supplier.

In the meanwhile have fun and keep checking into tronixstuff.com. Why not follow things on twitter, Google+, subscribe for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other – and we can all learn something.

In this article we examine a five digit, seven-segment LED display from Hewlett-Packard, the 5082-7415:

According to the data sheet (HP 5082-series.pdf) and other research this was available for a period of time around 1976 and used with other 5082-series modules in other HP products. Such as the Hewlett-Packard 3x series of calculators, for example:

Using the display is very easy – kudos to the engineers at HP for making a simple design that could be reusable in many applications. The 5082-7415 is a common-cathode unit and wiring is very simple – there are the usual eight anodes for segments a~f and the decimal point, and the five cathodes.

As this module isn’t too easily replaceable, I was very conservative with the power supply – feeding just under 1.6V at 10mA to each of the anode pins. A quick test proved very promising:

Excellent – it worked! But now to get it displaying some sort of interesting way. Using the following hardware…

… it was connected in the same method as a four-digit display (except for the extra digit) as described in my tutorial. Don’t forget to use the data sheet (HP 5082-series.pdf). You don’t have to use Arduino – any microcontroller with the appropriate I/O can take care of this.

Here is a simple Arduino sketch that scrolls through the digits with and then without the decimal point:

Arduino

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

// Arduino sketch to demonstrate HP 5082-7415 LED Display unit

// John Boxall, April 2012

intclockPin=6;

intlatchPin=7;

intdataPin=8;

// array for cathodes - sent to second shift register

bytedigits[]={

B10000000,

B01000000,

B00100000,

B00010000,

B00001000,

B11111000};// use digits[6] to turn all on

// array for anodes (to display 0~0) - sent to first shift register

bytenumbers[]={

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11110110};

voidsetup()

{

pinMode(clockPin,OUTPUT);

pinMode(latchPin,OUTPUT);

pinMode(dataPin,OUTPUT);

}

voidloop()

{

inti;

for(i=0;i<10;i++)

{

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,digits[6]);

shiftOut(dataPin,clockPin,LSBFIRST,numbers[i]);

digitalWrite(latchPin,HIGH);

delay(250);

}

// now repeat with decimal point

for(i=0;i<10;i++)

{

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,digits[6]);

shiftOut(dataPin,clockPin,LSBFIRST,numbers[i]+1);

digitalWrite(latchPin,HIGH);

delay(250);

}

}

And the results:

Now for something more useful. Here is a function that sends a single digit to a position on the display with the option of turning the decimal point on or off:

Arduino

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

voiddisplayDigit(intvalue,intposit,booleandecPoint)

// displays integer value at digit position posit with decimal point on/off

{

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,digits[posit]);

if(decPoint==true)

{

shiftOut(dataPin,clockPin,LSBFIRST,numbers[value]+1);

}

else

{

shiftOut(dataPin,clockPin,LSBFIRST,numbers[value]);

}

digitalWrite(latchPin,HIGH);

}

So if you wanted to display the number three in the fourth digit, with the decimal point – use

Arduino

1

displayDigit(3,3,true);

with the following result:

We make use of the displayDigit() function in our next sketch. We introduce a new function:

Arduino

1

displayInteger(number,cycles);

It accepts a long integer between zero and 99999 (number) and displays it on the module for cycles times:

Arduino

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

// Arduino sketch to demonstrate HP 5082-7415 LED Display unit

// Displays numbers on request

// John Boxall, April 2012

intclockPin=6;

intlatchPin=7;

intdataPin=8;

// array for cathodes - sent to second shift register

bytedigits[]={

B10000000,

B01000000,

B00100000,

B00010000,

B00001000,

B11111000};// use digits[6] to turn all on

// array for anodes (to display 0~0) - sent to first shift register

bytenumbers[]={

B11111100,

B01100000,

B11011010,

B11110010,

B01100110,

B10110110,

B10111110,

B11100000,

B11111110,

B11110110};

voidsetup()

{

pinMode(clockPin,OUTPUT);

pinMode(latchPin,OUTPUT);

pinMode(dataPin,OUTPUT);

randomSeed(analogRead(0));

}

voidclearDisplay()

// turns off all digits

{

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,0);

shiftOut(dataPin,clockPin,LSBFIRST,0);

digitalWrite(latchPin,HIGH);

}

voiddisplayDigit(intvalue,intposit,booleandecPoint)

// displays integer value at digit position posit with decimal point on/off

{

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,LSBFIRST,digits[posit]);

if(decPoint==true)

{

shiftOut(dataPin,clockPin,LSBFIRST,numbers[value]+1);

}

else

{

shiftOut(dataPin,clockPin,LSBFIRST,numbers[value]);

}

digitalWrite(latchPin,HIGH);

}

voiddisplayInteger(longnumber,intcycles)

// displays a number 'number' on the HP display.

{

longi,j,k,l,z;

floatf;

clearDisplay();

for(z=0;z

voidloop()

{

longl2;

l2=random(0,100001);

displayInteger(l2,400);

}

For demonstration purposes the sketch displays random numbers, as shown in the video below:

Have fun and keep checking into tronixstuff.com. Why not follow things on twitter, Google+, subscribe for email updates or RSS using the links on the right-hand column, or join our forum – dedicated to the projects and related items on this website.

Now and again I have looked at SMT (surface-mount technology) components and thought to myself “I should try that one day”. But not wanting to fork out for a toaster oven and a bunch of special tools I did it on the cheap – so in this article you can follow along and see the results. Recently I ordered some ElecFreaks SOIC Arduino Mega-style protoshields which apart from being a normal double-sided protoshield, also have a SOIC SMT pad as shown below:

First up I soldered in two SOIC format ICs – a 555 and a 4017:

These were not that difficult – you need a steady hand, a clean soldering iron tip and some blu-tac. To start, stick down the IC as such:

… then you can … very carefully … hand-solder in a few legs, remove the blu tac and take care of the rest …

The 4017 went in easily as well…

…however it can be easier to flood the pins with solder, then use solder-wick to soak up the excess – which in theory will remove the bridges between pins caused by the excess solder. And some PCB cleaner to get rid of the excess flux is a good idea as well.

Now to some smaller components – some LEDs and a resistor. These were 0805 package types, which measure 2.0 × 1.3 mm – for example a resistor:

The LEDs were also the same size. Unlike normal LEDs, determining the anode and cathode can be difficult – however my examples had a small arrow determining current flow (anode to cathode) on the bottom:

Another way is to use the continuity function of a multimeter – if their output voltage is less than the rating of the LED, you can probe it to determine the pins. When it glows, the positive lead is the anode. Handling such small components requires the use of anti-magnetic tweezers – highly recommended…

… and make holding down the components with one hand whilst soldering with the other much, much easier. Unlike normal veroboard, protoshield or other prototyping PCBs the protoshield’s holes are surrounded with a “clover” style of solder pad, for example:

These solder pads can make hand-soldering SMT parts a little easier. After some experimenting, I found the easiest way was to first flood the hold with solder:

… then hold down the component with the tweezers with one hand while heating the solder with the other – then moving and holding one end of the component into the molten solder:

The first time (above) was a little messy, but one improves with practice. The clover-style of the solder pads makes it easy to connect two components, for example:

With some practice the procedure can become quite manageable:

As the protoshields are double-sided you can make connections between components on the other side to keep things neat for observers. To complete the experiment the six LEDs were wired underneath (except for one) to matching Arduino Mega digital output pins, and a simple demonstration sketch used to illuminate the LEDs, as shown below:

For one-off or very low-volume SMD work these shields from elecfreaks are quite useful. You will need a steady hand and quite a lot of patience, but if the need calls it would be handy to have some of these boards around just in case. For a more involved and professional method of working with SMT, check out this guide by Jon Oxer.

In the meanwhile have fun and keep checking into tronixstuff.com. Why not follow things on twitter, Google+, subscribe for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other – and we can all learn something.

Time for a new component review – the Linear Technology LTC6991 low frequency oscillator. This is part of Linear‘s Timerblox series of tiny timing devices. The full range is described on their web site. It is available in DFN or SOT-23 (below) packaging. Our example for today:

The graph paper in the image is 5mm square, so the IC itself is tiny yet worthwhile challenge. Although reading the data sheet may convince you it is a difficult part to use, it is actually quite simple. This article will give you the “simple way”. Once again I have lashed out and will hand-solder an SMD onto a SOT-23 board:

Messy, but it works. Moving along…

My reason for examining the LTC6991 was as a lower-power substitute to using a 555 timer to create a square wave at various frequencies. Normally I wouldn’t give two hoots about the current draw, as everything on my bench is powered from a lab supply.

However when designing things for external use, they are usually powered by a battery of some sort or solar – so the less current drawn the better. The bog-standard TI NE555 has a current draw (with output high) of between two and five milliamps (at 5V). Which doesn’t sound like much – but our 6991 is around 100 to 170 microamps at 5V. These figures are for the respective timers without an output load. You can source up to 20mA from the output of the 6991, and when doing so will naturally increase the current load – but still it will be less than our triple-nickel.

The LTC6991 offers a period range of 1 millisecond to 9.5 hours; which translates to a frequency range of 29.1 microhertz to 977 Hz, with a maximum frequency error or <1.5%. Only one to three external resistors are required to setup your timing requirements. For a more detailed explanation, please see the data sheet.pdf. The duty cycle defaults to 50% however this can be altered by using the IC in voltage-controlled period mode.

Linear have made using the IC very easy by providing an Excel spreadsheet you can use to make your required calculations, available from this page. For example, to create a 1 Hz oscillator, we enter our figures in as such:

and the macro returns the following details:

Very convenient – a schematic, the required resistors, and example timing diagram. I recreated this example, however not having the exact values in stock caused a slight increase in frequency – with Rset at 750k, Rdiv1 at 910k and Rdiv2 at 180k my frequency was 3.1 Hz. Therefore to match the accuracy of the LTC6991 you need to ensure a your external components are close to spec and a very low tolerance. It produces a good square-wave:

If you cannot use the exact resistor values recommended, use resistors in series or parallel to achieve the desired values. Don’t forget to measure them in real life if possible to ensure your accuracy does not suffer.

Pin one (RST) can be left floating for nomal oscillation, when high it resets the IC and forces output (pin six) low. As you can see, it is very simple to use especially with the provided spreadsheet. The required formulae are also provided in the data sheet if you wish to do your own calculations. Pulse width can be controlled with a fourth resistor Rpw, and is explained on page sixteen of the data sheet.

Although physically it may be difficult to use as it is SMD, the power requirements and the ability to generate such a wide range of oscillations with so few external parts makes the LTC6991 an attractive proposition.

The LTC6991 and the Timerblox series are new to market and should be available from the usual suppliers in the very near future such as RSand element-14.

As always, thank you for reading and I look forward to your comments and so on. Furthermore, don’t be shy in pointing out errors or places that could use improvement. Please subscribe using one of the methods at the top-right of this web page to receive updates on new posts. Or join our Google Group.

[Note – The LTC6991was a personally-ordered sample unit from Linear and reviewed without notification]