Building a development device shelf
Like many other agencies and development houses we utilise the continuous integration server, Jenkins. Without Jenkins we'd be all at sea. However there are some problems that even Jenkins can't help with, and he certainly can't help juggle all these iPhones, iPads and various Android incarnations littering our office.
As a company rule, we schedule research and development sessions every week. The whole team gets together and takes time to explore new and existing methods and technologies that can aid us all. It was during one of these sessions that we came across the 7 port USB 3.0 hub from Anker.
We quickly realised that we could use a couple of these devices to simultaneously charge and deploy builds on 14 of our devices. Before, we had looked at solutions such as this from Belkin. It would have solved our charging needs, but didn’t have any data transfer functionality.
Power it up
We calculated the rough power requirements of each device we wanted to charge and send builds too. We figured we should be able to get 3 iPads and 4 iPhones on one hub. (Although, the iPad Air would be at a trickle rather than a full charge.)
On the second hub we could get the Hudl, the Nexus 7 and a further 5 Android phones.
So with the tech bit out of the way, and knowing exactly what we wanted to do with the builds and testing, we needed a physical solution. It had to be able to connect many devices and store them in such a way that all our developers could have easy access to them.
Of course the solution had to look nice in our minimalist offices, otherwise our MD would get all upset (again).
Our previous solution (see left) just wasn’t going to cut it.
So, giving up a delightfully sunny Saturday afternoon (and convincing our wives to go and hang out together), a few of us headed to my garage and started hatching plans to make our device shelf.
We wanted the holder for the devices to be wall mounted. This is so it didn’t take up floor space in our office.
Also, we wanted it to be simple looking (just like our MD) to fit in with the rest of our furniture. We decided upon a wall mounted trough with a removable lid that could house:
- The USB hubs
- The mac mini on which Jenkins is running
- All the device cables
- The power adaptors and transformers etc
A finger in the air exercise gave us some rough dimensions for the trough of 150mm x 1200mm x 300mm (h x w x d). We set to work building it (hoping not to lose any fingers in the process).
1. The battens attached to the top of the lid are spaced so that the devices lean against them and are restrained from slipping by them. The trough sits closest to the wall so that tablets can lean against the wall and are stopped from slipping forward by the baton in front.
2. The battens are only 10mm high so that the buttons on most of the devices can still be used while the device is ‘docked’.
3. The actual shelf lid has been cut in half so that when needing to access the cables only half of the devices need to be removed.
4. The holes are cut in a key hole shape. This allows the biggest of connectors to pass through the larger opening. When the cable is pulled up, it can be positioned into the smaller slot to prevent it dropping back inside the trough.
The trough then has a large hole in the back of it that allows the power and monitor cables to pass through. It becomes a self contained unit with the mac mini (to run Jenkins), the hubs and cabling all neatly hidden away within the shelf.
- Adding a fan to the trough to keep the temperature down (doesn’t seem to be an issue currently, but may become one)
- More hubs! (Currently limited by the mac mini’s USB outputs, but we will definitely be looking at ways of adding more)
- Increasing the rows - We could add more rows onto the lid to hold more devices at a time
- Changing the battens - It would be good to have a larger batten at the back of each device so they all sit at the same angle