This week I spent most of the time testing the integration of the IMU and optical flow sensor with the MCU to make sure we were meeting our use case requirements. Most of the testing of those components are done and the main thing that needs to be completed now is tuning the sensitivity of the optical flow sensor and integrating the fsr with everything else. My progress is on schedule and my deliverable for next week is to finish the fsr stuff and finally finishing integrating everything inside the pen.
Team Status Report for 4/25/26
The most significant risk is the full integration of the FSR with the housing tip, and tuning the CPI in software, but these are being addressed with consistent testing and iteration. There were no significant changes made to the design, and our schedule is unchanged.
With our timing module tests, we found that our overall optical sensor to drawing latency is ~46ms, well within our 80ms requirement. Our CPI accuracy test yielded that a 45 degree tilt in sensor orientation from a horizontal orientation is within a 1% margin of error of the CPI with horizontal orientation. Our total weight, while not final yet, is ~40g, which is higher than our projected maximum of 30g, but this was a tradeoff for usability with more complex components. Measuring the current draw of our sensor combined with the MCU and battery resulted in an average active current draw of 23mA and an estimated battery life of 4.35hrs, well above our requirement of 2hrs.

Christian’s Status Report for 4/25/26
This week I’ve mainly been working on getting the tip mechanics for the stylus printed out, and helping with physically integrating the components. I’ve had some hiccups in getting the tip sturdy and stable since it is the only moving component in our design, but I am making progress and should be done with the integration within the next two days. We are almost ready for the final demo!


Team Status Report for 4/18/26
I think the biggest risk we are facing right now is figuring out the best way to integrate the force sensitive resistor (FSR) inside of the pen to allow for easier surface touch and liftoff detection. These risks are being managed by constantly integrating and revisiting the housing design to ensure we get the design for the FSR correct. The contingency plans we have so far is just use a button or two since these are easy to integrate or use the optical flow sensor and IMU together to figure out liftoff detection.
No new changes made to the design and our schedule remains the same.
Tsairus’s Status Reports for 4/18/26
This week I managed to finish assembling the PCB together and doing all the necessary physical testing to make sure the PCB works. I also soldered the wires that we will use to the PCB to make it easier to connect everything to the MCU. When testing the PCB all of the voltages and connections were correct. Here are some pictures of the PCB:
In addition to this, I also wrote some code to test the PCB and MCU integrated together and I was able to successfully get the SPI communication working and the MCU was able to receive the x and y data from the optical flow sensor. One last thing I did was write some test Bluetooth code to see if the PCB and MCU could work together to move my computer mouse by communicating through Bluetooth and this test was successfully as well.
I am currently on schedule and the deliverables I hope to complete next week is integrate the force sensitive resistor with the PCB and MCU to make sure the pressure sensing works and do any last firmware clean up to maximize performance of our system. After that all that is left is just testing.
Week Specific Items
Some knowledge I found necessary to learn in order to accomplishes the task of the project was how IMUs and optical flow sensors worked because without this knowledge I would not have been able to effectively write firmware that could use these components. I also needed to learn more about sensor fusion since our project will be receiving data from different components like an IMU, optical flow sensor, and force sensitive resistor so understanding how to fuse all this data together was important for functionality. In addition to this, I needed to remind myself of good PCB habits since our project needed a very small scale custom PCB and there was not much room for error due to the time constraint. The learning strategies I used to obtain this knowledge is watching a lot of youtube videos and reading a ton of documentation and datasheets. I also used AI from time to time to explain concepts that I was unsure about like how optical flow sensors worked or what does connection interval on Bluetooth mean.
Christian’s Status Report for 4/4/26
This week I worked on beginning to physically integrate the force sensing resistor and optical sensor into the stylus housing. I extended the end of the stylus housing to include supports for mounting the optical sensor at an angle. For the FSR, I decided the optimal place for it is on the top of the USB-C port on the MCU. My progress is on schedule, and this next week, I plan to have a sliding-push tip mechanism in place for physically pressing the FSR.


For verification, since we have functionality for taking in data from the MCU and displaying writing on our canvas, I will work with Jamari to develop a testbench that measures the latency between when our data is received on the OS to when a line drawing appears on our canvas application. In addition, I will make a testbench that measures the amount of power draw from our lithium ion battery and gives an estimate of how much wireless writing time is left. For the 3D housing, I will weigh it with and without the internal components to verify it meets our requirements.
Tsairus’s Status Reports for 4/4/26
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.
Tsairus’s Status Reports for 3/28/26
This week I managed to receive the PCB and the components that go with the PCB. After testing, I realized that one of the footprints on the PCB was flipped so the optical flow sensor cannot be solder there else it will destroy the chip. So I will need to most likely reorder the PCB for the final demo and finish the physical testing. Here is the PCB:
I also worked on the code for the integration between the IMU, optical flow sensor, and the MCU so that when the PCB is fully done everything can be easily integrated and tested.
My schedule is behind since I have to reorder the PCB. The actions I will take to catch up is finish fixing the PCB this weekend then reorder it on Monday so that towards the end of the week I can solder it and test it again. Next week I hope to have the PCB fixes done and hopefully have the new PCB received and ready for further testing.
Team Status Report for 3/28/26
The most significant risk right now is that we have to reorder our PCB for our optical sensor. Changes to the PCB are currently being made, and the risk is being managed by shifting our focus towards integrating our parts from the top down rather than bottom up from the sensor. This way, we can ensure our integration flow is working well and the sensor can be easily integrated once our new PCB is in.
No large scale changes have been made to the design of the system, just small scale optimizations and fixes.
Here is a picture of our current physical stylus with the MCU and battery integrated, and a screenshot of how writing on our canvas currently looks with using dummy data from the IMU rather than optical sensor data.



Christian’s Status Report for 3/28/26
This week I worked on more iterations for our stylus housing, connected our battery to the MCU, and did the first testing of our conversion module with MCU data.
I did a lot more refining of the stylus housing this week to account our PCB wire placement, battery connection, and USB-C wire length. I created more openings for wires and hollowed out the internals to make more room for the slack that the battery wire connection made.


Since we had some trouble with our sensor PCB, I’m using IMU data from the MCU as dummy dx/dy values, using the BLEHID Adafruit library to feed these values into the OS, and using these values in a largely unchanged conversion module.


My progress is on track, and for next week I hope to help with integrating the optical sensor into our data flow.








