LED indicator light for ports which are turned on. Led hard-wired into circuit; When the port is on, the led is on, without exceptions. This is for easier coding.
The board is 100mm*100mm, thus should be the cheapest to order (board larger than 100*100 will cost a lot more)
6 USB-A ports (with additional usb-c ports connected directly to the power of the usb-a port)
*Current only limited by your power supply, Trace width (5A), and fuse. I suggest a 3A fuse so that the current is limited before the traces heat up too much and increase in resistance. At 3A, the traces will raise by a few degrees in my experience, which does not affect use
Feel free to skip down to the build instructions
When shorting blinking led to 5v, the led becomes static. DO NOT SOLDER ON NE555, OR USE D2 TO ILLUMINATE LED. Connecting the 555 ic's output pin to 5v will cause damage to most 555s
The blinking LED will not be visible when the shell is on. This led can be controlled by setting D2 low. and not powering the LED.
This LED is sourced by the 555, and not sunk to save 1 redundant transistor
USB ports are always connected to VCC, however they are still "off". When the N-Type MOSFET is enabled, the USB has a sink (a connection to ground), so electricity can flow through the port, turning on the attached device
These pads are for SMF05CT1G ICs, which Prevent electrostatic discharge damage. These are not viral for operation, and can be skipped. There are other protective measures against ESD damage such as the grounding area surrounding every trace.
The switch icon is for a DPDT slide switch (changeover switch) [MSS22D18] When the switch is pointing left, it is turned on. The silkscreen indicates the ON position
The “Test On” buttons bypass the esp32 and provide a manual way to activate the NMOS without the help of a microcontroller. These work with the microcontroller removed from the board entirely
Only use the 5V and GND screw terminal for proper deployment The “5V+” is mainly for testing, especially with a 9v battery. I discourage using the 5v+ input for high current applications. Your voltage regulator will burn up. If you only have a temporary 12v or 9v power supply, use thermal glue to attach a heatsink to the regulator, and constantly monitor temperatures. Purchase a high current 5v power supply ASAP. Cut off connector, and attach to screw terminals
The barrel terminal is rated for 500mA, but will take 5A without melting (in my tests. Yours could be different). The barrel jack also bypasses the power switch.
Full part list provided in a .txt with quantities, package sizes and additional information
“Easy Fit” Removes the lip, and makes it easier to fit the PCB into the enclosure
Files are organized in file viewer based on which ones will need to be accessed first when building the project
Order the Gerber file from PCBWay (or another pcb service). My board has the “ENIG” (gold) finish, but HASL is fine. Pick any color of board that you want. Keep in mind that a couple of the solder masks are more expensive than others, or could take more time. Keep other settings as default. PCB should be 1.6mm thick
I ordered a stencil too for $10, but the stencil is not required
Your price will be significantly lower if you order your board with HASL finish, 5pcs, keep product number, no stencil and 2 week shipping. I guesstimate that the minimum price is no more than $8 including shipping
Check what parts you have from the parts list; order components which you do not have. The parts should arrive by the next day, and the board might take 4-7 days depending on your shipping choice
As you wait, 3D print the enclosure. The print settings do not really matter, nor does the material. I personally used PETG with 3 walls, 0.6mm nozzle, 1.2mm layer height (0.3mm initial layer). Supports may be needed on the long overhangs depending on your printer model. I used color painting, but printing from a solid color is fine too. I suggest keeping the top white, as light needs to pass through the plastic fairly easily
When the board arrives, check fit to the 3d printed part, then apply solder paste to each pad except the pads on the bottom of the board, the solder bridge, and the small circular probing points. If you ordered a stencil, use a squeegee to spread paste over the board. Wipe board with isopropyl alcohol before applying solder paste
( ^ ignore the uneven spread, i was struggling to take this picture lol)
Arrange the components on the board according to the silkscreen*. Start with the smallest components and do the mosfets and usb ports last. Don't touch the esp32, or the header pins at this point
The USB-A ports typically have pre-bent attachment pins (not the ones that carry voltage or data, but the ones that attach the housing to the pcb) that i recommend bending straight before inserting into the pcb.
(My 10pF Capacitors for white and flat for some reason, but i checked them, and they were in fact ~10pF, but im still not sure why these ones were different)
*If your silkscreen is indistinguishable, Follow the high quality Silkscreen image below. If it gets compressed, the image is also attached as a file. (2688px*2665px)
Carefully place the board on a hotplate, and turn on. The temperature should be 20C hotter than the melting point of your solder paste. The melting temp should be on the solder paste tube, or on the product listing where you purchased the solder paste from.
Its possible to hand solder everything, but it would be much harder (especially 0603 components and mosfets) and it is difficult to achieve a good looking result. Even cheap hotplates are sufficient.
Wait until the solder becomes molten. Watch for components that may have shifted out of place. As soon as all of the solder paste becomes shiny, switch off the hotplate. DO NOT TOUCH THE PCB UNTIL THE SOLDER HAS SOLIDIFIED. The board will still be hot. Remove carefully and place onto a heat-proof surface to cool down quicker
attach header pins to the ESP32, and use a soldering iron to solder in the board. Also solder on the screw terminals now.
Some cheap screw terminals have a flat connector instead of pins. These are unlikely to fit into the circular hole. If you can, sand down the pins of the screw terminal to resemble pins. You can also get a 1.5mm drill bit and increase the hole size of the pcb. This is quicker, but riskier
While you have the soldering iron in hand, flip the board, and solder in the USB connectors
Give the board a final visual inspection and set every switch to the right - the off position. Feel free to scrub the board with isopropyl alcohol and an old, sacrificial toothbrush to clean off leftover flux
Plug in the board, and turn on the “MAIN PWR" switch by moving it to the left. The ESP32 should light up, but the “PWR” led on the board should not flash yet. This light is controlled by software. Switch on each USB port one by one until all of them are set to the left. Check to see if any components are get hot, or if an unexpected large current is being pulled by the board. If this happens, kill the power supply immediately, and re-check soldering again
If the last step was successful, press the “test on” button on each usb port and check the led lights up. If they do not, dont panic. The best case scenario is that your leds are backwards. Check for any disconnected pads. They may need more solder.
Now connect a small sacrificial USB device to USB 1- DO NOT PLUG IN EXPENSIVE DEVICES YET - I used another micro controller as a power indicator. Press the “test on” button and check that power is flowing correctly.
If it turns on, try USB port 2, then USB 3, and so on.
Press the board into the enclosure. It should snap in. If it is loose, use a tiny drop of superglue. Use as little as possible to make sure you can get the pcb out for maintenance. Screw the enclosure to a wall if desired now (before glueing).
Use Test code to activate the usb ports one by one using the esp32 to check everything functions as expected
Upload the Test code and check everything works. The 4 additional indicator LEDs turn on when the additional buttons are pressed (2 leds at a time).
^i took this out of the enclosure for this gif
Write your own code, or follow one of the countless tutorials on youtube for connecting the board to a smart home system. Use the file called, “ESP32 Connections” to assign each usb-connected pin as an output, and assign the buttons as inputs.
For any more help, message me on Printables (here)
Thank you to PCBWay for reaching out and sponsoring this project:
https://www.pcbway.com/ Has (in my experience) had the best support, and the widest amount of options for PCB manufacturing as compared to other services such as JLCPCB. I have been using it for a while, and i highly recommend it.