If you read my previous logs, I wrote that I do not want invest more time and money in to this project, but destiny probably thought differently.
When I found this awesome Stephen Hawes channel at YT I was already engaged in my 3D printed pick and place machine project and I was looking how to solve problem with feeders for it, but in one of his videos he speak about uneven plating on the PCB and in that moment I knew form where my problem with conductive buttons is coming. If I do not have flat pads for these buttons I can have "ghost" presses or even none existing pressed as rubber buttons do not have enough space to make proper contact with PCB. After this I decide to give this project one last try.
Because I already moved from micro USB connector to USB-C connector in my ESP32 Reflow oven project, I decide put USB-C to this board as well. Other thing which I added, and think is quite cool, is power button in micro switch form instead of the sliding one, which I used in previous revisions of my board. Last part which I replaced was UART chip, as I had no stock of CH340G and did not want to wait for them to arrive from China, for CP2104 which is popular and used on many boards but can be very easily ordered from any big electronic store as TME, Mouser or Farnell.
i knew from previous assemlies that it is not much space around I2S chip, so I rearrange all components f that part and make a lot of space around this chip in case that I have to rework something with soldering iron.
Because gold plating (ENIG) is bit more expansive than HASL I ordered 20 of these boards to make price for 1/pc in reasonable range. As I made big order for PCB I was worried that this will slow down delivery as production can be longer than PCB´s with HASL (4 days in compare to 1 day), but from what I saw at JLCPCB page in production report, it was pretty fast. I think as fast as PCB´s with HASL.
I also ordered stencil with PCB´s, which make assembly of the boards much more easier. As usual, I assembled one, checked continuity between 5V -> GND, 3V3 -> GND and repaired few solder bridges. I populated just bottom side as on top side are just 2 LED´s, 4 buttons and LCD screen and this is not worth it or can not be done in oven.
I inserted USB cable in the connector, press the powr button and NOTHING! It should make connecting sound (same when you plug USB device in USB connector), but did not beep :( . I fired up Eagle to look where I should start debugging and when I was checking 5V line, I sawed that I missed one connection between bottom and top layer. I had also one overlap between VBAT and 5V rail,but this could be quickly repaired by knife.
I repaired missing 5V rail (VBUS) with wire and tryed to fire it up again, this time with success. i populated top side of the board, programmed bootloader to the ESP32, inserted SD card, flashed right FW and swapped older revision of the PCB for this one in 3D printed case. At that moment I was pretty tense. I fired up Super Mario game (I was always testing with this one) and played a bit and I did not missed single button press! Mario was following my buttons presses without slight problem. To quote Stephen Hawes: "Awesome! What a relief.. :) ". To be sure, I tested different games and did not find any issue. Sure buttons are bit hard, but this could be because they are new or there is small mistake in design of the 3D printed case.
Here is finished PCB with bodge wire :) :
I did not play it a lot, so if i will find out that there is some problem, I will cover it in another log.