Ethernet Chip

This week I spent most of my time testing the networking section of the board. Firstly I tried to run a simple TCP server code on the board to confirm that it is working. unfortunately, I could not get any result from the board. That called for serious debugging and Read more…

It Has Arrived

This week the board finally arrived and immediately I noticed that the ethernet jack was missing after notifying Dr. Shawn I then started testing the board with an led blink test program and verified the PIC and LEDs are working. I then moved to testing the USB with a simple Read more…

Nearly DONE

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 Read more…

Read Flash

This week I worked on flash programming. Previously I managed to use flash driver to accomplish erase and write operations. However, the library does not include a read functionality. The code was still using NVM library to perform a read operation. I came up with a function to perform a Read more…

NVM Driver

This week I was working on flash erase, write and read. Previously I used the NVM driver to access the flash. The erase size for flash is fixed to a page, which varies based on the device. The write size, however, can vary between a row, a quad-word and a Read more…

NVM write

This week I started on integrating the code and finalizing all the functions so that later on I can include them as libraries in my code. I also worked on writing the bit stream on the flash which will be done using a PUT command and also reading it from the Read more…

RNG & Hid_Key

This week I finished the HOTP function which uses MD5 hashing to generate a 6 digit code. The secret key used for the HOTP is generated in a separate function, using the MPLAB X built in TRNG (true random number generator) library. As for the configuration bitstream, it will be Read more…

HOTP and cURL

This week I worked on the HMAC-based one-time password (HOTP) key which is used to encrypt the message. The encryption is achieved using a key and a counter. The HOTP code is based on a work done by one of the previous interns. As Dr. Shawn pointed out, the main Read more…

PCB Fiducial Markings

This week I tried solving the problem I was facing with putting the FPGA in configuration mode, which I have also explained in my blog last week. The main issue is that after TCPIP_STACK from Harmony Configurator is initialised, pin D0 will not be configurable anymore. I have tried reading Read more…