Rotationally Refreshed Display
Why Did We Build It?
We wanted to create a stock ticker like device
This design appealed over others due to the
“floating” image and cylindrical display
We had seen similar projects elsewhere, but
never using a cylinder shape
What is It?
An array of 16 LEDs
connected by a swing
arm to a DC motor
are located on the swing
What Is It?
A Hall effect sensor (trigged by a magnet) is
used to detect each complete rotation.
Displays messages stored in memory on what
appears to be a cylindrical display.
Hall Effect Sensor
Used to detect
Able to detect
magnetic field within
Orange for high visibility
High power (up to 150mA) and very bright (7
Had to be affordable as we needed to order
around 20 ($1 each compared to $4 for others)
micro-controller used to
control input and output
signals for display.
Operates at a range of
voltages, uses an
external oscillator and
can handle an external
Non-volatile memory ideal for storage of
Large number of software controllable I/O lines.
1024 bytes of Registers spread across 4 256 byte
8 bit architecture with 35 instructions
Separate Data and Program memory
Uses a single accumulator register for operations
How Does It Work?
The DC motor is set to spin, and this is not
controlled by the system
The micro-controller counts the cycles between
when the Hall sensor triggers
From this we can determine how long the swing
arm takes to fully rotate.
The micro-controller uses this information to
determine which LEDs should be on at what point
in the rotation
Message data stored in Flash Program Memory
Majority of operation controlled by two interrupt
External Interrupt triggered by Hall Effect Sensor
Interrupt triggered by the 8-bit hardware timer
Main process loop handles other upkeep tasks
External Interrupt Handler
Triggered by the Hall Effect Sensor,
indicating that the arm has completed a full
Uses the on board 16-bit timer to calculate
the speed of the motor.
Calculates and stores the timing required to
properly calibrate the 8-bit timer.
Timer Interrupt Handler
Is triggered by the 8-bit timer whenever a
new column of pixels needs to be drawn.
Calls a subroutine to output data to the LED
Resets the 8-bit timer and waits to be called
Main Process Loop
Runs whenever interrupts are not active.
Responsible for reading new data stored in
Flash Program Memory and storing in
Also updates pointers so message appears
to scroll across display.
Due to the rotation of the project there we a
number of different issues:
Had to have a lightweight design
Can't weight motor down too much
More powerful ARM board not available
Harder to get signals across to the components
Commutators used to transfer power and ground
Mechanical point of failure
Have to protect against slippage of commutator brushes
Add third commutator line
Can be used for serial data transfer with outside
Allows for dynamic message updating
Connect with news sites and RSS feeds for
constantly updating headlines