Weekly Updates

Week 1 Update (2/26):

This week we got all the parts for the first stage of the project (the arducam 2MP module and SD Card). We also have started testing the periph_sdmmc demo. This demo has example code for reading and writing .txt files that we will eventually adapt to handle .jpg files. Currently, we are exploring possible known bugs in the SD card peripheral and solutions for this issue. We aim to have SD card functionality by next week.

Week 2 Update (3/5):

This week, we were able to get the sdmmc demo working. This process involved a significant amount of debugging eventually leading to replacing the board.c file and sdc_17XX_40XX.h and .c files.We then went on to adapt it and test it reading and writing image files loaded on the SD card. Our next step will be setting up the SPI and I2C connections to the camera module.

Week 3 Update (3/12):

With the SD card working, we are now setting up SPI communication with the camera. We are also reading through the arduino code from the camera module manufacturer to get a better understanding of the necessary initialization steps, as well as the order of commands for capturing images.

While working with the Arducam, we misaligned the peripheral with its connectors and accidentally damaged the module. We spent a session attempting to debug the module while attempting to communicate over SPI. By validating that SPI was being sent correctly by the LPC board, we decided to order a new camera module. We were able to successfully write to and read from the test register on the Arducam module. We are now setting up the i2c connection so that the camera sensor can be configured.

Week 4 Update (3/19):

This week we started by adapting the I2C lab code and the Arducam configuration functions to write configuration data to the OV2640 sensor on the Arducam. Because of confusing address labeling, we spent a significant amount of time debugging this process. Eventually, we discovered that there was another i2c device at the address that we believed to be for our device, and the addresses on the datasheet were incorrect. Once we were able to configure the sensor over I2C, we finished the code to save the image data read over SPI. We then implemented a GPIO interrupt using button SW6 to trigger image capture, as well as a file naming scheme to capture multiple images.

I2C Debugging Images:


Checking for ACK at 0x30

Checking for ACK at 0x60

Checking for ACK at random address