Table of Contents
In this lab you will set up your PYNQ board and run a simple program on it.
Objectives
- Set up your PYNQ board image
- Learn how to build and run programs on the PYNQ board.
Overview
Before you can proceed with this lab, you must complete this Microsoft Form and submit your GitHub username. Your Git repository for the semester is created from these form responses, which may take up to 24 hours. If you added the class late, message the instructor so your repository gets created promptly.
To fully pass off this lab, you will need to perform all of the required setup activities listed below, including tutorials on Linux and Git. Questions from this material will be on the first quiz.
The last setup step involves compiling and running a Hello, World! application on the PYNQ board. You need modify this program as described below, and submit your code.
Requirements
This page describes how to set up your computer and PYNQ board for the labs in this class. This takes some time, but it is essential that you get all of these things working before moving on the later labs.
If you run into issues, post on Teams. Do not skip any setup steps. For convenience, these setup steps are also shown in the sidebar.
- Image the PYNQ SD card
- Setup the PYNQ board
- Complete the Tutorials
- Setup Git/Github
- Compiling and Running Programs
- Read the Lab Submission page, including the compiler warning and Valgrind grading policies. These apply to every lab.
After you have completed these steps, do the following:
- Modify the Hello, World application so that it prints
Hello, World from <your name>! - Submit your code.
Submission
Read the entire Submission page before submitting. It describes how labs are graded, including deductions for compiler warnings and Valgrind errors, and applies to every lab in this class.
Lifelong Learning: What’s Next?
During setup you ran ssh-keygen and ssh-copy-id, and suddenly you could log into your board without a password. That wasn’t magic; it was public-key cryptography.
Explore this question: What did ssh-keygen and ssh-copy-id actually do?
- What are the two files
ssh-keygencreated, and what is each one for? - What ended up in
~/.ssh/authorized_keyson the board, and how does the server use it to decide you are you? - Why does the private key never need to leave your machine, even during login? (At a hand-wavy level, how can you prove you have a secret without showing it?)
AI use is encouraged for this section. This is a great topic to explore in a conversation with an AI tool. See the Lifelong Learning: What’s Next? page.
When you’re done, record what you learned in a few sentences in lifelong_learning/lab1.txt.