Week 1
Goals & Expected Results
- State the goals of experiment
The goal of this project is to allow remote control of FPGA to allow students to get experience of working with real hardware devices instead of doing only simulation.
- State the expected results of the project
The expected results of this project is to allow users to remotely monitor the changes on the real FPGA via camera and they will be able to toggle the push buttons and LEDs.
For this week, I continued on FYP1 client-server code by adding on html code inside to allow users to connect to the camera using opencv through local network ip address. The camera is tested using windows 10 first by running the python. Then, the raspberry pi is then setup and updated. The required files and libraries are installed to ensure the python code is able to be executed. The camera is then connected to the raspberry pi via USB.
Week 2
State how does the test bed/prototype help to achieve the objective of the experimental.
The prototype can allow students to connect to the FPGA remotely at anywhere via internet connection to allow them to learn the usage of FPGA more efficiently without having to buy their own FPGA which can then save cost.
On 29 Mac 2022, I have attended the Online Research Methodology. The coordinator of FYP showed the guidelines and action plan for the FYP2. Some briefings have been given as well for the FYP seminar which is planned to be held online on 23rd of June 2022, and a video demo had to be recorded and submitted before the seminar. There are also details about future workshops for Formatting thesis template and Mendeley referencing tool as well.
For this week, I continued to add on some css script to add on some switches and buttons to get the overall idea of how the interface of the website will be.
Week 3
Design Experiment
- Draft the designing of experiment.
The design of this experiment is started by creating a client-server network to allow remote connection. Camera is connected to the raspberry pi and the FPGA will be connected to the raspberry pi via GPIO to establish connection via SPI. Python code will be used on the raspberry pi and VHDL code will be used on the FPGA side. Html code is used to design the website interface.
- Will the experiment help to achieve the objectives?
Yes. The experiment will help to achieve the objectives.
For this week, after presenting to the supervisor, supervisor suggested to work on connecting two cameras to the raspberry pi and try to research to see if one raspberry pi is able to connect to 2 or more FPGAs. After some reading of articles online, most of the projects done are only able to connect 1 raspberry pi to 1 FPGAs as the raspberry pi only have one SPI clock, Chip Select, MOSI and MISO pins individually. I then proceed to modify the code to allow the website if it is able to see 2 or more cameras at one time.
Week 4
Initial Data Analysis
For this week, I managed to show two or more camera connected to the raspberry pi and hosted a website server and users can monitor the two different cameras.
I continued to proceed with the connection of Raspberry Pi and FPGA using VHDL code on the FPGA side but nothing is working so far at the moment. I stuck at this stage and decided to request guidance from supervisor for further progress.
Week 5
Pitfalls
What are unsuspected difficulties faced in order to achieve the goals of experiment?
There are some difficulties faced during the project especially when getting the raspberry pi to work and learning new language in order to achieve connection between raspberry pi and the FPGA.
For this week, after meeting with supervisor, the supervisor suggested to approach a simpler way by using a pc as a server in order to allow 2 or more FPGAs to be remotely controlled.
After further research, the JTAG server in Quartus II is used. Clients will be able to connect to the server using a TCP/IP connection. Clients can access JTAG cables connected to a remote computer. The FPGA is connected to the pc and the JTAG server is setup to allow remote client connection. I tested with a simple design of half adder using another pc using Quartus II as well. The remote programming is a success by testing with switches and LEDs physically. There’s more to be done to allow toggling of switches and push buttons at a later time.