A 3D printer has a Raspberry Pi embedded computer,
running from a standby 5V rail of an ATX power supply
. The computer can control
the power supply on/off state.
Several peripherals are attached via USB, and these have to be depowered when the power supply is shut down. But they are powered from the board's USB ports.
USB hub to the rescue.
A cheap 4-port USB 2.0 hub was obtained. The 5V power line from the upstream connector was cut off.
![]() Hub to modify | ![]() Hub board | ![]() Hub board | ![]() Hub board |
A switch was attached, with its middle contact connected to the hub's 5V input.
One end of the switch was connected to the original USB upstream power, the other was attached to a wire to connect to an externally switched power supply.
The switch allows selection between USB and external power. In the application the device was developed for, this allows powering the peripherals without having to energize the high-current parts of the machine, to facilitate easier software development. No need to power motor drivers and heaters when only a webcam is being hacked on.
![]() Modified power wiring | ![]() Modified power wiring |
A 0.9-amp Polyswitch fuse was attached between the switch and the hub to protect
the wiring against shorts on the output ports.
![]() Switch with a Polyswitch fuse | ![]() Switch with a Polyswitch fuse | ![]() Switch with a Polyswitch fuse | ![]() Final assembly |
The hub is a cheap Akasa AK-HB-07BK model. Its construction is somewhat flimsy
and it runs on a FE1.1s,
with a single-transaction-translator
.
This may cause some bottlenecks when multiple USB1.1. devices are attached.
The bus reports as 1a40:0101 Terminus Technology Inc. 4-Port HUB.
The lsusb -v report is
Bus 001 Device 013: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1a40 Terminus Technology Inc.
idProduct 0x0101 4-Port HUB
bcdDevice 1.11
iManufacturer 0
iProduct 1 USB 2.0 Hub
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 4
wHubCharacteristic 0x0000
Ganged power switching
Ganged overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 50 * 2 milli seconds
bHubContrCurrent 100 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0503 highspeed power enable connect
Port 4: 0000.0103 power enable connect
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered