Skip to content

Repository files navigation

USB Hub (2x USB-A + 2x USB-C, USB 2.0)

Custom 4-port USB 2.0 hub designed for desk use and monitor-stand mounting.

This project exists because most off-the-shelf hubs did not fit my setup: ports were inconvenient, USB-C required adapters, and one purchased hub regularly stopped working after the host resumed from sleep. The goal here is simple: stable USB 2.0 data ports for everyday hardware tools, with the exact connector layout I need.

Built around the CH334F controller, the design follows the reference schematic closely and adds practical details for real-world use (port orientation, ESD/current protection, reset button, mount-friendly board shape).

Assembled USB hub

Features

  • 4 downstream ports total: 2x USB-A + 2x USB-C (USB 2.0)
  • One USB-A port oriented to the rear (useful for a permanent webcam cable)
  • ESD protection on data lines
  • Current limiting / overcurrent protection on power distribution
  • Optional hardware reset button
  • Designed to be mounted near or under a monitor stand

Intended Use

This hub is intended for USB 2.0 data devices, for example:

  • programmers and debuggers
  • FIDO/U2F keys
  • SD card readers
  • drones and other devices that need firmware flashing

It is not designed as a fast charger or high-power USB-C PD dock.

Limitations

  • USB 2.0 only (no SuperSpeed lanes)
  • No USB-C Power Delivery negotiation
  • No dedicated high-current charging path

Project Status

Tested in daily use and stable in the target setup.

Planned future explorations (not implemented):

  • USB 3.x redesign
  • optional pass-through power path for charging devices

Repository Layout

  • usb-hub.kicad_pro - KiCad project file
  • usb-hub.kicad_sch - top-level schematic
  • hub.kicad_sch - hub controller sheet (CH334F and related logic)
  • power.kicad_sch - power input/protection sheet
  • port_1.kicad_sch, port_2.kicad_sch, port_3.kicad_sch, port_4.kicad_sch - per-port sheets
  • usb-hub.kicad_pcb - PCB layout
  • usb-hub.kicad_sym - custom symbol library
  • usb-hub.pretty/ - custom footprint library
  • docs/images/ - photos and renders (add your own images here)

Toolchain

  • KiCad 9.0 (project was created with KiCad 9)

Older KiCad versions may not open this project correctly.

Build and Manufacturing

  1. Open usb-hub.kicad_pro in KiCad 9.
  2. Run ERC/DRC and resolve any local environment library path issues.
  3. Generate fabrication outputs from PCB Editor:
    • Gerber files
    • NC Drill files
    • BOM (from schematic)
    • Pick-and-place (optional)
  4. Verify connector footprints and board outline before ordering.

See manufacturing/README.md for a suggested export checklist.

Assembly Notes

  • Solder low-profile SMD passives first, then ICs/protection parts, then connectors.
  • Pay special attention to USB-C connector alignment and shield solder joints.
  • Inspect differential pair routing area and fine-pitch pins for solder bridges.
  • After assembly, validate 5V rail stability before connecting devices.

Bring-Up / Validation Checklist

After first power-on:

  1. Confirm no excessive current draw with no downstream devices attached.
  2. Connect to host and check that the USB hub enumerates correctly.
  3. Test each downstream port with a known-good USB 2.0 device.
  4. Perform repeated plug/unplug cycles.
  5. Verify host sleep/wake behavior.

Contributing

Contributions are welcome. Please open an issue first for major changes so the direction can be discussed.

For details, see CONTRIBUTING.md.

License

This repository is licensed under the MIT License. See LICENSE.

About

USB Hub (2x USB-A + 2x USB-C, USB 2.0)

Topics

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Contributors