If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.csail.mit.edu) to authenticate, and then you will be redirected back to this page.
For this design exercise, you are to build, from scratch, your own optical data transmission protocol just like those discussed in lecture 2. The system you'll deploy this on will be comprised of two ESP32's, each equipped with a bright red LED and a phototransistor (a light-sensitive transducer), allowing the devices to both receive and transmit optical signals.
1) Specifications for 2020
- The system must be capable of transmitting data at over 500 BAUD (bits per second on average)
- The system must use the phototransistor provided (data sheet here)
- The system must use the red LED provided (though you can borrow a laser module if you'd like as well to get better range)
- The system should be able to transmit and receive text messages. While you're free to use any representation of the alphabet, we strongly suggest you utilize the standard ASCII encoding since that might be easiest to deploy. (ASCII Character encoding here: ASCII TABLE)
We strongly recommend measuring the signal from the phototransistor using an analog input and then thresholding it in your code. You should also drive your red LED through a ~200 Ohm resistor to prevent blowing up the LED.
Your video should demonstrate successful transmission and reception of the data on both sides. Demonstrate the maximum range of your system. If you grabbed a laser module, feel free to show the system's range with the laser as well.
It is up to you to create your own protocol. You've only got one "channel" so you can't use a synchronous (clocked) protocol. It can be similar to UART (with an agreed-upon bit rate), or you can use an approach where the packet has a starting synchronization preamble.
- You must submit a Design Exercise Write-up. Use (the template file provided here). Read this file since it has some instructions about what to include.
- You must upload all of your code that you used in your design. Failure to upload code will result in significant point loss. This includes if you just forgot. Screenshots of your file's last modified date in My Computer are not evidence that the file has not been changed. They must be uploaded.
- You must also upload your video to YouTube or any other site that has a timestamp associated with it and is accessible by the staff. Do not upload it to a private video sharing thing where the staff can't see it. Youtube, Google Drive, TikTok (shudder) will all work. Just test the link. Enter the link in the third box below.
Error on line 2 of Python tag (line 108 of source): kerberos = cs_user_info['username'] KeyError: 'username'