Communication between FPGA and Android over BLE protocol
This project has been implemented in the context of my diploma thesis, while studying at Computer Engineering and Informatics Department (CEID) of the University of Patras. It is about an Android application that captures a low-resolution picture and sends it to an FPGA-based system, via Bluetooth Low Energy (BLE) protocol. Then, the embedded system processes the image by applying a Gaussian blurring filter and then sends the new picture back to the Android device, so that the user can compare the two images. The main subject of the project concerns the BLE communication between the FPGA and the smartphone.
- The Android application has been developed in Android Studio Chipmunk, 2021.2.1 and the code is written in Java. The app targets Android 13 and can operate in all SDK levels starting from Android SDK 26.
- The development board is the Arty S7-50, that contains the Spartan-7 50 FPGA and 256 MB DDR3 SDPRAM.
- Bluetooth Low Energy in Arty S7-50 is supported by attaching a BLE Pmod to a Pmod connector.
- The embedded system is designed using Vivado 2018.2 and Xilinx SDK 2018.2.
- BlueShot Android application is in folder Android app that contains all necessary files for the Android Studio project.
- Vivado project folder contains two subfolders:
- custom IP core, that includes all Verilog files needed to create and package a custom IP core in Vivado. The generated block reads a 324x576 8-bit RGB image and applies a Gaussian blurring filter, using a 3x3 kernel.
- img_blurring, that is the design of the embedded system in Vivado IP Integrator. The embedded system operates using MicroBlaze soft processor and the custom IP core for image blurring. This folder contains the Vivado design, as well as the software that runs on MicroBlaze.