ArmedGuy / zynq-iot-platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

zynq-iot-platform

The Zynq IoT Platform consists of several different applications that work together.

fpga-app

The fpga-app directory contains the frontend application and web API for the IoT platform. It is responsible for displaying device data and present controls to the user.

Building the web API.

Browse to the fpga-app folder, set GOPATH to the current folder. Then run go get to fetch all dependencies, then run go build to build the server.

Building the frontend app

In the fpga-app folder, run npm install to install dependencies (you need npm and nodejs). To build for release, run npm run build, and copy the contents of the build folder (that appears) into a folder exposed by a web server.

controllerd

Controllerd is responsible for keeping connections with IoT devices. It exposes a webserver that talks using websockets.

Running controllerd

Install the dependencies by running pip3 install -r requirements.txt, then run the application with python3 server.py. A dummy client is included with the controllerd for testing purposes.

agentd

Agentd is ran on IoT devices and is responsible for flashing programmable logic, sending statistics and program output, and starting applications. It is installed on an IoT device by dropping the files in an appropriate directory, and running python3 install -r requirements.txt.

Installing an IoT device to connect to the platform

Two binares are included in the binaries folder. Image is a precompiled Linux 4.9 kernel image based on Xilinx Linux, with the xlnk-apf kernel module. system.dtb is a device tree for Avnet:s Ultra96 development board with the xlnk device added.

Together they enable an Avnet Ultra96 board to run Xilinx SDSoC applications compiled for the platform as a Linux application (not standalone).

The easiest way to test is to use the provided flash card when buying an Avnet Ultra96 devboard, and switch out the Image and system.dtb on the flash card.

Building applications for Avnet Ultra96

Provided in the repository is a modifiled Xilinx SDx Platform that allows one to build Linux based applications in Xilinx SDx. The original platform provided by Avnet is only configured for standalone applications (meaning the applications manages memory and threading, not a Linux kernel).

Follow regular instructions for adding Avnet Ultra96 support in Xilinx SDx (and Vivado), but use this platform in the step for adding platforms.

About


Languages

Language:C 83.7%Language:Tcl 14.2%Language:HTML 0.9%Language:JavaScript 0.6%Language:CSS 0.2%Language:Python 0.2%Language:C++ 0.1%Language:Go 0.1%Language:Makefile 0.0%Language:Shell 0.0%