This week I focused on finishing up the integration, validating that the serial protocol works, working on latency testing, and working on the final presentation. I started by fixing the data parsing issue I’d had with the Jetson <-> Due bus the previous week. I began testing the full integration after this, and discovered that in some cases the Due was not consuming the bytes from the Jetson as fast as it should have been. This was leading to a buffer overflow issue which manifested as incorrect values being assigned to the tracked object ID parameter. I made some changes to the way the protocol blocks for incoming data, and was able to fix this bug and finish the integration. I ran some rudimentary tests to make sure that all of the Serial issues were resolved, and then moved on to latency testing. I used the micros() method to track the time taken for the different data transactions in our system. I also did an end-to-end test where the duration of each loop was timed. I averaged all of these results over ~10000 trials to achieve our final metrics, which are outlined in our presentation. Finally, I got a MIDI configuration working with the Serum software synthesizer.
Right now I’m very on schedule. I’ve finished most of my latency testing, so there isn’t too much for me to do. My current plan is to attempt to get the Serial protocol running at a higher baud rate to lower the latency even further. I’m also going to look into polishing the assembly of the Jetson and Due, as right now they’re just sitting plugged into breadboards. I intend to have this done by the end of the week so it’s ready for the demo.