This week I managed to finish the basic version of the code. It now establishes a network and then uses CORS protocol to communicate with the client. The client will then be able to erase the FPGA or flash and write a new set of data by entering the correct sequence of commands under CORS protocol. In order to increase security, an HOTP is also required to perform some of these operations. This HOTP is generated from a random number, which is obtained using the RNG library provided by Microchip.

While transmitting the bitstream, I was sending the hexadecimal coded file and it did not work. After consulting with Dr. Shawn, I used the binary file and with a tweak in the Curl command for transmitting it, I was able to successfully load the FPGA with the new bitstream.

curl -k -0 -X PUT —data-binary @bitstream http://<IP address>

The problem that I faced was that the code works perfectly with HTTP but when I tried to run it with HTTPS it seems that the data is not sent completely. I still need to figure out what is the problem with that. As for my next task, I need to optimize the code and the buffer size for a faster transfer rate of the data.