Hi all,
I'm coming from computer science background but I've been in embedded field for last couple of years. I'm total beginner to hardware design. I've tried KiCad years ago, more as a curiosity than an actual need to design something. Now I've got a small project in mind so I've picked it up again to try and design my own idea. I'm seeking for any advice/suggestion/comment on my current design - schematic and PCB layout.
Short project background
My initial motivation comes from the need to power cycle USB devices connected to my Linux PC in home office. I'm often working out of the office and some of the devices need power cycle to function properly (mostly debug probes, FTDI adapters, devkits stuck in bootloader etc.). I've tried software approach (/sys/bus/usb/*, binding/unbinding) but AFAIK this depends a lot on the device and implemented USB protocol specs.
I've also found some expensive industrial grade stuff (https://www.usbgear.com/usb-hub/managed-hubs.html) which is overkill for my application.
Initially I thought about designing my own USB hub, creating a nice GUI/CLI interface to control each individual port. But this was just initial wave of enthusiasm - I'm complete amateur in this stuff, I know how to read schematic but I'm nowhere near close to designing and manufacturing such device. Also I don't need consumer friendly product, maybe in the future if I get enough time and resources I will design one. So I will start from the simplest circuit possible. A TPS2553 with male/female USB 2.0 connectors and an exposed control PIN which I can connect to my rpi Pico. I've ordered the parts and soldered a prototype breakout board following reference design from TPS2553 datasheet. I've loaded Pico with some zephyr shell firmware so I can control it from my PC. This works perfectly and it's exactly what I need. Next step is designing a PCB and 3D printing simple enclosure so I can just plug it into the USB Hub.


Schematics
First thing was copying the reference design to KiCad which was fairly straightforward. I needed to create my own symbol for TPS2553 as it did not exist. I also downloaded footprints/3D models from snapeda.com for my male/female connectors I've already purchased. Schematic only contains one pair for single USB port. My plan is to replicate this so I have 4 total on single PCB. I've already asked on KiCad forum the best way to do this: https://forum.kicad.info/t/best-way-to-arrange-multiple-instances-of-same-circuitry/66032

PCB Layout
This is where problems started for me. I wrote about it on KiCad forum as well -> https://forum.kicad.info/t/multiple-errors-on-simple-tps2553-design/65983/8. It seems USB footprints I've downloaded from snapeda.com had generated a ton of warnings which prompted me to replace them with footprints from KiCad official library. Keep in mind I'm total amateur in hardware design and this is now more of a manufacturing area where I'm even less experienced. If you're interested you can download the project which generates a lot of DRC errors in the link above. KiCad guys stick mostly to KiCad topics only and this is more of a footprint problem than KiCad problem so they pointed me here for general discussion.
I've attached the project which passes both ERC and DRC checks (kicad_usb_pcb.zip).
Questions
I'm aware this is a really dead simple circuit to be nitpicking about. My goal of this post is to get constructive review and develop good practices from the start.
P.S. If someone uses or knows a similar project, commercial or DIY, please let me know. Might serve as a good reference.
Thank you for reading.
I'm coming from computer science background but I've been in embedded field for last couple of years. I'm total beginner to hardware design. I've tried KiCad years ago, more as a curiosity than an actual need to design something. Now I've got a small project in mind so I've picked it up again to try and design my own idea. I'm seeking for any advice/suggestion/comment on my current design - schematic and PCB layout.
Short project background
My initial motivation comes from the need to power cycle USB devices connected to my Linux PC in home office. I'm often working out of the office and some of the devices need power cycle to function properly (mostly debug probes, FTDI adapters, devkits stuck in bootloader etc.). I've tried software approach (/sys/bus/usb/*, binding/unbinding) but AFAIK this depends a lot on the device and implemented USB protocol specs.
I've also found some expensive industrial grade stuff (https://www.usbgear.com/usb-hub/managed-hubs.html) which is overkill for my application.
Initially I thought about designing my own USB hub, creating a nice GUI/CLI interface to control each individual port. But this was just initial wave of enthusiasm - I'm complete amateur in this stuff, I know how to read schematic but I'm nowhere near close to designing and manufacturing such device. Also I don't need consumer friendly product, maybe in the future if I get enough time and resources I will design one. So I will start from the simplest circuit possible. A TPS2553 with male/female USB 2.0 connectors and an exposed control PIN which I can connect to my rpi Pico. I've ordered the parts and soldered a prototype breakout board following reference design from TPS2553 datasheet. I've loaded Pico with some zephyr shell firmware so I can control it from my PC. This works perfectly and it's exactly what I need. Next step is designing a PCB and 3D printing simple enclosure so I can just plug it into the USB Hub.


Schematics
First thing was copying the reference design to KiCad which was fairly straightforward. I needed to create my own symbol for TPS2553 as it did not exist. I also downloaded footprints/3D models from snapeda.com for my male/female connectors I've already purchased. Schematic only contains one pair for single USB port. My plan is to replicate this so I have 4 total on single PCB. I've already asked on KiCad forum the best way to do this: https://forum.kicad.info/t/best-way-to-arrange-multiple-instances-of-same-circuitry/66032

PCB Layout
This is where problems started for me. I wrote about it on KiCad forum as well -> https://forum.kicad.info/t/multiple-errors-on-simple-tps2553-design/65983/8. It seems USB footprints I've downloaded from snapeda.com had generated a ton of warnings which prompted me to replace them with footprints from KiCad official library. Keep in mind I'm total amateur in hardware design and this is now more of a manufacturing area where I'm even less experienced. If you're interested you can download the project which generates a lot of DRC errors in the link above. KiCad guys stick mostly to KiCad topics only and this is more of a footprint problem than KiCad problem so they pointed me here for general discussion.
I've attached the project which passes both ERC and DRC checks (kicad_usb_pcb.zip).
Questions
- Should USB connectors shield be grounded? Now I've searched this topic a bit, and consensus seems to be that host should have shield grounded and device NOT.
- What width of the traces to use for data lines and what for power? I've used 0.5mm for power nets and default 0.2mm for rest
- What capacitor to use for output? Reference circuit uses polarized 120u cap on output. Is form factor important here? I've used SMD 0603 footprint for PCB, is that ok? Should I use THT? Ceramic,electrolytic?
- I'd really appreciate you taking a look at initial project (it can be downloaded from kicad forum link above). How can I fix those footprints? I'd like to reuse the components I've ordered for breakout board prototypes. I've compared them with the ones from KiCad library but there are slight differences (e.g. plastic pins that go on NPTH positioning holes are 4.5mm apart in one footprint while 4.6mm in the other. Distance between pads and shield holes are identical).
I'm aware this is a really dead simple circuit to be nitpicking about. My goal of this post is to get constructive review and develop good practices from the start.
P.S. If someone uses or knows a similar project, commercial or DIY, please let me know. Might serve as a good reference.
Thank you for reading.
Attachments
-
35.6 KB Views: 4
Last edited by a moderator:











