<topbar style="display:none;"> <item><a href="../index.html">Home</a></item> <item><a href="../about_me/about_me.html">About</a></item> </topbar> <!-- This is a comment, it is ignored by the compiler/interpreter --> <style> h0 { font-family:; font-size: 30px; color: #414040; margin-top: 50px; margin-bottom: 6px; word-spacing: 5px; } </style> ##week11: networking and communications <br> ####Objective <br> individual assignment: design, build, and connect wired or wireless node(s) with network or bus addresses <br> group assignment: send a message between two projects <br> ####Metrics <br> **A. Designing part** <br> * Base chip: ESP32-WROOM. I referred to the base design of the board on [HTMAA website](http://academy.cba.mit.edu/classes/networking_communications/ESP32/hello.ESP32-WROOM.png "HTMAA_ESP32"). <br> Pin information from the datesheet: <br><img src="./ESP_DS_1.png" alt="missing" width="400"/><br> <br><img src="./ESP_DS_2.png" alt="missing" width="400"/><br> * Software: Eagle in Fusion 360 (electronics design) **B. Milling part** <br> * Milling machine: Roland MonoFab SRM-20 * Endmills: 1/64 endmill for cutting the copper, 1/32 endmill for cutting out the PCB * Material: Single-sided copper board * Software: mod **C. Coding part** <br> * Software: Arduino IDE * Web-based service: Firebase ####Protocols and results <br> **A. Design part** <br> 1. Draw a skematic design on Eagle. My approach here is that based on the example on HTMAA, I extend the pins so that I can later use this board for other peripherals. <br><img src="./eagle_schematic.png" alt="laser_module" width="500"/><br> <br><img src="./eagle_route.png" alt="laser_module" width="500"/><br> 2. Export the trace design and the outer design. <br><img src="./esp32_mini_trace_20211116.png" alt="laser_module" width="300"/><br> **B. Milling part** <br> 1. Use the above-mentioned sketches. 2. Insert one trick on mod. I knew from the past failure in Input Devices week that the milling machine would not cut through if the width is too tiny (and that is the case for the trace between two pads of ESP32). While still using 1/64, I changed the cut diameter from 0.154 to 0.1 and it worked. 3. Mill the copper layer of the circuit (trace with 1/64 endmill and line with 1/32 endmill). 4. Cut out the PCB. <br><img src="./before_stuff.JPG" alt="laser_module" width="400"/><br> **C. Stuffing part** <br> 1. After milling, first cut the unneccesary copper foils with knife. 2. Solder the components one by one. **D. Coding part** <br> 1. Below is what I got initially. It was recognized on Arduino IDE (I could see an additional port), but I could not write on the board at first. <br><img src="./ESP_stuffed.JPG" alt="laser_module" width="400"/><br> Then Rosalie and Chris Zhu from Harvard section helped me figure out the cause. After several attempt, it turned out that the causes were (1) I did not have a pullup resistor between EN and +3V3 and (2) my soldering around ESP32 was poorly done. Chris, the meister, helped me redo the soldering part. (Thanks!) <br><img src="./ESPandPC.JPG" alt="laser_module" width="500"/><br> 2. For networking, I followed [This](https://randomnerdtutorials.com/esp32-firebase-realtime-database/ "ESP32") tutorial, shared by Chris Wang. (Thank you!) 3. After hours of failed attempts, I managed to see random integers and floats on the Firebase database. These numbers are not the most exiting things to see on the internet, but it was at least rewarding to me. <br><iframe width="560" height="315" src="https://www.youtube.com/embed/_FjN0DDM2_g" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br> [original files](https://hu-my.sharepoint.com/:f:/g/personal/ttokunari_mde_harvard_edu/Eo_MW5iJhp1GvL7Oqn-jOrYB6G4nvFlrPQ0QWN5hT0okVg?e=J0TZIo "original files") <br>