The Ultra96 board is the first development board fitted with a Xilinx UltraScale+ MPSoC device that complies with the open source 96 boards specification.
This makes the Ultra96 ideal for both professional developers and makers, who want to benefit from the heterogeneous SoC’s programmable logic and its capabilities for acceleration. In addition to the programmable logic, the Ultra96 also provides:
- Xilinx Zynq UltraScale+ MPSoC ZU3EG SBVA484 — Quad Core A53 Processors and Dual R5
- Micron 2 GB LPDDR4 Memory
- WiFi / Bluetooth
- USB 3.0 Upstream and Downstream Ports
- Mini Display Port
- High and Low Speed Headers
My Ultra96 board arrived a few weeks ago and I was keen to power it up and look its capabilities. I also wanted to try out the Binary Neural Network application for machine learning which can detect and classify road signs on the Ultra96.
However, first we want to get our Ultra96 board up and running, which doing so is incredibly simple. Connecting the power supply and pressing the power on button will cause the board to power up and the Linux operating system to boot.
As the Ultra96 boots you will see the power on LED illuminate, followed by the Done LED illuminating when the device is configured. Once the Bluetooth and WiFi links are enabled, the WiFi and Bluetooth LEDs will illuminate as well.
Following the WiFi LED illuminating, we can connect to the Ultra96 using its WiFi access point. The SSID we want to connect to will be named Ultra96_
Once connected to the Ultra96 we can navigate to the IP address 192.168.2.1. This will open an Ultra96 welcome page which shows example projects, tutorials, configurations, and the ability to upload custom content.
Using this welcome page, we can configure the Ultra96 WiFi to connect directly to another WiFi network. We can easily do this by clicking on the configurations tab and selecting WiFi set up, which will allow you to select the SSID and passphrase of the network you wish to use for development of the Ultra96 project.
Once the WiFi connection has been updated, we can again use a browser to navigate to the Ultra96 homepage and examine the example tutorials that come with the board. The simplest of these is the LED tutorial, which changes the source of the driver for the four user LEDs. Each of the LEDs source can be selected from a drop-down menu in the project page. Changing these will influence the rate at which the LED toggles — if it toggles at all for your Ultra96 configuration of board, e.g. if the back light is selected, but there is no LCD connected.
Of course, once we have experimented with the example applications we might want to get started with creating our own application to run on the Ultra96 board.
We can do this by selecting custom content option from the main menu; here we can upload files to run on the Ultra96. Alternatively, we can also create our own application directly on the Ultra96 if we desire using Python.
To complete this blog, I wrote a simple hello world program using the create project command. This opens a new editor where you can enter your application, along with a simple output screen.
We can then save the entered code using the save file option, running the code will result in “hello world” being printed in the Output window. Once created, we see this project under the custom projects list allowing us to edit and delete projects as desired.
The Ultra96 board is going to be featured heavily in these blogs and projects going forward. For many we will be using custom design PS/PL application and rebuilding petalinux, but for now this blog has hopefully provided a little more information on the board and how to get your first application up and running.
See My FPGA / SoC Projects: Adam Taylor on Hackster.io
Get the Code: ATaylorCEngFIET (Adam Taylor)
Additional Information on Xilinx FPGA / SoC Development can be found weekly on MicroZed Chronicles.