This week I managed to work on the PCB design fixes and submit a new order request for the new updated PCB. Here is the new PCB:


My progress is on schedule and next week I hope to have received the new PCB and solder all of the components onto it. I also want to finish the physical testing of the PCB so that I can focus more on integrating it with the other components.
Week Specific Item
My primary responsibilities are the optical flow PCB, the IMU functionality, and the microcontroller data pipeline. Here are the tests I am thinking about using for verification:
For the optical flow PCB I plan on first doing some physical testing like making sure none of the traces are shorted and all the connections are correct. Then I will run some communication test to ensure the SPI communication is working so I will read the hardcoded product ID of the sensor and make sure the microcontroller receives it correctly. Finally I will run some accuracy test where I will move the PCB 1 inch on a surface and try this with different CPI settings (400, 800, 1200, etc.) and make sure that the sensor outputs the correct number of counts per inch. For example, at 400 CPI when I move the sensor in the x-direction 1 inch the deltaX value should equal around 400.
For the IMU functionality, one test that I already ran is testing how accurate the IMU tilt is so tilting the IMU 0, 30, 45, and 90 degrees and checking what the IMU output was. The IMU tilt was usually within ~3-5 degrees of the tested angle. Another test I was thinking about running was testing how much the IMU drifts using the current smoothing filter we have so if I leave the IMU stationary on a surface for a few minutes I can record how much the IMU angle fluctuates.
For the microcontroller data pipeline, one test I was planning on doing was inputting hardcoded dummy data and eventually real data into the microcontroller and test how well the dynamic CPI function works. For example at a 60 degree tilt and baseline target CPI of 400 the math should be 400/cos(60) which is a new target CPI of 800 so from that I will verify that the microcontroller correctly sends the correct CPI value to the optical flow sensor. I will also run some latency test to make sure all if this processing happens under the time constraint.