{"id":305,"date":"2023-04-22T21:48:17","date_gmt":"2023-04-22T21:48:17","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/?p=305"},"modified":"2023-04-22T21:52:08","modified_gmt":"2023-04-22T21:52:08","slug":"anju-itos-status-report-for-4-22-2023","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/2023\/04\/22\/anju-itos-status-report-for-4-22-2023\/","title":{"rendered":"Anju Ito&#8217;s Status Report for 4\/22\/2023"},"content":{"rendered":"<ul>\n<li>Work this week\n<ul>\n<li>Finalize laser transmitter\/receiver and FTDI interface\n<ul>\n<li>All inputs go through 2 flip flops to avoid metastability<\/li>\n<li>Better timing for all I\/O devices<\/li>\n<\/ul>\n<\/li>\n<li>Implement handshaking\n<ul>\n<li>Handshaking occurs before every packet send now<\/li>\n<li>Series of 0xAA sent by transmitter. Receiver responds with 0x10<\/li>\n<\/ul>\n<\/li>\n<li>Implement packet sending\/receiving\n<ul>\n<li>Sender: send bytes in 1kB chunks. Handshakes before each one.<\/li>\n<li>Receiver: receives bytes. If receive &lt; 128kB after handshaking, will pad out the bits with all 1&#8217;s<\/li>\n<\/ul>\n<\/li>\n<li>Use 128kB buffer on receiver\/transmitter\n<ul>\n<li>If more than 1kB sent\/received, FPGA has capability to store that.<\/li>\n<li>Created to accommodate for slow USB transmission.<\/li>\n<\/ul>\n<\/li>\n<li>Create Manchester\/Duty-cycle like encoding for FPGA\n<ul>\n<li>Made the last half of each bit a 0. We found out during testing that the ambient light filtering would adjust to the laser light level if we were transmitting a lot of 1&#8217;s in a row. In order to mitigate this, we made half of each bit a 0, and sample on the first half.<\/li>\n<\/ul>\n<\/li>\n<li>FPGA Cycle Counter\n<ul>\n<li>Added debugging counters to report how many clock cycles packets stay on the FPGA.<\/li>\n<li>Measured from the point that the transmitter FPGA saw data on the FTDI chip until the receiver FPGA received and put the data onto FTDI chip.<\/li>\n<\/ul>\n<\/li>\n<li>Debugged a lot of FPGA code using setup where FTDI code was connected to the FPGA, and laser receiver\/transmitter connected via jumpers to each other.<\/li>\n<\/ul>\n<\/li>\n<li>Schedule\n<ul>\n<li>We are cutting into slack, but the core part of the project is done. We have moved onto integration and testing. In terms of work, this has transformed into adding\/getting rid of debugging features for testing and design trade-offs. We have successfully transmitted a large file (19MB) over lasers, and reached MVP!<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"font-size: 1rem\">Next Week<\/span>\n<ul>\n<li>Continue working on integration. See the best methods of transitions and talk about design decisions at full-scale level. Refine.<\/li>\n<li>Work on design report\/poster\/presentation.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-314\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-content\/uploads\/sites\/232\/2023\/04\/fpga_test_setup-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/p>\n<p>FPGA setup used for debugging<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Work this week Finalize laser transmitter\/receiver and FTDI interface All inputs go through 2 flip flops to avoid metastability Better timing for all I\/O devices Implement handshaking Handshaking occurs before every packet send now Series of 0xAA sent by transmitter. Receiver responds with 0x10 Implement packet sending\/receiving Sender: send bytes in 1kB chunks. Handshakes before &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/2023\/04\/22\/anju-itos-status-report-for-4-22-2023\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Anju Ito&#8217;s Status Report for 4\/22\/2023&#8221;<\/span><\/a><\/p>\n","protected":false},"author":673,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[3],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/posts\/305"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/users\/673"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":3,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":313,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/posts\/305\/revisions\/313"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamb5\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}