Course: IoT and FPGAs: Building a cloud-connected VHDL design
Bring your VHDL project online. Set up a neat GUI dashboard using the Blynk IoT platform and a Raspberry Pi and send over-the-air (OTA) updates to your FPGA.
Description
Connecting your FPGA design to the Internet doesn’t have to be complicated. Let’s bring your VHDL project online and set up a neat GUI dashboard using the Blynk Internet of Things (IoT) platform and a Raspberry Pi.
First, we’ll use VHDL modules from VHDLwhiz to create a design that works and a simple testbench.
Then, we set up the Raspberry Pi single-board computer to configure and communicate with the FPGA.
In the next lessons, we design a dashboard for controlling and visualizing the servo’s position from a web browser. It’s easy to do with Blynk.io, and you only need to create a free account to do this course.
VHDLwhiz is not affiliated with Blynk.
Finally, we will enable over-the-air (OTA) updates for your FPGA. You will learn to set up a system that periodically checks for updates online and flashes the FPGA when you upload a new firmware version to the cloud.
This course is only available in the VHDLwhiz Membership.
The membership subscription gives you access to this and many other courses and VHDL resources.
You pay monthly to access the membership and can cancel the automatic renewal anytime. There is no lock-in period or hidden fees.
Hardware used in the course
- Lattice iCEstick (SKU: ICE40HX1K-STICK-EVN)
Resellers: Lattice, Farnell, Newark, Mouser, DigiKey
(You can modify the design to use a different FPGA board) - Raspberry Pi Zero 2 W
(Or equivalent. Available in numerous online shops.) - Micro USB/Male to USB A/Female cable
(Or equivalent. Not needed if your Raspberry Pi has a full-size USB port.) - TowerPro SG90 servo
(Or equivalent. Available on eBay/AliExpress/Amazon etc.) - Bi-directional level-shifter
(Or equivalent) - Breadboard and jumper wires
Software used in the course
I am using Windows 11 in the course. All the other software is available for free:
⚠ Notice: free educational license required
Lattice Semiconductor now charges over $350/year for the iCEcube2 software.
Fortunately, VHDLwhiz, in cooperation with Lattice, offers a 1-year educational license for iCEcube2 to customers who purchase a course that uses the iCE40 FPGA.
Reply to the purchase confirmation email to request a free license.
- Questa – Intel FPGA Edition(includes Starter Edition)
(Any version of ModelSim or QuestaSim will work) - Lattice iCEcube2 Design Software
(Or the implementation software for your FPGA architecture) - Microsoft Visual Studio Code
(Any editor will do) - Raspberry Pi Imager
- Blynk.io
(You only need a free account) - A Python3 interpreter
- GitHub: vshymanskyy / blynk-library-python
(For connecting to the Blynk service using Python)
Course outline
The overview below shows the lessons in this course.
1 - Introduction
Welcome to the course! This is what we will do.
2 - Top-level VHDL module
We can conveniently implement the entire RTL code by using resources already available in the VHDLwhiz Membership.
3 - Top-level testbench
Let's create a testbench for the top-level VHDL module to run in the Questa simulator.
4 - Implementing and testing the design
We'll synthesize the VHDL design and program the FPGA to see if we can control the RC servo using UART commands.
5 - Setting up the Raspberry Pi
It's time to install Linux on the Raspberry Pi and see that we can use it to control the FPGA.
6 - Creating the Blynk dashboard
We'll use the Blynk IoT framework to design our web-based control dashboard.
7 - Bringing the Raspberry Pi and FPGA online
Let's write the Python script on the Raspberry Pi to connect the FPGA to the cloud.
8 - Sending periodic data from the FPGA to the cloud
In addition to the uptime, we'll read the servo command byte from the FPGA every second and plot it in a live graph.
9 - Setting up blynk_if.py as a Linux daemon
We want the Blynk Python script to start automatically when the Raspberry Pi boots.
10 - Firmware deployment Zip and shell script
We need a scheme for uploading new software and hardware packages to the Raspberry Pi and FPGA.
11 - Over-the-air updates
Let's enable over-the-air (OTA) updates for the FPGA and Raspberry Pi scripts.
12 - Local or cloud deployment script
Use this Python script to conveniently upload the firmware over WiFi or to the cloud server.
This course is only available in the VHDLwhiz Membership.
The membership subscription gives you access to this and many other courses and VHDL resources.
You pay monthly to access the membership and can cancel the automatic renewal anytime. There is no lock-in period or hidden fees.
Reviews
There are no reviews yet.