Home

Week 10: Networking and communication

This week, I made a new board and connected it to my phone via Bluetooth.


The first step was to build a new board with an ESP32 micro-controller. My goal for the week was to mill for the last time this semester. Time will tell...


I designed the board based off of Daniel's ESP32 board. I added ton of IO ports, as well as a lot of 5V ports and a lot of ground ports. The idea was that my final project will require managing a great number (>12) of addressable LED strips I added all these connections to be able to easily connect them to the board. The number of IO and ground port will also help me connect buttons to the board. I want add arcade buttons to the design.


Once my board was schematized, I routed everything and exported the PNG files. I was ready to mill (and millI did).


I had to mill my board 5 times before it was usable. I had very weird errors. First, I had a bug and, unbeknownst to me, my outline included holes in place of ground pads under my board. This made the first iteration of the board unusable. Second, after I had edited the holes out in illustrator, the Roland milled all pads wrong, creating crooked lines and messing up traces. After investigation, i realized that this was caused by the edits I had made in photoshop. Because the DPI had been changed in the process, the file got corrupted. It took me three tries to realize my mistake and fix the issue. Fun fact, the most straightforward way to alter an Eagle PNG to remove unwanted holes is MS Paint. S/O Bill Gates for saving the day once again. On the fifth try, I managed to mill a board with no unwanted holes and straight lines and pads. I was ready to stuff it.


As I was stuffing my board, I realized that a few pads were linked. I did some minor surgery on the board, using an exacto knife to separate the components. This worked well and I was able to quickly stuff my board.


Then came time to program it. To make my life easier, I bought a FDPI to USB interface on Amazon. I understand that I could build a USB interface for a dollar. However, I am still a beginner with electronic design and I have to cut corners where I can... Next time I promise to build my own one myself.


Programming the board ended up being a bit more complicated than I expected. First, I had issues with the Python version I was using with the ESP32 library within the Arduino IDE. I had to edit the library file through my Mac's terminal. This felt very sketchy, but worked on the second time. The problem was that my Arduino was looking for Python 3, but the library linked to Python 1



However, once this issue was fixed, I still was unable to communicate with my board. After an hour of trial and error, I realized that I had a hardware issue. Turns out that my board surgery had only been partly successful. I did a second pass with the scalpel and my board had a pulse. I was able to upload software!

Once I manage to communicate with my board, I followed the PS70 tutorial for bluetooth connection. Tweaking Nathan's code, I was quickly able to establish a connection between my phone and the board. Success, I turned on the LED with a phone command.


This doesn't sound like much, but I was very proud of that lit up LED.

Download the files and build your own!