N900 Hardware USB Host

(Status)
Line 1: Line 1:
-
This page is for those working on the implementation of friendly USB host mode.
 
-
 
-
See also [https://garage.maemo.org/projects/h-e-n/ the garage project].
 
-
 
==Status==
==Status==
-
USB Host mode has reached beta status, and is working reliably with manual speed switching.
+
'''Beta Release.'''
-
 
+
-
Proper host mode would only require the normal cable, and a commonly available adapter. ([http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=250641334947 USB A-A adaptor])
+
-
 
+
-
A pre-alpha of hostmode was released on the 23rd of September, here: http://talk.maemo.org/showthread.php?p=824298
+
-
 
+
-
This release is unreliable, and an implementation of proper host mode is likely to be much more stable.
+
-
 
+
-
A beta release, based on Paul's completely rewritten patches (see h-e-n's garage repository) was released on the 7th of November, and is the closest release yet to proper hostmode, http://talk.maemo.org/showthread.php?t=65232
+
-
 
+
-
There are several parts to getting USB host mode working for normal users.
+
-
 
+
-
Some of these are quite easy, many are not.
+
-
* Kernel modifications to make USB host work properly [done, thanks to Paul]
+
"Paul has found out that it is impossible (at least at the time of writing) to detect speed changes while VBUS is running, so for now, you have to select speeds manually.
 +
Use common sense in doing so, '''high speed''' is for devices that require a lot of writing and are fairly new (flash drives/HDDs/CD-drives, new hubs).
 +
'''Full speed''' devices are devices that do not require a lot of USB activity, such as BT/2.4GHz mouse transceivers.
 +
'''Low speed''' devices are normal mice and keyboards."
-
* USB modules for supporting hardware.  This is fairly simple for most hardware - some hardware modules will not compile cleanly on ARM, and binary drivers that allow you to use windows drivers with some stuff will never work.
+
==Installation==
 +
Install hostmode-gui from -devel, your kernel will be replaced.
-
For most drivers, if a particular driver does not work, it's generally a bug in the driver that should be fixed by that drivers maintainer.
+
apt-get install hostmode-gui
-
* Understanding and reverse engineering [[N900_Software_BME|BMEs (Battery managment Entity)]] interaction with the hardware.   
+
== Devices ==
 +
* USB HDD
 +
* USB CD-ROM
 +
* HUBS
 +
* HID(Keyboards, mice, joysticks, touchpads, etc)
-
This is in progress. All of the hardware required to make a BME clone is understood.  
+
== Demos ==
 +
http://www.youtube.com/watch?v=zDzUG-bno6Q by MohammadAG (usb CD-ROM)
 +
http://www.youtube.com/watch?v=1Qfx_jaQ9jo&NR=1 by divan0  (usb HDD via usbhub)
 +
http://www.youtube.com/watch?v=9byE_qTl15M by divan0 (usb keyboard)
-
* Usermode software.
+
==Hostmode development team:==
-
** The current software will not do the right thing if the user plugs in almost all devices - even if hostmode worked. To make a mouse work, you might want to enable a pointer for example.
+
-
==Ideas for hostmode user-software==
+
'''Project Admins:'''
-
When an external power supply is found, the following should be done in sequence.
+
*Joerg Reisenweber
 +
*Paul Fertser
 +
'''Developers:'''
 +
*Chitrang Srivastava
 +
*Dave na
 +
*Hagen Meyer
 +
*Ian Stirling
 +
*Jacek Milewicz
 +
*Klaus Kurzmann
 +
*Mohammad Abu-Garbeyyeh
 +
*Mugur Enache
 +
*Sarah Newman
 +
*Sonny Jim
 +
*Tom Tanner
-
* If the supply is a charger (D+,D- short, detected by the 1707a), fast charge.
+
"Thanks to everyone part of the h-e-n team, and most importantly, thanks to Joerg Reisenweber for starting the project and leading it, and thanks to Paul Fertser for the new kernel patches, written from scratch."
-
* Attempt to enumerate as a device, if this succeeds (including handling of suspended busses), then enumerate and charge as a device, respecting the  enumerated current.
+
-
* If enumeration as a device, and charger detection have failed, we may be plugged into a hub or device with reverse power. Attempt to enumerate connected devices. Charge at user-defined maximum current. For example - may be a 500mA power supply also supplying the hub and a keyboard = 2 unit loads - max draw = 300mA.
+
[[category:N900_Hardware]]
[[category:N900_Hardware]]

Revision as of 22:43, 12 November 2010

Contents

Status

Beta Release.

"Paul has found out that it is impossible (at least at the time of writing) to detect speed changes while VBUS is running, so for now, you have to select speeds manually. Use common sense in doing so, high speed is for devices that require a lot of writing and are fairly new (flash drives/HDDs/CD-drives, new hubs). Full speed devices are devices that do not require a lot of USB activity, such as BT/2.4GHz mouse transceivers. Low speed devices are normal mice and keyboards."

Installation

Install hostmode-gui from -devel, your kernel will be replaced.

apt-get install hostmode-gui

Devices

  • USB HDD
  • USB CD-ROM
  • HUBS
  • HID(Keyboards, mice, joysticks, touchpads, etc)

Demos

http://www.youtube.com/watch?v=zDzUG-bno6Q by MohammadAG (usb CD-ROM) http://www.youtube.com/watch?v=1Qfx_jaQ9jo&NR=1 by divan0 (usb HDD via usbhub) http://www.youtube.com/watch?v=9byE_qTl15M by divan0 (usb keyboard)

Hostmode development team:

Project Admins:

  • Joerg Reisenweber
  • Paul Fertser

Developers:

  • Chitrang Srivastava
  • Dave na
  • Hagen Meyer
  • Ian Stirling
  • Jacek Milewicz
  • Klaus Kurzmann
  • Mohammad Abu-Garbeyyeh
  • Mugur Enache
  • Sarah Newman
  • Sonny Jim
  • Tom Tanner

"Thanks to everyone part of the h-e-n team, and most importantly, thanks to Joerg Reisenweber for starting the project and leading it, and thanks to Paul Fertser for the new kernel patches, written from scratch."