The boards arrived! Amazingly within an hour of one another.
Based on the experience I think that JLCPCB is a better value. With shipping OSHPark was $55.50 for 3 boards. JLCPCB was $26.36 for 10 boards. Aside from a higher cost OSHPark also left sharp bits of tabs around the edges of the boards which will need to be carefully wet sanded down (fiberglass dust is a health hazard).
For future orders I think I will stick with JLCPCB.
I printed out a large image of the board with double sided tape to layout the components.
Lining up the solder stencil.
My first attempt to apply solder paste didn’t go very well. I think this was because the stencil was too loose and moved while I applied the solder paste.
For the second attempt I used double sided tape to stick everything down, supported the edges of the stencil with extra pcbs to put the back surface at a level height, and pressed very firmly with the squeegee.
Placing the components took a steady hand.
Next I pre-heated the board.
Melting the solder with the heat gun went surprisingly well. I went slowly to avoid any popping flux.
After letting things cool there were a few places I was concerned had solder bridges but testing all of the traces with a multi meter and checking the board schematic showed everything soldered perfectly!
I connected the board to my computer and was glad to see that the Arduino IDE recognize the CP2102 USB to UART chip. I pulled up an example sketch for the ESP32 and was able to upload it to the board (pressing both EN/Reset AND Boot simultaneously, then releasing EN/Reset and waiting for the upload percentage to appear, then releasing Boot).
Looking into the code from Inkplate I planned to use I was reminded that I had ordered a different GPIO expander than the one that was used in their schematics. Although the Texas Instruments TCA9555 I designed around included the same number of GPIO pins as the MCP23017, and even uses the same I2C address, they do appear to require different commands to operate. I spent a good deal of time digging into the data sheets for these two modules and familiarizing myself with their operation in the Arduino IDE, but this is something I haven’t worked with before and will take some time to figure out.
I did setup office hours with Tom Igoe for Monday and hope that he can help me to determine what steps will be involved in rewriting a class for the MCP23017 to work with the TCA9555.