Skip to content
IoT Engineer
All projects

FPGA Wi-Fi Link

HBKU, Doha, Qatar2016
FPGA and Wi-Fi module prototype
Websocket programming
Architecture of the system

Transmission of FPGA sensor data online reliably at a high rate through a Wi-Fi connection . A FPGA with sensors is connected to a server with an TCP connection through Wi-Fi. We achieved a bandwidth of 8 Mb/sec with the help of SRAM buffering. For this project, we used development boards from Altera (now Intel) and Texas Instrument. The wireless microcontroller firmware and FPGA configuration were written in C and Verilog.

key points:

Project on GitHub

More details

This application allows for transmitting data from a FPGA to a PC or any TCP/IP capable device through WiFi via a wireless enabled MCU (CC3200 from TI), at a rate up to 8 Mbits/sec .

A FPGA receive data from several sensors, store them in memory and transmit them to a Microcontroller (MCU) through a SPI connection custom (written in verilog) .

The MCU first connect itself to an access point (WiFi) and then to a receiving server (in our case a python program we wrote ).

Afterward, the MCU starts accepting the SPI data sent from the FPGA and store them in a Buffer. Once the buffer is full enough, the MCU send data to a computer through the TCP/IP protocol.

Meanwhile, it still receives data from the SPI.

These parallel processes (SPI reception, TCP transmission) repeat endlessly as long as the (socket) connection between the MCU and the PC stays alive.

The key point of this project was to create a reliable connection between the FPGA and the MCU as the MCU often drop the connection with the remote server . Therefore the FPGA needed to wait the connection to recover and store the data into a SRAM chip placed on its board.

Once the project finalized, sources along with a comprehensive user manual were sent to the research team in need for this particular use case.

  • Embedded & Firmware
  • Wireless
  • FPGA & Digital
  • FPGA
  • Verilog
  • WiFi
  • C programming
  • Socket Programming
  • TCP