Small Scale ESP32 Devboard for GC Controller Input Reciever
An addon for my gamecube portable to enable wireless communications. The reciever will work for wireless gamecube controller(s) as well as wireless code upload for macros and inputs from a computer.
Created by
Eshaan
Tier 3
2 views
0 followers
Timeline
technical_.
requested changes for Small Scale ESP32 Devboard for GC Controller Input Reciever ago
A couple of suggestions. Your cart screenshots need to show the full cart, don't only show the specs of the PCB you are ordering. We must see which PCB/the cart you are ordering from. In addition, please do not order pin headers from JLCPCB and ask them to do PCBA with it. You should be self soldering the pin headers, USB C conn, and any other extended component that can be soldered. Please make sure that your journals are very descriptive. Talk more about the design process, and don't just say it was difficult.
Eshaan
submitted Small Scale ESP32 Devboard for GC Controller Input Reciever for review ago
Shaurya Bisht
requested changes for Small Scale ESP32 Devboard for GC Controller Input Reciever ago
The last journal does not constitute 12 hours of journaling. Like if you are to claim 12 hours on that journal you cant just have that little.
Eshaan
submitted Small Scale ESP32 Devboard for GC Controller Input Reciever for review ago
Eshaan
added to the journal ago
PCB Routed
For some reason, this PCB layout and routing was infinitely more difficult than my last. I can attribute most of the difficulties to the dramatically smaller size and the lack of 4 layers, with me settling for just two.
I'll go over the biggest hurdles for me:
- First off, I wasn't used to working with only two layers; in my other projects, if I ever want an overlapping trace, I could just switch to another layer and have a clean setup. With a 2layer board, I had to absolutely MINIMIZE overlapping traces. Of course, I still had to prioritize some traces; for example, I kept all my power traces at .508mm, and I routed my data differential pair first. I learned from my last devboard, and didn't fall for the absolute SCAM of the symbol in the Kicad library, since all the pins are out of order. I continuously cross referenced the footprint and mimicked the order on my connector pins.

I kept switching between my home setup and laptop because I was staying at my cousin's house and mine, so I had to keep transferring files between the two setups. I forgot to rename my modified footprint for the USB-C receptacle the same on both setups, so I had to change the assigned footprint every time I switched setups. I couldn't find the board setup template I used, so I had to use a different one on my laptop that had more strict clearance requirements, making me expand the VIA holes on the ground pad for the ESP32 for better heat dissipation.

My buttons were the second largest component on the board, and they needed to be wired to my EN and GPIO-0. It just happens so that both of those pins are near the sides of the actual module, so I had to stuff the buttons in on the sides. The board looks ugly because of it, but functionality over form.

overall, I'm really happy with the way it turned out and I can't wait to implement it on my actual console!! I think my routing could have been better, but I was lazy and it works good enough for me. Screenshot 2025-11-29 152024

Apparently routing wasn't enough to qualify for 12 hours, reduced to 9.
Eshaan
added to the journal ago
Finished the Schematic
Finished developing the schematic, most components were brought over from the transmitter made earlier. Working from a new computer so I had to re download and modify footprint libraries. Smaller voltage regulator, limited my GPIO output pins severely so I could fit everything with just 20 jumper pins. PCB routing is going to be a pin, since I'll be using a 2layer board this time and need a much more compact PCB. 
A couple notable differences. I was able to use a weaker 1A LDO since I won't be drawing much if any current on the 3v3 rail: its mainly to power the board when I'm flashing. To reduce space requirements as much as possible, I deleted 1 debug LED for the flash test- I have a multimeter, so I can just output HIGH to a pin for a test. The symbol for the new regulator actually worked, surprisingly, so I didn't have to deal with a useless error in ERC.
Eshaan
added to the journal ago
Planned Design Requirements
For the receiver, data integrity is vital for a solid wireless connection. I'd also like to be able to store macro files on the receiver, which should be activated by a hotkey or button combination. Connection should be seamless and integrated. Thankfully, no voltage regulators or power supplies are needed; however, to make flashing easier, I will incorporate a low level voltage regulator for the USB-C spec. On the portable itself, VIN will be supplied by the RVL-PMS-2, which has 3v3 out. 
This should take little to no space. Minimizing outputs(only 17IO and 1 PWM in) should only require a maximum of 20 pins, 10 on each side of the motherboard(including 1 for 3.3v and 1 for ground. No debug to minimize space requirements. I need to satisfy the IO requirements for most of these pins. 
Utilizing the ESP32-WROOM-S3-N16 should be perfect; high flash memory, integrated SOC, and all the functionality of an ESP32. With that, I'll begin the schematic
Eshaan
started Small Scale ESP32 Devboard for GC Controller Input Reciever ago