Setting up the fan speed controller on a VPK120 dev board - board update

Call: +44 (0)23 8098 8890

Posted 25th May 2023, By Aysa D
VPK120 development board pictured wearing ear defenders

For one of our current client projects we have been developing on a pair of AMD Versal VPK120 development boards.

The VPK120 is loud. When you turn it on you will know about it, as will everyone else in the same room.
Similar in volume to a server at boot, the VPK120 fan needs shutting down to a reasonable level as step one in any project.

There are two ways to control the fan speed, either through the Versal FPGA itself or via the System Controller Zynq chip that is also present on the dev board.

While there may be advantages to getting the fan speed run directly by the Versal device, there is not an out the box solution that I’m aware of, especially if a designer is not looking to use an OS such as Linux on the Arm cores. This would therefore necessitate that any designer writes their own software / FPGA code to modulate the fan speeds and read the fan’s tach data. Not something you probably want to do, as it is taking away valuable time from the actual project development phase.

Fortunately, AMD has somewhat catered for this scenario in that the System Controller can manage the fan speed and doing the work for you, and while the configuration is relatively easy to set up, there is a decent amount of one-off board pre-configuration that needs to happen as the board does not currently ship with the latest System Controller software.

The rest of this blog is a guide showing how to set up the System Controller, and how to offload the fan control from the Versal device to the System Controller. Newer board revisions may come pre-shipped with the correct Controller software, which will allow for some of the beginning stages to be skipped.

Most of the information below can be found here on AMD's wiki on Versal Evaluation Board - System Controller however it is somewhat scattered in places, and this blog aims to consolidate it into a series of logical steps to follow.

Step 0 – Disconnect Fan Header?

If you are in a busy location, you won’t want the fan on for longer than necessary, for this upgrade process the fan header can probably be removed from the board without issue. In a climate-controlled room at 22 – 23oC SYSMON reports FPGA temperatures not exceeding 50oC after being powered up but unprogrammed for an hour. From this I would say it is likely fine to have the board fan disconnected while performing these updates if needed, however, I would absolutely not run the boards without the fan connected if there is anything programmed to, or running on the device. (Do this step at your own risk!)

Step 1 – Determine Current System Controller Interface and Set it to the BEAM Tool

AMD currently has two interfaces for connected to the System Controller, the legacy BoardUI framework (host application) and the new BEAM tool (web interface). The BEAM tool is set to replace the BoardUI, however it is not currently enabled when devices are shipped. We need to see If it is enabled (or enable it if not) and determine the web address to connect to.

Ensure the System Controller boot mode switches (SW11) are set to QSPI32 (On, OFF, ON, ON), and JTAG mode is set to FTDI JTAG (SW3) (OFF, ON) – These should both be the default settings.

Connect the micro-USB JTAG cable to the bottom left of the board (USB-C on VPK180) and open a serial connection to the highest port number of the 3 that have appeared (115200 baud). Connect an ethernet cable to the System Controller ethernet port (top right VPK120, bottom right VPK180), and connect it to a network with DHCP and a PC.

Boot the device.

If the BEAM tool is enabled, then the last message from the boot should look like the following:

Screen shot of last message from System Controller boot, showing IP address

With the address as set by HDCP, if you don’t have DHCP then the message will say no IP address set, it is possible to assign a static IP, by logging into the device over serial (more on this later) and running ifconfig (see the AMD wiki for more on this).

If you do not get his message, then you are set to BoardUI mode and need to change over. Type:

ext <return><tab>

into the session and you will get a login prompt, type in:


If typing doesn’t seem to do anything you may need to reconnect the USB lead and restart the session as the input buffer occasionally seems to go unresponsive.

Type the following commands to enable the BEAM tool:

sudo su
systemctl enable scwebrun 
systemctl disable start_boardframework 

Then reboot the board.

Step 2 - Determine Current System Controller Linux version and Boot file version and upgrade if necessary

Use Step 1 to determine the current IP address / port of the BEAM tool and go to it:

Screen shot of BEAM tool welcome screen

Click “Test the board” on the right.

If this image appears, note the N/A under Versal device temp, then the System Controller requires updating to support temperature measurements:

Screen shot of BEAM tool indicating System Controller requires an update

If this image appears, note the "- oC", then the System Controller supports temperature measurements, and the devices just need configuring (you can skip to the next blog).

Screen shot of BEAM tool showing Versal junction temp indicator

If an upgrade is needed, then it’s likely that both the Linux image and the boot file need upgrading.

To see the current boot file, look at the very first lines of the UART output when booting the System Controller:

Screen showing UART output when booting the System Controller

This version shipped with our boards was 2022.1, at least 2022.2 is required for the fan controller software.

Get the latest Boot and Linux images from the AMD wiki, and extract the Linux image to a .wic file.

To upgrade the System Controller, set a static IP on your host PC of and connect it directly to the System Controller’s ethernet port.

Hold down SW16 (System Controller FWUEN pushbutton) and set a browser to point to, choose the boot file and select image B:

Boot image recovery tool screen shot


Once complete the requested boot image should have changed to B (if not select it and press configure), then reboot the device.

Note the Boot loader has changed to 2022.2:

Boot message script showing boot loader has changed to 2022.2

Power off the device once this has been confirmed.

Now we need to upgrade the main Linux image, again holding SW16, boot the device and return to the recovery tool window. 

Select your Linux image, and upload it to the Image Wic slot:

Screen shot of Boot Image Recovery Tool with image wic selected

Upload this (it will take a while).

Once update has completed, reboot the board and check the kernel version.

Before upgrade:

Screen shot showing Linux booting with pre-upgrade version 5.15.19-xilinx-v2022.1

After upgrade:

Screen shot showing Linux booting with post-upgrade version 5.15.36-xilinx-v2022.2

This completes the board update and need only be completed once, if at all.

In the next blog I will go into the steps of setting up the board which will be project specific.

Note: References to Xilinx have been updated with AMD in line with their branding transition.

How ITDev can help you

This blog article is just one small demonstration of how we keep clients informed: documenting the steps required to reproduce the same set-up as we used.

We can assist you in achieving your goal and solving your problem.

  • There will be open, frequent communication as we look to understand your aims. 
  • In-line with your needs, you will be kept up to date on progress.
  • Appropriate knowledge transfer activities will occur throughout the project.

If you have any questions or would like to find out how we can help you with your product development journey, initial discussions are always free of charge. We would be delighted to speak to you so please contact us.


Principal Consultant - Electronics Engineer

MEng - Electronic Engineering, University of Southampton - MIET

I joined ITDev in 2011 as an Electronic Design Engineer. I have developed a good knowledge of hardware and software through working on a variety of projects from small scripts to complete FPGA designs. A mixture of responsibilities, covering both development and debugging, have exposed me to different clients, presenting a wide range of issues and tasks including investigating High Level Synthesis (HLS). My experience has been primarily on Xilinx devices, utilising both ISE and Vivado.

I am additionally the Training Manager and am responsible for staff Continual Professional Development (CPD), including the company appraisal system, and the promotion and organisation of various training activities.

I enjoy the close-knit community feeling that working for a small company like ITDev brings.

I spend a large amount of my free time restoring and renovating my much-loved Edwardian home.

View all posts by Aysa    |    View all ITDev team members

IET Enterprise Partners logo

Latest Blog Posts

VPK120 development board pictured wearing ear defenders with silent smiley on the fan
Posted 13th June 2023, By Aysa D
This blog contains the final steps for adding the minimal IP to send the necessary SYSMON data to the System Controller for controlling the fan on the AMD ...more
VPK120 development board pictured wearing ear defenders
Posted 25th May 2023, By Aysa D
Whilst developing on an AMD Versal VPK120 you will want to control the fan speed to keep the noise at manageable levels. This guide captures the steps taken to ...more
Robin on a bird table
Posted 20th January 2023, By Andy C
The customer is always right, and he hasn't changed his requirements, but the consultant says they're in constant flux. Who's right? Let's explore further ...
JonO interviewing Matthew
Posted 30th June 2022, By Jon O
30th June and it's Matthew's 2 year anniversary of joining as a full-time member of staff. Matthew spent 2 summers working for us as an intern before joining ...more

Latest News

Posted 12th September 2023
ITDev is proud to announce the launch of a new FPGA video IP core. The core allows integrators to quickly and easily add high-quality colour space conversion ...more
Shot of Sydney Harbour Bridge
Posted 3rd March 2023
We welcome David back from Australia and review some of the actvities we've been engaged with in February 2023.
Posted 9th August 2022
Last month we attended the second TechNES FPGA Frontrunners event, here's our write up from the day ...
Posted 28th July 2022
Here's a short report on our attendance at the ECS Taster week Careers Fair On Tues 26th July. A chance to promote industrial opportunties to year 11 students ...more