The EzHID Firmware Project

Powered by:

Introduction

The EzHID project is intended to be a loose collection of firmware
for Cypress' EZ-USB (AN2131) device that allow different types of input
devices (keyboards, mice, etc.) to be connected to USB. These devices
will then show up as USB HID (Human Interface Device) compliant
devices. Their usage is not only restricted to Linux, but other
operating systems that support USB/HID will be able to talk to them
instantly.
Although the focus is on the EZ-USB device, no software for other
microcontrollers will be rejected.

For inquiries related to the status or general questions and comments
have a look at the EzHID mailinglist.
And, even better, start development yourself and
contribute to the EzHID project!

Prerequisites

EZ-USB prototype board or equivalent hardware to run your
software.

The USB I2C/IO EZ-USB
from DeVaSys is a good platform
for working with the EZ-USB device. It consists of a compact PCB with
onboard EEPROM and has all important signals wired to standard
connectors. Both serial ports are directly accessible so you won't
have any trouble connecting keyboards to this board.

The AN2131 chip is also contained in some USB devices that you can
buy off the shelf. E.g. Keyspan, Inc. produces serial-to-USB adapters
that are equipped with exactly this chip and come in a handy case.
One drawback of such a stock solution is that you are somehow
restricted in the accessibility to the device pins.

Currently, SDCC is used
with success.
It is also available for the Win32 platform.

Download tool for the EZ-USB.

There are many floating around and it is quite easy to build a
simple one yourself. I recommend the ezusb2131 kernel module
for Linux. A generic loader for Windows can be found at USB
Design By Example.

Serial I2C EEPROM programmer.

This one is optional. If you do not like to download the firmware
into the EZ-USB everytime after a reset, it could be a good idea to
place it directly in the I2C EEPROM on your EZ-USB board.
The perl script create_ezhid_e2.pl supports this job by
converting a hex-file with the final firmware into the format
expected by the built-in bootloader of the EZ-USB device. The result
can then be programmed into a serial I2C EEPROM suitable
for your board.
Alternatively, the EEPROM can be programmed in-system by the EZ-USB
device itself. Supportive tools are available. Here is a description how to use them.

Development

If you like to build an adapter for another exotic device you are
welcome to contribute to this project :-) You are not restricted to
any development tools as long as they are available for free. The
project focuses on Linux but if you are more familiar with tools on
other operating systems then go ahead and maybe someone ports the
firmware package to the main tools as31 and sdcc.
To include your firmware as a package into this project, you must
release it under the terms of the GNU Public License (GPL 2). Other
licenses could be ok, but increase the legal mumbo-jumbo here and
with SourceForge. It will be common for all firmware packages that
they report a copyright notice in the descriptor for the interface
they are associated with.