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