Persistence of Vision
Introduction
The purpose of this project is to design and to create a persistence of vision (POV) display. This display will allow users to upload an image to be displayed through wireless communication. A persistence of vision (POV) refers to the phenomenon of the human eye in which an afterimage exists for a brief time (10 ms). A POV display exploits this phenomena by spinning a one dimensional row of LED's through a two dimensional space at such a high frequency that a two dimensional display is visible. In our case, we created a cylindrical display by spinning a column of LED's around a central motor shaft (Figure 1). The rotational speed of the LED's is fast enough such that the human eye perceives a two dimensional image.
The overall design of this project can be grouped in the following three categories: schematic design, mechanical design, and fabfrication design. The most labor intensive portion of this project was the mechanical design. While the electrical schematics and fabfrication design appear trivial, integrating the hardware with an adept firmware proved to the biggest challenge of all. Mounting the electrical components onto the mechanical structure - i.e. the spinning arm - was also quite a challenge. As one can foresee, the nature of our mechanical design introduced various safety issues that we also had to take into consideration.

Design Requirements
The requirements of our design were also much difficult and complicated. We were asked to make our PCB small and rectangular shaped having length of less than 8 inches and width of less than 3 inches. We are so happy that we successfully done this job. Now our PCB is very light weight having length of 6.8 inches and width of 2 inches.Sample Image of Final Design
We are working so hard to minimize our project that it should be more compact and light weighted. People should be attracted in a single sight and we are also thinking on the cost and efficiency of components that we will use. People demand products having low cost and greater effiency.
Mechanical Drawing
Mechanical design is very important for any product you are making to be functional. It gives you the path and your mind is clear with everything what to do next. We also made mechanical design for our product. This design shows that our PCB is attached with a rotating motor. A row of LED's is attached onto the PCB. Signal is generated by microcontroller and through coding, our required output is generated.
Project Execution Plan
Firstly, we estimated a 15 week plan to accomplish this project. Then we divided the whole task into weeks. We are very thankful that it worked for us and we completed this project within the estimated weeks.Weeks | |
---|---|
1-2 | Decision Making for Selection of Project |
3-5 | Research on Selected Project |
6-7 | Routing |
8-9 | Minimizing the size and having compact PCB |
10-11 | Soldering and Testing the Components |
12-13 | Coding and Debugging Errors |
14-15 | Making Final Webpage Report for our Product |
Distribution of Task
As it was very difficult to complete this massive project for a single person in a short duration of time, so we decided to do it in a group having two members. Aamir Maqbool and M.Luqman Khan did this project. According to our interest and expertise, we decided to do this project in parts. Following is the table which shows the assignation of tasks. |
|
---|---|
Research on Project | Both Group Members |
Routing for PCB | Aamir Maqbool |
Soldering the Components | Luqman Khan |
Testing the Soldered Components on PCB | Luqman Khan |
Coding | Aamir Maqbool |
Debugging Errors | Both Group Members |
Working on Webpage Report | Both Group Members |
Higher Level System Diagram
The higher level diagram of our project is given below which illustrates the main components used in our product and how they are integrated to each other. The first main component is microcontroller(Atmega 32u4) which is connected to DC regulated 5V supply. Microcontroller is then connected to LED's and with EEPROM which is basically used to store our desired pattern. Here turnigy motor is connected to our PCB which rotates our PCB at very high rpms and eventually our desired output is displayed .
The logic behind our project is very straightforward. Our software must calculate the rotations per minute (RPM) and the release and deadline times which set the time duration to display each "pixel" of the display (explained in software section). From a high level design, we simply measure the period of each rotation, divide time the cantilever takes to rotate through that section by the number pixels we want to display and then calculate the amount of time each pixel occupies during the rotation. By turning on a light emitting diode (LED) for just that duration of time, we can then display the pixel. Thus, we've mapped the entire display area to a 14 by 90 matrix where each element in the matrix represents a pixel that can have any red, green, and blue (RGB) value.
Description of Principle of Operations
There are two circuits to operate the POV product, first one drives the motor and controls its rpms. The other is on the PCB circuit to control and program the blinking of RGB LED's. Motor is connected with 14.8 Volt Lipo battery through potentiometer to control its speed. We used arduino UNO to drive BLDC motor. Then we drive PCB circuit by using 7V battery mounted on our PCB with the help of double tape and tie cables. Regulated supply of 5V is applied to microcontroller 32u4, then digital pins connected to Demux IC, which controls the blinking of RGB LED's according to the coding burned in microcontroller. Then we rotate our PCB at very high rpms such as at 1200 rpms, then it shows the desired output on the display.Choice of Components/Power Consideration
The choice of components is very important for a big project. So we decided to use those components which are more efficient and affordable. The other thing which we have to take into our consideration is the availability of selected components. We used Atmega-32u4 Microcontroller, Turnigy Motor, Demux IC , 5V Regulator IC, EEPROM and LED's. They have sufficient price, less power loss and are more reliable.Brief Description of Major Components
- Micro-Controller 32u4: The low-power Microchip 8-bit AVR RISC-based microcontroller featuring 32KB self-programming flash program memory, 2.5KB SRAM, 1KB EEPROM, USB 2.0 full-speed/low speed device, 12-channel 10-bit A/D-converter, and JTAG interface for on-chip-debug. The device achieves up to 16 MIPS throughput at 16 MHz. 2.7 - 5.5 Volt operation.
- EEPROM: EEPROM (electrically erasable programmable read-only memory) is user-modifiable read-only memory (ROM) that can be erased and reprogrammed (written to) repeatedly through the application of higher than normal electrical voltage. Unlike EPROM chips, EEPROMs do not need to be removed from the computer to be modified. However, an EEPROM chip has to be erased and reprogrammed in its entirety, not selectively. It also has a limited life - that is, the number of times it can be reprogrammed is limited to tens or hundreds of thousands of times. In an EEPROM that is frequently reprogrammed while the computer is in use, the life of the EEPROM can be an important design consideration.
- I/O Modules: We also used I/O modules such as headers to burn boot loader and for the supply to microcontroller.
- USB Mini: We used USB Mini to burn program codes in microcontroller. It also provies supply to the circuit.
- Other Discrete Components: The other discrete components which we used are capacitors, resistors and transistors. The transistors are in dip form but the capacitors and resistors are both in smd and dip form.
Electrical Schematic
After the selection of components, we started our electrical schematic circuit for making PCB on the eagle software which is very helpful and easy to use. We made this schematic according to our requirments.
Brief Description of Schematic
We used Atmega-32u4 Microcontroller. We also used 5V regulator IC for the microcontroller. The digital pins are connected to the LED's through Demux IC.PCB Layout

