<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=504731893395981&amp;ev=PageView&amp;noscript=1">

Mass Storage Device Implementation

A Flash drive for Apple devices and PCS

  • iOS
  • Linux
Solution An external mass storage accessory for Apple devices and PCs
Industry Data Storage
Engagement model T&M
Methodology Agile
Team
  • Software Engineers
  • Electrical Engineer
  • Project Manager
1
2
3
4
5
6

Customer

Problem

The client planned to create a mass storage device - an external flash drive that connects to Apple devices and PCs. Softeq implemented the device functionality and a mobile application for device management.

Solution

iBridge, the first mass storage device that connects to mobile phones, tablets and computers, has 16 — 256 GB memory storage capacity. The device provide for the following features:

  • Operates as a USB flash drive allowing to backup, share, and transfer pictures, movies, and music from MAC or PC’s memory storage to iOS devices’ one and vice versa
  • Captures photos directly to the user drive saving the device storage space
  • Enables users to watch video, view images and docs, and play back audio on an Apple device connected to iBridge

iBridge is designed:

  • to be as narrow as possible not to interfere with the ports around it and to ergonomically fit with this natural pinky finger positioning
  • to fit in the smallest case access holes available on the market
  • to be flexible and fit on cases of different thicknesses
  • to enable a unique 180° “u” turn, the size of which is calculated to fit the variable size of different iOS devices and cases
  • to reduce the risk of damage to the iOS device’s Lightning port and/or drive

The major part of the accessory’s code is written in C with the rest of the functionality covered by Assembler for 8051 microcontroller. The team also created several auxiliary utilities in Python.

From the architecture perspective, the solution is part of firmware which leverages Apple’s proprietary iAP2 protocol over USB. The solution is based on firmware of an existing USB mass storage device.

iOS Application Development

Softeq’s team used the External Accessory Framework to develop a component that enables the app to communicate with iBridge. The team also implemented the library that uses SCSI commands level to interact with the firmware level, as well as ported a 3d party library to work with the FAT32 file system.

From the app perspective, apart from user functionality (file view and navigation, video playback, etc.) and file system abstraction layer (file opening, writing, reading, etc.) developed before Softeq jumped in the project, the following levels were implemented:

  • FAT32 library porting
  • SCSI commands level
  • Device communication level

Hardware Design

The team designed a PCB enabling iBridge to function as a USB flash drive with Apple’s Lightning connector integrated on the opposite end. The PCB automatically identifies the connector type and commutates the power supply and USB lines. The board also has all the necessary protection mechanisms in place to support simultaneous iPhone (iPad, iPod) to iBridge to PC connection.

Prototyping

The iAP2 protocol was rolled out on Linux using USB Mass Storage Gadget — g_mass_storage. The team also developed an I2C driver for the Apple authentication coprocessor, which is critical for the iBridge to iPhone connection. PandaBoard ES was used as a hardware platform.

Besides, Softeq’s engineers developed an iOS POC app with the basic communication level and file system.