I bought a Digicom ADSL router for 30€ (RAW304G-T07).
It is based on BCM96318 Broadcom chipset. It accepts Telnet connections and runs BusyBox v1.17.2.
# cat /proc/cpuinfo system type : 96318REF processor : 0 cpu model : Broadcom BCM3302 V3.3 BogoMIPS : 331.77
# cat /proc/version Linux version 2.6.30 (firstname.lastname@example.org) (gcc version 4.4.2 (Buildroot 2010.02-git) ) #5 Thu Nov 26 18:19:11 CST 2015
The interesting feature (for that price) is that it has an USB port for sharing a printer or a USB storage key among the users of the LAN.
So I bought a 2TB USB HDD… just to find out that the USB port does not deliver enough energy for an HDD. Considering that the router has a wall power supply there are no reasons to believe that it could not provide the required current. So… hacking time.
I opened the router and, with a multimeter, I found out that the +5V required by the USB are provided by a small IC, located between the power connector and the USB connector.
I could not find the specification/datasheet of this device (the only marking is
HS6SA). However I discovered that it has two 5V outputs. One connected to the USB connector, and one just left disconnected because of an unpopulated resistance (
My 6th electronic sense told me to short-circuit the two 5V rails and.. BINGO ! Once plugged in, the USB HDD starts to spin !
First of all… I don't have an explanation. Just some hypothesis.
In the Raspberry Pi, the USB port current limit is provided by a particular device: the AP2253 current-limiter power switch. The maximum current can be set with some external tuning resistors. More details here: http://hackaday.com/2015/04/06/more-power-for-raspberry-pi-usb-ports/.
I suspect that the small device (
HS6SA) inside my router is something similar. By shorting
R89 I have probably by-passed this mechanism, which is exactly what I wanted.
For the moment, it works very well (no excessive overheating or system instability) even with high-load (ex. streaming a film from the HDD wirelessly).