WhirlyGIG

From Etheus

WhirlyGIG
Enlarge
WhirlyGIG
Displaying the word GYRO
Enlarge
Displaying the word GYRO

The idea for this project was first conceived after the publication of a project called 'Space Writer Wand' in Practical Electronics Magazine December 1994 issue. Numerous clocks and gadgets have since been made commercially available that appear to write messages 'in the air'. This project uses the similar technique to these products, however it can write a continuous stream of text using a high speed rotor and a strip of LEDs. The word WhirlyGig is derived from the word whirl meaning to spin, and the acronym GIG which stands for Graphical Information Gyro.

Contents

Overview

The WhirlyGIG is an electronic display created using just 8 LEDs. These LEDs move at a relatively high speed on the end of a rotor, and flash specific patterns at precise time intervals. To the viewer, it has the appearance of a curved LED matrix sign with scrolling text. The sign has a full 360 degrees viewing angle, but there is a point on the sign where new text appears, and old text disappears. The sign message is fully programmable since it makes use of a PIC16F84 micro-controller. The original program design allowed a 256 character message to be Hard-Coded into the PIC's program memory. Later versions allow the display to continually communicate with a computer via a simplex serial port link. This allows a message of any length to be displayed.

Principle of Operation

When an intense light source is swept through the air, glowing trails can sometimes be seen. The effect of the air appearing to remain glowing after the light source has moved is an optical illusion. This effect relies on the 'Persistence of Vision' of the viewer's retina (the photosensitive part of the eye). In general, the human eye has an exceptionally quick reaction time in detecting dark to light transients, however for light to dark transients it is much slower. This causes a temporal memory effect which can produce interesting effects especially with bright light sources in dark conditions. A common example of this is the ability to draw shapes with sparklers on bonfire night.

The WhirlyGIG display comprises of a strip of 8 ultra bright LEDs attached to the end of an arm which rotates about a central axis. The arm provides a radius of approximately 20cm. The LEDs always point outwards, so they are only visible during half of their cycle. As the LEDs rotate, they produce the text or graphical information by changing their pattern at precise intervals. This is controlled by the software running on a PIC micro-controller.

Diagram of Rotor
Enlarge
Diagram of Rotor
Diagram of Scanning
Enlarge
Diagram of Scanning

Although the WhirlyGIG produces a really eye-catching display, a few assumptions have been made that are inherently part of the design. Firstly, it is important that the viewer's eyes remain perfectly still while the display is scanning. Eye movement causes the display to be completely corrupted. This side effect is more noticeable to some people than to others. Secondly the viewer's eyes must have the correct reaction and persistence characteristics for the LEDs to appear to write the message in the air. When showing the display at an exhibition, people in the younger age ranges appeared to be able to see the display more clearly than older people, who often said they just saw 8 flashing LEDs spinning around.

Hardware

Although a lot of time was spent designing the various components of this display, not much thought was put into how they all fit together. This approach meant there were many problems that had to be rectified as they arose. The display can be broken down into four main components, base, rotor, control PCB and LED strip.

Whirly-GIG Front Side View
Enlarge
Whirly-GIG Front Side View
PCB Top view
Enlarge
PCB Top view

The Base component is the metal block part of a 'Helping Hand' soldering aid. This is attached via the centre of an electrical connection block to the shaft of the drive motor. The arrangement used here is to have the drive motor inverted, so that the shaft is fixed, and the housing rotates with the rotor arm and LEDs. The motor housing is attached to the main rotor arm which consists of a strip of PCB glued to the flange plate of the motor. This PCB is used in conjunction with a stationary spring to commutate electrical power from the stationary base to the electronics controlling the display. The motor shaft is used as the electrical return path. The LED strip is fastened to the rotor by stiff copper wires. The control PCB and a set of counter weights are also attached to the rotor using nuts and bolts. In order for the control circuit to know where it is, a Photo Interrupter is used to create a pulse on every rotation. This requires a stationary flag fixed to the base to break the infra-red beam.

Power Pick-up
Enlarge
Power Pick-up
Photo Interrupter
Enlarge
Photo Interrupter

Control Circuit

The control circuit controls the power to the motor and LEDs. It receives signals from the photo interrupter and the power source. Since there is only one electrical connection that passes to the rotor (that used for power), the communications link from the computer is achieved by modulating the data onto the power supply. At the heart of this circuit is a PIC16F84 micro-controller. This is clocked using a 6MHz crystal, and supplied with 5V from a voltage regulator. All LED outputs are buffered using bipolar NPN transistors. The LED strip therefore has a common anode arrangement. The motor is controlled by the PIC using a Power MOSFET.

PCB Side View
Enlarge
PCB Side View
PIC Micro-controller
Enlarge
PIC Micro-controller

The two large capacitors seen on the PCB are used for supply smoothing. It was anticipated that the software would take much longer to complete than creating the hardware, so programming ports were fitted to the PCB to make in-circuit programming easier and quicker. Diodes are used to isolate the incoming supply from the smoothing capacitors, allowing the power connection to be used as a communication interface. This raw supply voltage is then limited to 5V using a resistor and Zener diode, and used as a serial data input to the PIC. Ribbon cables are used to interconnect the control PCB to the LED strip.

Circuit Diagram
Enlarge
Circuit Diagram
Diagram of PCB Layout
Enlarge
Diagram of PCB Layout

The Circuit Diagram of the WhirlyGIG is quite simple because all of the hard work is done by the PIC micro-controller. The data/power modulator circuit shown on the right of the circuit diagram modulates RS232 data from a PC serial port onto the power supply of the WhirlyGig. This removes the need to use a third electrical connection. In order to receive the data, the PIC must be programmed with the Serial Communication version of the firmware, see the Downloads section. WARNING be extra careful when making connections to a computer. This circuit ASSUMES that the power supply used is completely isolated with respect to that of the computer. They must NOT share a common ground/0V line. This circuit does not in any way conform to the RS232 interconnection specifications. This could blow up your computer!

Power

It may at first not seem logical to have the motor being used in an inverted fashion, and to have the control circuit rotating at high speed. It was designed this way to reduce the number of electrical connections that have to be made to the spinning rotor. The current design uses the motor shaft as the ground, and +Ve pick-up on the underside of the rotor PCB. A bent radial spring, insulated from the base using a grommet, is used for this because it provides a low friction, low wear contact with no sparking. The data modulation from the PC serial port is achieved using a power MOSFET biased to be normally on. The output from the computer serial port is normally at -10V which is opposite to what is required by the MOSFET. A very crude inversion was achieved transposing the ground and signal wires that come from the computer serial port.

Software

The software is by far the most complicated part of the design. Two separate programs were written for the PIC, one with a hard-coded 256 character string, and one with the ability to receive data from a computer serial port. Both programs use every byte of program memory the PIC has to offer. The software is written in PIC assembler, but sub-divided into functions that perform specific tasks. These functions are then all called from within a main loop, and from the interrupt handling routines. The program has to make use of 2 tables. The first contains the character string to be displayed. The second contains the font face information. The character strings are stored as ASCII values. A decode function has to be used to decode these values into the correct indexes for the font table. A set of self-test routines are used on start-up to check the bearings of the motor by measuring the acceleration and deceleration characteristics of the rotor. Full power is only applied to the motor once it has been fully tested, and the rotor is already spinning over 150 RPM. If the speed of the rotor reduces below 300RPM during normal operation, the bearings are re-tested. The bearings can then be oiled if required. The serial version also has the routines to handle the serial communication. This includes buffer handling functions. On start up, the buffer is loaded with a default string Hard-Coded into program memory. Since the communication is simplex, synchronisation characters have to be introduced into the stream. These special characters make sure that the computer and WhirlyGIG are synchronised by freezing the display. The display can then only move on when the character has been erased from the buffer. This requires the computer to keep track of the buffer, and using a combination of accurate timing and synchronisation characters, a continuous stream of text can be achieved. Finally, special characters are used to turn off and on the motor.

Downloads

Specifications

  • Display resolution: 150x8 pixels
  • Rotor Speed: 320 RPM
  • Message size (hard coded): 256 chars
  • Default message size (serial version): 30 chars
  • Buffer size (serial version): 48 chars
  • Font Face: Courier
  • Serial baud rate: 600 baud
  • Supply Voltage: 7.5-12 volts
  • Supply Current (operational): 400mA
  • Supply Current (power save): 2mA

Graphical Information Gyro

Taking Photographs of the WhirlyGIG display is an art form of its own. The digital camera which was used to for the photos did not have settings for shutter speed, however it was possible to indirectly change this by altering the ambient light level. If the Shutter speed is too fast then a still image of the rotor is produced with no text. If the Shutter speed is too slow, the text looks jumbled and overwritten.

Shutter Speed Too Fast
Enlarge
Shutter Speed Too Fast
Shutter Speed Too Slow
Enlarge
Shutter Speed Too Slow

If anyone reading this is interested in building a WhirlyGIG of their own, please send me an e-mail.

Personal tools