PCB Traces

PCB Drills

PCB Outline

Challenges Faced in Routing
The most difficult task of our project was routing. We failed in this task many times, made many mistakes, changed components but did not lose hope. We did this task almost 30 times. We had to made modifications in our schematic due to which our routing faced new challenge. We also replaced our microcontroller Atmega 328P with Atmega 32u4. It was very difficult task to do routing using Atmega 32u4 microcontroller.We also faced problem with wires crossing each other. But Sir Nadir Ali, Sir Faisal and Sir Aizaz Ali helped us a lot to do this job.Finally we done this routing successfully.Bill of Material
Here following is the list of components we used in our circuitry. We used both smd and dip components. We easily got all components from our FAB LAB at Sukkur IBA University
Picture of Clean Printed Circuit Board
Here is the picture of our fabricated board. We milled this board from FAB LAB of Sukkur IBA University. This is very neat and clean and very compact and light weighted.
Picture of Populated Circuit Board
After milling the fabricated board, we populated components on this. The small SMD components may damage but we used all the precautions to do this. Sir Nadir helped us to populate microcontroller because this was very risky task. We did this job very carefully.
Procedure of Bootloading
We used USB Mini port to burn bootloader. We provided power of 5V to microcontroller through this port. We used AVR ISP cable to burn bootloader.
Challenges in Burning Bootloader
In burning bootloader, we faced many problems. At the very first step, the port was not recognizing the USB cable. The other issue was that our components were heating up. We worked a lot, gave time to this issue and finally all the issues resolved successfully.Picture of Successfully Operating Circuit
This is the picture of output of our POV product which is working successfully.
Picture and Video of Fully Assembled System
Here is the picture and video of our fully functional POV product. We have written "SUKIBAU" in our code to display it. Sometimes it is not more visible due to vibration of very high rpms of BLDC motor.Demonstration of Operational Circuit
We have two circuits to operate our POV product. First for to operate BLDC motor and the other is to operate LED's mounted on our PCB. To operate BLDC motor, we use 14.8V Lipo battery and with the help of arduino, we give PMW signal to motor to rotate at very high rmps. To control the speed of motor, we also used potentiometer. Now to operate our PCB circuit, we give 5V regulated DC supply to microcontroller(32u4) with the help to two batteries connected in series, each of 3.5 Volt. Then microcontroller generates PWM signals with the help of cristal oscillator. These continuous PWM signals goes to the row of LED's. Then we set the rpms of BLDC motor in such a way that the blinking LED's generates a specific pattern which we wants to show it to our audience.Flow Code of Software Design
Here is the Flow code of our POV project. You can easily understand the procedure of this project happening behind our hardwork.
Challenges Faced in Coding
We faced many challenges in coding. It was very difficult task for us to write the whole code for our POV product. So Sir Aizaz Ali helped us in this task. We understood the whole code and noted every step carefully.Business Model of this Product
When we started our project, we also considered this project as a business model because we can earn by selling it. Persistence of Vision(POV) can be used in optical illusions. By presenting a sequence of still images in quick enough succession, the viewer interprets them as a continuous moving image. This is the same principle that enables live action film making and projection to work. Film theorists often refer to this illusion of movement as the persistence of vision.
References to implement this Project
Following are the references of different websites from which we got help for our project.- https://forum.arduino.cc/index.php?topic=208227.0
- https://playground.arduino.cc/Animeshshastry/Motor-rpm-measurement-using-hall-effect-sensor/
- https://www.hackster.io/mircemk/analog-style-led-pov-clock-8d840b
- https://circuitdigest.com/microcontroller-projects/what-is-bldc-motor-and-arduino-bldc-motor-control
- https://www.youtube.com/redirect?v=ff9ZsJ-wg9k&event=video_description&redir_token=Ga2Gp-ZdWn6AxVQfTn3ULN1QMdt8MTU3MjAwNzM3MkAxNTcxOTIwOTcy&q=https%3A%2F%2Fcircuitdigest.com%2Fmicrocontroller-projects%2Fwhat-is-bldc-motor-and-arduino-bldc-motor-control
- https://create.arduino.cc/projecthub/TheTNR/persistence-of-vision-pov-globe-1879fb
- https://maker.pro/arduino/projects/arduino-pov-display
- https://pdfs.semanticscholar.org/0446/854535857749e7ec5ac21705997246bd61d9.pdf
- https://www.youtube.com/watch?v=eMfcs0iO8zE
- https://www.youtube.com/watch?v=eMfcs0iO8zE
Paragraph explaining the understanding of Intellectual Property
The semester project POV was basically made by our seniors. But they made the PCB with double layer and used all dip components. The dimensions of their PCB were also too large. But in our case, we made our PCB with single layer and the components mostly we used are smd based. The dimentions of our PCB are also very precise, therefore the size of our PCB is also very compact and it is too light in weight. We have copy rights for our POV product, so our all the information regarding our POV product is not available on open source. Therefore, we have a business model for our product and one can buy it easily in the market at very low price.Table for Outlining the Cost of Project
Following is a table of all the components which we used in our project. We mentioned the description of individual component also calculated their individual cost.Microcontroller 32u4 | containing 44 pins | |||
Demux IC | Different digital outputs | |||
USB Mini | To burn boot loader and Coding to microcontroller | |||
RGB LED | Having red, green and blue color on output | |||
EEPROM | For memory to store our pattern | |||
Cristal Oscillator | To generate PWM pulses | |||
Resistor | having different values(smd) | |||
Capacitor | having different values(smd) | |||
Transistor | BC548 NPN(dip) | |||
Header | Male header to connect AVR ISP cable | |||
BLDC Motor | having upto 15000 rpms |
Zip File Containing Source Code
Click below to download Programming Code for the circuit:
Zip File Containing sch and brd Files
Click below to download the Schematic and Board files for the circuit:
References
- Project Instructor: Dr. Muhammad Asim Samejo(Assistant Professor at Sukkur IBA University, Pakistan.)
[email protected]
http://www.iba-suk.edu.pk/faculty/details/INS-0011
- Project Supervisor: Sir Aizaz Ali(Lab Engineer at Sukkur IBA University, Pakistan.)
[email protected]
http://www.iba-suk.edu.pk/faculty/details/INS-0424
- Sir Nadir Ali(FAB LAB Incharge at Sukkur IBA University, Pakistan.)
[email protected]
http://fab.academany.org/2018/labs/fablabkhairpur/students/nadir-ali/index.html