Software, firmware and hardware of the IOIO - I/O for Android with OpenXC